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

docs: Start on the Release Process #1319

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from

Conversation

ChristianTackeGSI
Copy link
Member

@ChristianTackeGSI ChristianTackeGSI commented Jan 16, 2023

We should be transparent on our release process.

@dennisklein , @karabowi could you please help with this PR? Either add comments or add commits to the branch.

(I'll squash things before we declare this "ready for review".)

Rendered: https://github.com/ChristianTackeGSI/FairRoot/blob/docs-contributing/CONTRIBUTING.md#user-content-creating-a-new-release


Checklist:

@dennisklein
Copy link
Member

dennisklein commented Mar 13, 2023

Hm, how about just a single numbered list instead of heading per step?

Additional steps that come to mind:

  • update CI images, potentially add new ones, remove old ones etc
  • check the ci so everything properly passes

@ChristianTackeGSI
Copy link
Member Author

Hm, how about just a single numbered list instead of heading per step?

Hmm. I don't care much. @karabowi added them in ChristianTackeGSI#1

Additional steps that come to mind:

* update CI images, potentially add new ones, remove old ones etc

Where would you suggest to put this?

* check the ci so everything properly passes

done.

@dennisklein
Copy link
Member

dennisklein commented Mar 15, 2023

Additional steps that come to mind:

  • update CI images, potentially add new ones, remove old ones etc

Where would you suggest to put this?

That is usually, what I do in the context of a release among other things:

  • Remind/ask myself what platforms the release is targeting (I roughly target the last two years of releases for ubuntu/fedora, debian stable/oldstable + anything older, if relevant in GSI still)
  • Then I compare what is currently tested via CI and decide whether it needs an updates, e.g.
    • regenerate/update existing images (cover new FairSoft releases? get latest os updates to test closer to what a user may use)
    • add new images (new os releases? which ship new compiler major versions perhaps)
    • remove old images
    • For macs it involves similar steps, updating homebrew, perhaps the os or the command line tools
  • Fix issues resulting from previous step

@ChristianTackeGSI
Copy link
Member Author

@karabowi as you're currently in the process of creating a new release. Can you take another look at this? Maybe it would be good to merge and improve from there (if it's good enough for a merge)?

If you want to take a look how the proposed changes look like when rendered: https://github.com/ChristianTackeGSI/FairRoot/blob/docs-contributing/CONTRIBUTING.md#user-content-creating-a-new-release

Copy link

coderabbitai bot commented May 23, 2024

📝 Walkthrough

Walkthrough

The CONTRIBUTING.md file has been updated to enhance clarity and add new sections related to release management. Key modifications include correcting the phrase "first time contributor" to "first-time contributor" and introducing a new section titled "Creating a new Release." This section outlines steps for the release manager, including controlling the release status, creating commits, pushing patches, and managing versioning. No changes were made to the declarations of exported or public entities.

Changes

File Change Summary
CONTRIBUTING.md Enhanced clarity and added a "Creating a new Release" section detailing steps for release management, including status control, CI coverage checks, commit creation, patch pushing, and tag management.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Outside diff range and nitpick comments (7)
CONTRIBUTING.md (7)

Line range hint 15-15: Consider using "first-time" instead of "first time" for grammatical correctness.


Line range hint 24-24: Simplify "at this point in time" to "now" for conciseness.


Line range hint 45-45: The phrase "will evolve over time" can be simplified to "will evolve" for conciseness.


Line range hint 65-65: Use "and" after 'both' to correct the usage error in "both in commit messages as well as in PR comments".

- both in commit messages as well as in PR comments if applicable.
+ both in commit messages and in PR comments if applicable.

Line range hint 76-77: Move "Rarely" to a position after the subject for better readability and correct the verb form of "opt-out".

- Rarely, it is needed to opt-out of *clang-format* for certain code sections
+ It is rarely needed to opt out of *clang-format* for certain code sections

Line range hint 53-64: Correct the indentation of unordered list items to maintain consistency.

