-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle creating a mix that touches or skips a format bump in Clear Linux #59
Comments
@tmarcu I know this was in your Roadmap, added to GitHub so we have a way to keep track (and comment) on this, since we are doing the format bump work from outside the mixer at the moment. Any updates on this? |
@tmarcu -- wanted to make an observation about how we might implement this, with regards to when we attempt to deal with format bumps and how we expose this to the user. I was talking with @cmarcelo about steering the CLI away from "what tasks does the tool need to do" and more toward "what goals does the user want to accomplish". With that in mind, we run into the need for auto format bumps when the user wants to update the upstream version their mix is based on, and that version happens to be one or more formats above the old one. As such, I would recommend attempting to do the auto-bump at the time the user changes their upstream CLR version, rather than as a reaction to a new CLR version at a later event (like a build or a deliberate format bump). This has the nice benefit of tying the format bump activities to the user's action that actually causes their need, as well as simplifying the already complicated output of a later build. (Imagine explaining to the user "You wanted to do a build, but at some other point you changed something else, so we tried to do these other builds you didn't ask for because you didn't know you needed them, and somewhere it all went wrong!" Something along the lines of "Warning: Updating to upstream version 19350 requires additional format bump builds to keep up with changes to upstream." is way easier to understand.) Right now it's not Not sure what your thoughts on this were already, but wanted to put that out there. |
Proposal on how we get this moving forward:
With these in place, it will be easier to think about a more generalized automatic format bumps, or how to improve the UI to direct the user better. |
@tmarcu @kevincwells makes sense? |
@tmarcu is putting together a proposal involving containerizing mixer and publishing a dockerfile as part of the build collateral. This approach will allow users to create any number of mixes to get to the latest format and handle the bumps for them via a simple script that loops running the dockerfile for each format. tmarcu should explain more when the proposal is fully hashed out. |
OK. Let's wait on that for the big picture. Meanwhile I think that #145 (or a variant of it that just warns) would be something acceptable. What do you think?
Just a note: we've done the approach of handling format bumps from the outside (Mark's work mentioned above), and we found out that we were reimplementing in bash some logic and information gathering already done by mixer. |
Replace the workflow of manually updating the two files to get a new version. It does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. Updates clearlinux#145. Updates clearlinux#59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Replace the workflow of manually updating the two files to get a new version. It does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. Also make the download function previously used to get latest file reusable for other purposes. Updates clearlinux#145. Updates clearlinux#59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Replace the workflow of manually updating the two files to get a new version. The 'mixer versions' prints the relevant versions and 'mixer versions update' provides a way to update those versions. When updating the command does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. The commands will provide a point to do more checks in the future, like if there is a problem with the local bundles after an update. Also make the download function previously used to get latest file reusable for other purposes. To keep commands consistent both 'versions update' and 'init' will accept --clear-version or --upstream-version (they are equivalent). Updates clearlinux#145. Updates clearlinux#59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Replace the workflow of manually updating the two files to get a new version. The 'mixer versions' prints the relevant versions and 'mixer versions update' provides a way to update those versions. When updating the command does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. The commands will provide a point to do more checks in the future, like if there is a problem with the local bundles after an update. Also make the download function previously used to get latest file reusable for other purposes, and returning error for non-OK status codes. To keep commands consistent both 'versions update' and 'init' will accept --clear-version or --upstream-version (they are equivalent). Updates clearlinux#145. Updates clearlinux#59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Replace the workflow of manually updating the two files to get a new version. The 'mixer versions' prints the relevant versions and 'mixer versions update' provides a way to update those versions. When updating the command does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. The commands will provide a point to do more checks in the future, like if there is a problem with the local bundles after an update. Also make the download function previously used to get latest file reusable for other purposes, and returning error for non-OK status codes. To keep commands consistent both 'versions update' and 'init' will accept --clear-version or --upstream-version (they are equivalent). Updates clearlinux#145. Updates clearlinux#59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Replace the workflow of manually updating the two files to get a new version. The 'mixer versions' prints the relevant versions and 'mixer versions update' provides a way to update those versions. When updating the command does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. The commands will provide a point to do more checks in the future, like if there is a problem with the local bundles after an update. Also make the download function previously used to get latest file reusable for other purposes, and returning error for non-OK status codes. To keep commands consistent both 'versions update' and 'init' will accept --clear-version or --upstream-version (they are equivalent). Updates clearlinux#145. Updates clearlinux#59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Replace the workflow of manually updating the two files to get a new version. The 'mixer versions' prints the relevant versions and 'mixer versions update' provides a way to update those versions. When updating the command does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. The commands will provide a point to do more checks in the future, like if there is a problem with the local bundles after an update. Also make the download function previously used to get latest file reusable for other purposes, and returning error for non-OK status codes. To keep commands consistent both 'versions update' and 'init' will accept --clear-version or --upstream-version (they are equivalent). Updates clearlinux#145. Updates clearlinux#59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Replace the workflow of manually updating the two files to get a new version. The 'mixer versions' prints the relevant versions and 'mixer versions update' provides a way to update those versions. When updating the command does check the upstream format and do not cross format bumps. So it helps preventing people generating wrong content. The commands will provide a point to do more checks in the future, like if there is a problem with the local bundles after an update. Also make the download function previously used to get latest file reusable for other purposes, and returning error for non-OK status codes. To keep commands consistent both 'versions update' and 'init' will accept --clear-version or --upstream-version (they are equivalent). Updates #145. Updates #59. Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Proposal and architecture have been reviewed, and issues are being tracked for this on github now (see #203). Adding this to the board. |
Merged but awaiting major release for default usage. |
Mixer should be aware about the format bumps in the upstream (Clear Linux), since right now it might be producing a stream that is not usable (skipping a bump in upstream, leading to some invalid state).
"Handle" here might refer first to "be aware and fail if the input is invalid" and then to "create the intermediate mixes as needed", so might make sense implement this in steps. Just the warning would go great length to avoid issues.
See also #30 description that have a concrete example. That PR added more information with the intent of making life easy to identify this bumps.
For the record @mdhorn implemented this outside mixer for our test mix.
The text was updated successfully, but these errors were encountered: