[Starlingx-discuss] [Build] unified build command suggestions

Saul Wold sgw at linux.intel.com
Wed Sep 5 17:16:46 UTC 2018



On 09/05/2018 09:32 AM, Dean Troyer wrote:
> I've spent a few cycles thinking about CLI construction (syntax-wise)
> and have come to believe that not all command forms are created equal
> and that rigorous consistency is a big feature.
> 
> I think using something that looks like an option as the command can
> be confusing to users, it is better to use a form of object-action
> with options or positional arguments (the fewer the better).  If
> you've used OpenStackClient you will know exactly what I am talking
> about.
> 
I agree with this, similar to what git and some other tools do also, I 
like the examples you provided below.

Sau!

> Also, as an aside, I would really like to suggest not using 'stx' as
> the command for build-related things and saving that for user/cloud
> consumer things.
> 
> On Wed, Sep 5, 2018 at 8:31 AM, McKenna, Jason
> <Jason.McKenna at windriver.com> wrote:
>> I’ve been thinking about the proposal for the unified build command as
>> discussed in the last build team meeting.  “stx --build-iso” or “stx
>> --create-iso” was suggested as command for building all targets – source
>> rpms, binary rpms, and the final ISO.  We should probably change that
>> command name to “stx --build-all” or something similar.  This would meet the
>> immediate request of providing a single command to wrap around the existing
>> steps, and would allow us to grow the tool’s functionality without tying us
>> to the concept of “an ISO == a build”.  As a bonus, it allows us to improve
>> the granularity the build commands while maintaining a consistent command
>> naming convention.  A potential first cut of commands could be:
> 
> In the below examples I am assuming object - action ordering, which
> turned out to be easier to set up bash completion for than action -
> object ordering in OSC.  (Personally I prefer the latter)
> 
>> # Download items specified in lst files (replaces download_mirror.sh)
>> stx --mirror-download
> 
> stxb mirror download
> 
>> # Places downloaded items in the specified mirror path
>> stx --mirror-populate <mirror_path>
> 
> stxb mirror populate [-mirror <path>]
> 
>> # Do all mirror steps
>> stx --mirror-all <mirror_path>
> 
> stxb mirror create [-mirror <path>]
> (or init or update or whatever action name)
> 
>> # sets up a build environment with artifacts from the specified mirror path
>> (replaces generate-cgcs-centos-repo.sh and populate_downloads.sh)
>> stx --build-env <mirror_path>
> 
> stxb environment create [-mirror <path>]
> 
>> # builds specified package or all packages (replaces build-pkgs)
>> stx --build-pkgs [pkg_name]
> 
> stxb package build [<package-name> ...]
> 
>> # Produces an ISO from current build (replaces build-iso)
>> stx --build-iso
> 
> stxb iso build
> 
I think it would be better if was more like

stxb build iso

stxb build all

I know this is different than the mirror actions above, but the all does 
not ma
>> # Runs previous steps (I’m not sure if running --build-env during build-all
>> is a good idea, but perhaps we could skip the --build-env if no mirror_path
>> is specified)
>> stx --build-all [mirror_path]
> 
> stxb all build [-mirror <path>]
> 
I think it would be better if was more like
stxb build package
stxb build iso

stxb build all

I know this is different than the mirror actions above, but the "all" 
does not make sense to me in this usage.

Sau!

> 
> dt
> 



More information about the Starlingx-discuss mailing list