-   * regenerate/update existing images (cover new FairSoft releases? get
-     latest os updates to test closer to what a user may use)
-   * add new images (new os releases? which ship new compiler major versions
-     perhaps)
-   * remove old images
-   * For macs it involves similar steps, updating homebrew, perhaps the os
-     or the command line tools
+ * regenerate/update existing images (cover new FairSoft releases? get
+   latest os updates to test closer to what a user may use)
+ * add new images (new os releases? which ship new compiler major versions
+   perhaps)
+ * remove old images
+ * For macs it involves similar steps, updating homebrew, perhaps the os
+   or the command line tools

Line range hint 56-56: Ensure headings are surrounded by blank lines for better readability and consistency.

+ 
# Creating a new Release
+ 

CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Outside diff range and nitpick comments (2)
CONTRIBUTING.md (2)

Line range hint 24-24: Consider simplifying the phrase "at this point in time" to "currently" for conciseness.


Line range hint 53-64: Adjust the indentation of the unordered list items to match the expected levels.

-   * regenerate/update existing images (cover new FairSoft releases? get
-     latest os updates to test closer to what a user may use)
-   * add new images (new os releases? which ship new compiler major versions
-     perhaps)
-   * remove old images
-   * For macs it involves similar steps, updating homebrew, perhaps the os
-     or the command line tools
+ * regenerate/update existing images (cover new FairSoft releases? get
+   latest os updates to test closer to what a user may use)
+ * add new images (new os releases? which ship new compiler major versions
+   perhaps)
+ * remove old images
+ * For macs it involves similar steps, updating homebrew, perhaps the os
+   or the command line tools

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Outside diff range and nitpick comments (6)
CONTRIBUTING.md (6)

Line range hint 24-24: Simplify the phrase for clarity.

- These guidelines are horribly incomplete at this point in time, but one has to start somewhere ;)
+ These guidelines are still in development, but one has to start somewhere ;)

Line range hint 45-45: Remove redundancy in the phrase.

- The set of enabled checks will evolve over time.
+ The set of enabled checks will evolve.

Line range hint 65-65: Correct the grammatical structure for clarity.

- both in commit messages as well as in PR comments if applicable.
+ both in commit messages and in PR comments if applicable.

Line range hint 76-77: Correct the verb form for "opt-out".

- Rarely, it is needed to opt-out of *clang-format* for certain code sections
+ Rarely, it is needed to opt out of *clang-format* for certain code sections

Line range hint 53-53: Standardize unordered list indentation.

-  * regenerate/update existing images (cover new FairSoft releases? get
-    latest os updates to test closer to what a user may use)
-  * add new images (new os releases? which ship new compiler major versions
-    perhaps)
-  * remove old images
-  * For macs it involves similar steps, updating homebrew, perhaps the os
-    or the command line tools
+ * regenerate/update existing images (cover new FairSoft releases? get
+   latest os updates to test closer to what a user may use)
+ * add new images (new os releases? which ship new compiler major versions
+   perhaps)
+ * remove old images
+ * For macs it involves similar steps, updating homebrew, perhaps the os
+   or the command line tools

Also applies to: 57-57, 58-58, 61-61, 64-64, 132-132, 134-134, 136-136, 137-137


Line range hint 56-56: Ensure headings are surrounded by blank lines for better readability.

+ 
# Creating a new Release
+ 

CONTRIBUTING.md Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Outside diff range and nitpick comments (4)
CONTRIBUTING.md (4)

Line range hint 24-24: Simplify the phrase for clarity.

- These guidelines are horribly incomplete at this point in time, but one has to start somewhere ;)
+ These guidelines are still incomplete, but one has to start somewhere ;)

Line range hint 45-45: Remove redundancy in the phrase.

- The set of enabled checks will evolve over time.
+ The set of enabled checks will evolve.

Line range hint 65-65: Correct the conjunction usage for grammatical accuracy.

