Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • E Easy Installer
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • e
  • devices
  • Easy Installer
  • Milestones
  • Refactoring Easy-installer

Past due
Milestone Jun 1, 2021–Dec 31, 2021

Refactoring Easy-installer

This milestone is about refactoring Easy-installer.

Now that we have few years of feedback we can better see what Easy-installer must be and do. Consequently, we can redesign the application to a better version.

The refactoring should be progressive as it will affect all the application.

Expected benefits:

Codes more accessible:

  • Easier to understand for everyone (including external user)
  • Easier to maintain

Codes more reliable:

  • Splitted in smaller unit
  • Easier to implement test, and unit test

Codes more flexible:

  • Easier to add, update or remove steps
  • Easier to create new type of Steps
  • Easier to modify process or to make specific things for one or few device

App's size reduction (a little).

Reduces classes coupling:

  • Better efficiency (a little)
  • JavaFX code will be more isolated

Concerned part of the application:

Everything

new process idea:

refactoring_20process

new Diagram package idea

updateProposal

There is may be some improvement possible in the "Step" classes. (How to separate Custom, Executable and CustomExecutable properly)

New config files for each device:

We still have 2 yaml file by device but they will be: <device_preparation.yml> <device_flash.yml>

They will both contains a full Process

The <device_preparation> will just include one more section about files to download. But this will remain the same as it is

Before:

image

After:

image

Yaml new structure: 0. Process data stepscount: steps:

preparationProcess also include: sources: as it is already done

  1. Default step : type: stepNumber: nextStepKey:

  2. Custom Step contain default step datas plus: title: // key from translation file titleIcon: //name of the icon to print with title instructions: //List of key from translation file

    • <key 1>
    • <key 2>
    • <key 3>
    • ...

but we fixed "type: custom"

  1. ExecutableStep contains default step datas plus: script: //Name of the script to run. No extension! outputKey: // Key used to save script output in parameters nextKoStepKey: okCodes: //List of valid exit code for the script/command with translation key to use for interface "": "": ... koCodes: //Same as "okCodes" but for failure "": "": ...

but we fixed "type: executable"

  1. ExecutableCustomStep contains Default step + ActionStep + ExecutableStep

but we fixed "type: custom-executable"

  1. Load Step contains ExecutableActionStep data plus: averageTime: //The average time for command execution

but we fixed "type: load"

Idea of improvement:

( Feature proposal )yaml option for default Step:

  1. osRestriction: This allow to define step that are only run on the corresponding OS. Multiple os can be specified. values:
  • windows
  • linux
  • OSX

or "~" if no restriction

  1. skippable:

values : true or false This give the possibility to user to skip it

by example if it's already done But some step should be unskippable

  • Issues 0
  • Merge requests 12
  • Participants 0
  • Labels 0
80% complete
80%
Start date
Jun 1, 2021
Jun 1
-
Dec 31 2021
Due date
Dec 31, 2021 (Past due)
None
Total issue weight
None
12
Merge requests 12
Open: 2 Closed: 3 Merged: 7
0
Releases
None
Reference: e/devices/easy-installer%"Refactoring Easy-installer"