-
Notifications
You must be signed in to change notification settings - Fork 8
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
first draft of tenets #14
base: master
Are you sure you want to change the base?
Conversation
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.
SGTM. Was hoping for some type of "Don't be weird" principle to encourage re-use of stated rules from other similar projects, or a nudge towards consistency. ❤️ the machine enforceable bits.
We can always add more as we think about them. I'm also putting them here as a way of stating that "we hold these to be true for ALL of our repos, not just this one". |
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.
minor nits and an unfinished line.
… for writing down requirements
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.
SGTM
|
||
1. If we have not defined our requirements well enough for a machine to enforce them, | ||
then we have not defined them well enough for all humans to understand them. | ||
1. If a rule requires human judgment to be applied, |
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.
Some teams might, under time pressure, be willing to take calculated risks and might ask for andon cord type exceptions to machine enforceable rules. Maybe some kind of call-out that Intermittent human over-rides mean the rule also needs refinement and review.
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 like the idea of "if the cord gets pulled on the same rule with frequency greater than X". I'm going to think on how/where best to incorporate that, but that'll be a subject for future PRs I think.
or a situation is too ambiguous for the automation to understand. | ||
|
||
When a situation passes a defined ambiguity threshold | ||
our automation MUST halt and request human intervention. |
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.
Ok, this sort of addresses my previous comment.
## What this document is | ||
|
||
The purpose of this document is to define our tenets and goals | ||
for how we will manage our repositories. |
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.
These tenets & goals apply equally to private/internal and public/external repositories?
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.
Yes.
The extent to which we can apply them to different scopes and locations is an implementation detail and out of scope for this document (ex: GitHub Actions doesn't work on private repos yet.)
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.
Overall a great start and I am excited to how it grows.
1. We MUST efficiently communicate our requirements to all maintainers. | ||
The only way that we can do this is by writing them down. | ||
1. We MUST communicate our requirements to our users and contributors. | ||
The only way that we can do this is by writing them down. | ||
1. We cannot enforce undefined requirements. | ||
1. We cannot know when/if/how requirements change if they are not recorded. | ||
|
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.
Is the the correct location to also mention that having written requirements also makes it easier to plan and track progress against the requirements?
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.
Yes, absolutely! :) I'll add that in.
|
||
#### Enforced Rules | ||
|
||
All requirements SHOULD be machine enforced. |
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.
How does this jive with line 57 where we state that all requirements MUST be machine enforceable?
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.
Target vs reality. Requirements MUST be machine enforceable, but only SHOULD be machine enforced. The goal is that everything will be machine enforced, but the reality is that as we get started and as we add further requirements, there will be a period of time when humans need to enforce them.
Subsequent docs will delve into what our requirements are and how we plan to enforce them.
Any preferences that can be machine enforced | ||
SHOULD be machine enforced, | ||
and SHOULD then be made into requirements. |
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.
Why not have preferences that can be machine enforced MUST be required to be machine enforced but SHOULD become requirements? It would mean that any preferences are permanently fixed until a change is needed and are easy to replicate in other projects.
If we didn't want to make the suggested change I would like to change the text so that it encourages users to machine enforce as much as they can.
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 would actually be inclined to go the other direction:
If a preference can be machine enforced, it MUST become a requirement.
All requirements SHOULD be machine enforced.
See previous comment for why ^ is not MUST.
Description of changes:
As we start formalizing and documenting how we want to automate our repository management, we first need to define what we are attempting to accomplish.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.