- both in commit messages as well as in PR comments if applicable.
+ both in commit messages and in PR comments if applicable.

Line range hint 76-77: Correct the verb form for "opt-out".

- Rarely, it is needed to opt-out of *clang-format* for certain code sections
+ Rarely, it is needed to opt out of *clang-format* for certain code sections

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Outside diff range and nitpick comments (7)
CONTRIBUTING.md (7)

Line range hint 24-24: Consider simplifying "at this point in time" to "currently" to enhance clarity.

- These guidelines are horribly incomplete at this point in time, but one has to start somewhere ;)
+ These guidelines are horribly incomplete currently, but one has to start somewhere ;)

Line range hint 45-45: The phrase "will evolve over time" can be simplified to "will evolve".

- The set of enabled checks will evolve over time.
+ The set of enabled checks will evolve.

Line range hint 65-65: Clarify the usage of "both" by adding "and".

- both in commit messages as well as in PR comments if applicable.
+ both in commit messages and in PR comments if applicable.

Line range hint 76-77: Correct the verb form for "opt-out".

- Rarely, it is needed to opt-out of *clang-format* for certain code sections
+ Rarely, it is needed to opt out of *clang-format* for certain code sections

Line range hint 56-56: Ensure that headings are surrounded by blank lines for proper Markdown formatting.

- # Creating a new Release
+ 
+ # Creating a new Release
+ 

Line range hint 31-31: Ensure that fenced code blocks are surrounded by blank lines for proper Markdown formatting.

- ```
+ 
+ ```
+ 

Also applies to: 81-81, 101-101


Line range hint 57-57: Ensure that lists are surrounded by blank lines for proper Markdown formatting.

- * Then I compare what is currently tested via CI and decide whether it
+ 
+ * Then I compare what is currently tested via CI and decide whether it
+ 

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Outside diff range and nitpick comments (2)
CONTRIBUTING.md (2)

133-136: Enhance the introduction clarity

The introduction could be more professional and clearer. Consider this revision:

-# Creating a new Release
-(This is basically for the release manager.
-So that we don't forget anything.)
+# Creating a new Release
+
+This document outlines the step-by-step process for release managers to ensure a consistent and complete release workflow.

138-145: Structure the milestone management steps

The milestone management section could be more actionable with numbered steps and clearer guidance.

-## Control the status
-
-* Take a look at the
-  [Milestone](https://github.com/FairRootGroup/FairRoot/milestones)
-  for the release
-
-  Consider moving still open items to another milestone
+## Control Release Status
+
+1. Review the release [milestone](https://github.com/FairRootGroup/FairRoot/milestones):
+   * Assess all open issues and pull requests
+   * Evaluate each item's criticality for the release
+   * Move non-critical items to future milestones
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between a0f4847 and 819c1bc.

📒 Files selected for processing (1)
  • CONTRIBUTING.md (2 hunks)
🧰 Additional context used
🪛 LanguageTool
CONTRIBUTING.md

[typographical] ~150-~150: Consider adding a comma.
Context: ...nything older, if relevant in GSI still) * Then I compare what is currently tested via ...

(IF_THEN_COMMA)


[uncategorized] ~201-~201: Possible missing comma found.
Context: ...a new release on GitHub. ## In certain cases the tag should be merged onto master: ...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 Markdownlint
CONTRIBUTING.md

153-153: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


155-155: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


157-157: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


158-158: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


183-183: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


191-191: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


199-199: Punctuation: '.'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


201-201: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


212-212: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


227-227: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)

CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
ChristianTackeGSI and others added 3 commits November 15, 2024 22:42
Be more transparent about our release process.

Co-Authored: @karabowi
Co-Authored: @dennisklein
Added section about complicated patch branch merging process.
Added section about major version.
Our tools prefer spaces not tabs.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (1)
CONTRIBUTING.md (1)

133-136: Improve the introduction's clarity and professionalism

Consider revising the introduction to be more formal and direct:

-# Creating a new Release
-(This is basically for the release manager.
-So that we don't forget anything.)
+# Creating a New Release
+
+This document outlines the release process for release managers, ensuring all necessary steps are completed systematically.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 819c1bc and bcab385.

⛔ Files ignored due to path filters (1)
  • .zenodo.json is excluded by !**/*.json
📒 Files selected for processing (1)
  • CONTRIBUTING.md (2 hunks)
🧰 Additional context used
🪛 LanguageTool
CONTRIBUTING.md

[typographical] ~150-~150: Consider adding a comma.
Context: ...nything older, if relevant in GSI still) * Then I compare what is currently tested via ...

(IF_THEN_COMMA)


[uncategorized] ~201-~201: A comma might be missing here.
Context: ...a new release on GitHub. ## In certain cases the tag should be merged onto master: ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

🪛 Markdownlint
CONTRIBUTING.md

153-153: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


155-155: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


157-157: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


158-158: Expected: 2; Actual: 3
Unordered list indentation

(MD007, ul-indent)


183-183: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


191-191: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


199-199: Punctuation: '.'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


201-201: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


212-212: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


227-227: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)

🔇 Additional comments (1)
CONTRIBUTING.md (1)

212-226: 🛠️ Refactor suggestion

Add safety checks for divergent branch merging

The current instructions for handling divergent branches need safety checks:

 ### Should the patch branch diverge too much from master:
 
+# Before proceeding:
+# 1. Create a backup branch
+git branch backup_master_$(date +%Y%m%d) master
+git branch backup_patches_$(date +%Y%m%d) v{x.y}_patches
+
+# 2. Verify the changes to be preserved
+git log --oneline master..v{x.y}_patches
+
+# 3. Proceed with the merge
 git checkout master
 git merge -s ours v{x.y}_patches
 git checkout --detach v{x.y}_patches
 git reset --soft master
 git checkout master
 git commit --amend -C HEAD
+
+# 4. Verify the result
+git log -p HEAD~1..HEAD
+git diff backup_patches_$(date +%Y%m%d) HEAD
+
+# 5. If everything looks correct
 git push origin master

This complex operation requires careful verification to ensure no changes are lost.

✅ Verification successful

The previous script didn't produce output because we're in a sandbox environment without git history. Let's examine the documentation to understand the context and verify if this merge workflow is documented elsewhere or if there are real examples of such patch branches.


Based on the documentation search results, I can now make a clear assessment of the review comment. The patch branch merging instructions are part of the official release process documented in CONTRIBUTING.md. The context shows this is a well-established workflow used specifically for merging patch branches back to master when creating new releases.

The review comment suggesting safety checks is verified as appropriate and valuable

The suggested safety checks are important additions because:

  1. The operation involves discarding changes from master, which could be dangerous without proper verification
  2. The backup branches provide a safety net in case something goes wrong
  3. The verification steps ensure the intended changes are preserved

The original review comment is correct and the suggested improvements are essential for safer release management.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify if there are any existing divergent branches
git for-each-ref --format='%(refname:short)' refs/heads/v*_patches | while read branch; do
  echo "Checking divergence for $branch..."
  # Count commits in both directions
  ahead=$(git rev-list --count master..$branch)
  behind=$(git rev-list --count $branch..master)
  if [ $ahead -gt 0 ] || [ $behind -gt 0 ]; then
    echo "$branch is $ahead commits ahead and $behind commits behind master"
  fi
done

Length of output: 84


Script:

#!/bin/bash
# Let's check if there are any examples or references to patch branches in the codebase
rg -i "patch.*branch" -A 3 -B 3

# Also check for any git workflow documentation
fd -t f "CONTRIBUTING|README" -X cat {}

Length of output: 70259

🧰 Tools
🪛 Markdownlint

212-212: Punctuation: ':'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)

CONTRIBUTING.md Show resolved Hide resolved
CONTRIBUTING.md Show resolved Hide resolved
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