-
Notifications
You must be signed in to change notification settings - Fork 4
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
Add Repository for kuksa-java-sdk #33
Conversation
This is your friendly self-service bot. Thank you for raising a pull request to update the configuration of your GitHub organization. The following conditions need to fulfilled for auto-merging to be available:
Otterdog commands and optionsYou can trigger otterdog actions by commenting on this PR:
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Anything I have to do / can do here: #33 (comment)? |
4d8a8c1
to
28aa56b
Compare
This comment has been minimized.
This comment has been minimized.
should be fine now. |
Thanks for your (always) quick support and help @netomi :) |
np, environments are annoying, as they are kept being auto-created by GitHub. We should probably remove them from the config to avoid problems with them. It is useful sometimes to be able to configure them though. |
@@ -416,5 +416,19 @@ orgs.newOrg('eclipse-kuksa') { | |||
kuksa_default_branch_protection_rule('main') | |||
], | |||
}, | |||
orgs.newRepo('kuksa-java-sdk') { | |||
allow_merge_commit: true, | |||
allow_rebase_merge: false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here we use the same merge strategy as for the android-repos, i.e. only allow merge-commits, do not allow rebase/squash. As I understood there were some reasons to have that setup for Android, but does those reasons apply here as well, or do we want to have same setup as for most other repos where we allow all three methods?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't mind changing the approach here. I would like some kind of consistency though. The approach here is based on GitLab Flow. Are the other repos based on some official branching flow?
However there are some disadvantages of squashing with the current commit approach (conventional commits). The commits are linted for a consistency. Automatic Squash Merges will reduce the usefulness of this. So I am against that one. However you can squash it manually and force push before the merge if you want.
We can switch from merge commits to always rebase here if that feels better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would tend to rebase merge as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do not have any official branching flow in other repos. Typically there seems to be two sorts of people, those who prefer a clean history and fast forward merge, and those who prefer merge-commits. So in the end regardless of policy we will annoy some people. Personally I prefer a clean history unless the source branch is something long-lived, like merging "main" to "production" if you use the GitLab flow
There are also different views on how to keeping feature branches up-to-date, some prefer rebase and force-push to keep linear history, other prefer merges to make sure that there are no "orphan" comments. The general risk I see if you use merge-commits (or rebase) is that contributors will not do a rebase/squash/force-push to the feature branch before merge, so you end up with a lot of in my view use-less commit messages like "Applying suggestions from code-review"
The problem with too aggressive commit linters is that you might get errors also for commits created by bots like in eclipse-kuksa/kuksa-android-sdk#119, see https://github.com/eclipse-kuksa/kuksa-android-sdk/actions/runs/12070583813, as dependabot does not follow "subject must be sentence-case"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Always a hot topic because the pros and contras are difficult to clearly compare.^^
I suggest:
- Doing rebase for the clean history so it is aligned with most other repos
- Keep using conventional commit and automatic changelog / release note generation. The advantage is too big IMHO.
- Do not allow merge commits for consistency. Either rebase or merge commits.
- Do not allow automatic squashing because it should be done deliberately to ensure a good commit quality for the conventional commits standard.
- Document a clear Branching / Release concept (Preferable taking an official one) so all the rules are clearly linked and can be easily copied to a new repo.
If we don't care about the commit history or automatic changelog generation then we can think about allowing "everything". Could be that the advantages are not worth the trade off. But that is currently the basis for my arguments. :)
The risk that OSS Contributors are restricted too much by linters etc. to contribute is always there with every quality gate we are introducing. Be it code quality or commit quality tools. My feeling is that a good commit quality is ignored too much. That is why the main contributor Role is so important. You probably never want to just merge a (bigger) PR from outside without cleaning it up.
We should probably also not enforce "subject must be sentence-case" since dependabot is already using the conventional commit standards OR change the config for the dependabot for the commit message (if possible).
@erikbosch I let you decide together with Andre as the main reviewer one here without hard feelings. My motivation is only to solve the "bad commit messages" issue and automate release notes generation.
This is your friendly self-service bot. Diff for 2d2c94cProject automotive.kuksa[github_id=eclipse-kuksa]
there have been 7 validation infos, enable verbose output to display them.
+ add repository[name="kuksa-java-sdk"] {
+ allow_auto_merge = false
+ allow_forking = true
+ allow_merge_commit = true
+ allow_rebase_merge = false
+ allow_squash_merge = false
+ allow_update_branch = false
+ archived = false
+ auto_init = true
+ code_scanning_default_setup_enabled = false
+ custom_properties = {}
+ default_branch = "main"
+ delete_branch_on_merge = true
+ dependabot_alerts_enabled = true
+ dependabot_security_updates_enabled = true
+ description = "The Java SDK for Eclipse KUKSA"
+ gh_pages_build_type = "disabled"
+ has_discussions = false
+ has_issues = true
+ has_projects = true
+ has_wiki = true
+ is_template = false
+ merge_commit_message = "PR_TITLE"
+ merge_commit_title = "MERGE_MESSAGE"
+ name = "kuksa-java-sdk"
+ private = false
+ private_vulnerability_reporting_enabled = false
+ secret_scanning = "enabled"
+ secret_scanning_push_protection = "enabled"
+ squash_merge_commit_message = "COMMIT_MESSAGES"
+ squash_merge_commit_title = "COMMIT_OR_PR_TITLE"
+ topics = []
+ web_commit_signoff_required = false
+ }
+ add repo_workflow_settings[repository=kuksa-java-sdk] {
+ enabled = true
+ }
+ add branch_protection_rule[pattern="main", repository=kuksa-java-sdk] {
+ allows_deletions = false
+ allows_force_pushes = false
+ blocks_creations = false
+ bypass_force_push_allowances = []
+ bypass_pull_request_allowances = []
+ dismisses_stale_reviews = true
+ is_admin_enforced = false
+ lock_allows_fetch_and_merge = false
+ lock_branch = false
+ pattern = "main"
+ require_last_push_approval = true
+ required_approving_review_count = 1
+ required_status_checks = [
+ "eclipse-eca-validation:eclipsefdn/eca"
+ ],
+ requires_code_owner_reviews = false
+ requires_commit_signatures = false
+ requires_conversation_resolution = false
+ requires_deployments = false
+ requires_linear_history = false
+ requires_pull_request = true
+ requires_status_checks = true
+ requires_strict_status_checks = true
+ restricts_pushes = false
+ restricts_review_dismissals = false
+ }
Plan: 3 to add, 0 to change, 0 to delete. |
In case it needs an approve from me before merge, I will wait for @erikbosch approval and then follow up if I like what I see |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm 👍
This is your friendly self-service bot.
In order to automatically merge and apply the changes, add a comment |
/otterdog merge |
This is your friendly self-service bot. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
/otterdog merge |
This is your friendly self-service bot. The following changes have been successfully applied: Project automotive.kuksa[github_id=eclipse-kuksa]
there have been 7 validation infos, enable verbose output to display them.
+ add repository[name="kuksa-java-sdk"] {
+ allow_auto_merge = false
+ allow_forking = true
+ allow_merge_commit = true
+ allow_rebase_merge = false
+ allow_squash_merge = false
+ allow_update_branch = false
+ archived = false
+ auto_init = true
+ code_scanning_default_setup_enabled = false
+ custom_properties = {}
+ default_branch = "main"
+ delete_branch_on_merge = true
+ dependabot_alerts_enabled = true
+ dependabot_security_updates_enabled = true
+ description = "The Java SDK for Eclipse KUKSA"
+ gh_pages_build_type = "disabled"
+ has_discussions = false
+ has_issues = true
+ has_projects = true
+ has_wiki = true
+ is_template = false
+ merge_commit_message = "PR_TITLE"
+ merge_commit_title = "MERGE_MESSAGE"
+ name = "kuksa-java-sdk"
+ private = false
+ private_vulnerability_reporting_enabled = false
+ secret_scanning = "enabled"
+ secret_scanning_push_protection = "enabled"
+ squash_merge_commit_message = "COMMIT_MESSAGES"
+ squash_merge_commit_title = "COMMIT_OR_PR_TITLE"
+ topics = []
+ web_commit_signoff_required = false
+ }
+ add repo_workflow_settings[repository=kuksa-java-sdk] {
+ enabled = true
+ }
+ add branch_protection_rule[pattern="main", repository=kuksa-java-sdk] {
+ allows_deletions = false
+ allows_force_pushes = false
+ blocks_creations = false
+ bypass_force_push_allowances = []
+ bypass_pull_request_allowances = []
+ dismisses_stale_reviews = true
+ is_admin_enforced = false
+ lock_allows_fetch_and_merge = false
+ lock_branch = false
+ pattern = "main"
+ require_last_push_approval = true
+ required_approving_review_count = 1
+ required_status_checks = [
+ "eclipse-eca-validation:eclipsefdn/eca"
+ ],
+ requires_code_owner_reviews = false
+ requires_commit_signatures = false
+ requires_conversation_resolution = false
+ requires_deployments = false
+ requires_linear_history = false
+ requires_pull_request = true
+ requires_status_checks = true
+ requires_strict_status_checks = true
+ restricts_pushes = false
+ restricts_review_dismissals = false
+ }
Applying changes:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Done.
Executed plan: 3 added, 0 changed, 0 deleted.
!
! Warning: The following GitHub repos have been created:
!- https://github.com/eclipse-kuksa/kuksa-java-sdk
!
! Committers will gain access to it once the sync script runs (~2h).
! |
No description provided.