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

Rework the CI process #220

Open
mynkow opened this issue Apr 12, 2020 · 3 comments
Open

Rework the CI process #220

mynkow opened this issue Apr 12, 2020 · 3 comments
Assignees

Comments

@mynkow
Copy link
Member

mynkow commented Apr 12, 2020

The problem

Right now it is time consuming to release and manage new stable and pre-release versions of the framework. The goal is to automate the entire process so that maintainers could focus on code. The biggest problem is when a change is done in the core Cronus code and it has to be distributed to all other components. This requires package update in every component repository (10+ repositories) and then writing a release notes.

Current process

  1. Write code in Cronus
  2. Update release notes in Cronus
  3. CI will publish a nuget package
  4. dependabot will automatically update every component with the new version
    5. A maintainer has to write release notes in every component repository
  5. CI will publish a new version for every component package

The goal

  • Fully automated release process. Like automating step 2 and step 5
  • Better release notes

Bottom line

I know that there will be a lot of questions and suggestions. This is an open issue which requires discussion and changes to what we currently have. I do not mind removing the current established process entirely.

Also, some of the changes may require some process changes. Keep in mind that we are a small team and currently we DO allow maintainers to push code without having written github issue or PR.

@AlexPlom
Copy link
Member

Q. If we are working on Cronus main project and pumping beta versions, do we need to automatically update all the packages with beta versions?

Q. Do we actually need to create beta package releases for the cronus-containing projects, or should we just keep them automatically updated via dependabot?

Q. Do we want to automatically release versions without testing each separate package?

  • Issue I see:
    I currently see only the way we release as an issue. The format is clunky, it depends on syntax, it needs separate commits etc.

  • Solution idea
    Maybe a tool/script which mass releases beta packages for configured projects. The tool should be able to specifically release multiple projects either as beta or as stable. The stable verison should have a specified mode from 3 modes, one for each sem-ver level (major, minor, patch).

Please discuss

@mynkow
Copy link
Member Author

mynkow commented Apr 13, 2020

If we are working on Cronus main project and pumping beta versions, do we need to automatically update all the packages with beta versions?

From my point of view the answer is YES. Dependabot already has a configuration how to update packages. If it is a pre-release it updates everything. If it is stable it updates only patches automatically.


Do we actually need to create beta package releases for the cronus-containing projects, or should we just keep them automatically updated via dependabot?

It is useful for development to have pre-releases and to test breaking changes before going stable

@mynkow mynkow modified the milestones: v6.0.0, v6.1.0 Apr 15, 2020
@mynkow mynkow modified the milestones: v6.1.0, v7.0.0 Aug 24, 2020
@ethno2405 ethno2405 removed this from the Docs and Samples milestone Sep 10, 2020
@mynkow mynkow self-assigned this May 13, 2021
@mynkow
Copy link
Member Author

mynkow commented May 13, 2021

We have successfully switched to semantic release.

The integration with dependabot will wait for now because it is not working properly with nuget packages which use SemVer2.0

dependabot/dependabot-core#3643

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants