Skip to content
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

update ff cli to main #1524

Merged
merged 2 commits into from
Jun 20, 2024
Merged

update ff cli to main #1524

merged 2 commits into from
Jun 20, 2024

Conversation

EnriqueL8
Copy link
Contributor

No description provided.

Signed-off-by: Enrique Lacal <[email protected]>
@EnriqueL8 EnriqueL8 requested a review from a team as a code owner June 17, 2024 14:15
Copy link
Contributor

@peterbroadhurst peterbroadhurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was looking back and I don't think take this approach recently @EnriqueL8

So probably needs thinking through and comparing to how we've done it with releases in the past.

(even if the only change is to the PR comment to describe how we've managed this in the past, the implications, and how we're planning to do it going forwards)

@EnriqueL8
Copy link
Contributor Author

The manifest.json file stores all the version for a particular release so in the case of v1.3.0 we updated it will the v1.3.0 versions of each of the components: data exchange 1.3.0, etc...

Given that this file is in main I think we should be keeping a reference to the main components especially the FireFly CLI if not we would constantly be releasing new version of the sub components too keep up to date with it and it will become inconsistent with the version of FireFly.

I could release a new FireFly CLI v1.3.1 but that wouldn't match the release cadence of FireFly. I wonder if the decision is to we want to keep the repos as consistent as possible or each component should release it's own versions and their manifest.json in main should just point to the latest release version?

We use this manifest.json in a couple of ways:

  • As part of the CI pipeline
  • In the FireFly CLI, it will be checkout a tag v1.3.0 and uses the image digests in the manifest.json to deploy the stack.

Copy link
Contributor

@awrichar awrichar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I strongly disagree with using an indeterminate reference for anything in the manifest. If I run a build on Tuesday, and retry the exact same build on Wednesday, it could be using a completely different version. That's bad - the point of the manifest is reproducibility.

We have always either used tagged releases or specific builds generated from main. So we don't have to do a release of the CLI, but we do need to point at one specific version rather than just "main".

@awrichar
Copy link
Contributor

In terms of versioning in general:

  • Each commit to a subproject generates a new build
  • Subprojects try to align minor version number with FireFly (ie 1.3) but perform patch releases as needed (1.3.1, 1.3.2, etc would be a release because that particular project has a patch... we won't try to align 1.3.1 across everything, because it's not like all projects will need patching at the same time)
  • In between FireFly releases, the mainline manifest may point to specific/unreleased versions of subprojects (but always a specific version for reproducibility and traceability)
  • When we release FireFly, the manifest should have only released versions of subprojects

@EnriqueL8
Copy link
Contributor Author

Makes sense - will point it a specific commit of the FireFly CLI and I couldn't agree more with

Subprojects try to align minor version number with FireFly (ie 1.3) but perform patch releases as needed (1.3.1, 1.3.2, etc would be a release because that particular project has a patch... we won't try to align 1.3.1 across everything, because it's not like all projects will need patching at the same time)

Copy link
Contributor

@awrichar awrichar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems OK to me. For the record, I see that you're pointing at https://github.com/hyperledger/firefly-cli/commits/1378d838891cd0a43d9a255dac9b707a69f13c59, which corresponds to the point where hyperledger/firefly-cli#308 was merged.

@EnriqueL8
Copy link
Contributor Author

Yes, thought it would pick that fix as well

@peterbroadhurst peterbroadhurst merged commit 2b0b07b into main Jun 20, 2024
14 checks passed
@peterbroadhurst peterbroadhurst deleted the ff_cli_version branch June 20, 2024 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants