Open david-waltermire opened 3 weeks ago
@david-waltermire - I do not contest there are benefits from simplifying the oscal-cli commands, but ALL CI/CD pipelines and Makefile using the oscal-cli today will no longer work, and NIST/OSCAL project is not the only one using it. This change is not a backwards compatible change, and it should not be approved without OSCAL community's review & feedback, and not without a major release. It affects too many projects & people. You indicated that current command pathway has been deprecated, but still work for backwards compatibility - but for how long, and why not creating a major release?
The goals for this change are to:
This change is backwards compatible. It does not remove the existing pathways or change existing command behaviors; it adds new pathways, which are optional to use. This means it can be done in a minor release.
Removal of any pathway should be done through a separate change at a future date, in a future major release. Determining when this will happen needs to be coordinated with the user community. It would be reasonable to allow for a year or so for changes in use to be made. I really don't have a strong opinion around when, only around ensuring that users are not caught off guard by a change. When there is a desire to remove the commands, I would expect this to be socialized for a lengthy period of time before releasing that change.
I hope this clears up the intent.
If there is interest, the FedRAMP team can probably help with migration to using the new command syntax in the NIST OSCAL repo CI/CD. It shouldn't be much work to do this. This is something we can do through PRs, also providing an easy way to review the changes and test the workflows.
@david-waltermire - Thank you for all detailed explanations. It makes sense. Supporting the community members' use of the tool without disruption was the trigger for the comment above.
Committer Notes
Refactored CLI commands to simplify the command pathways for conversion, profile resolution, and validations to make these commands more continuous integration (CI) friendly.
The following commands have been simplified:
oscal-cli (catalog,profile,component-definition,ssp,ap,ar,poam) validate
->oscal-cli validate
oscal-cli (catalog,profile,component-definition,ssp,ap,ar,poam) convert
->oscal-cli convert
oscal-cli profile resolve
->oscal-cli resolve
The original commands now output a message indicating that the command pathway has been deprecated, but still work for backwards compatability.
Also improved the ANSI colors and console streams used for output.
This PR depends on https://github.com/usnistgov/oscal-cli/pull/174, which needs to be merged before this PR.
All Submissions:
Changes to Core Features: