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

Group iteration on simplifying principle wording #14

Closed
wants to merge 4 commits into from

Conversation

scottrigby
Copy link
Member

@scottrigby scottrigby commented Jul 7, 2021

Remaining steps

Context

This was worked on during GitOps Working Group Principles Committee meetings over the past few weeks, and asynchronously in Slack/GitHub.

Participants

Zoom:

Co-authored-by: Jesse Butler <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Christian Hernandez <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Roberth Strand <[email protected]>
Co-authored-by: Daniel Warner <[email protected]>

GitHub:

Co-authored-by: Florian Heubeck <[email protected]>
Co-authored-by: Lloyd Chang <[email protected]>

During GitOps Working Group Principles Committee meeting today.

Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Jesse Butler <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Christian Hernandez <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
PRINCIPLES.md Outdated Show resolved Hide resolved
Copy link
Member Author

@scottrigby scottrigby left a comment

Choose a reason for hiding this comment

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

Seeing how this looks on the website preview, it still feels a bit clunky.

The paragraph for each principle already is very succinct and precise. We just need a short, memorable reference for each of those, so people can easily remember them in order.

What about this below? Each builds on a relevant piece of the previous statement, so does not need to repeat anything. Minimal changes from the last working session with a goal of keeping these as short and clear (5 words or less). WDYT?

  1. Desired System State is Declarative
  2. Declarations are Version Controlled
  3. State Reconciliation is Continuous
  4. System Changes Only Through Versioning

Or something short and sweet to this effect?

Click for website previews

v0.1.0

screencapture-localhost-8000-2021-07-16-13_38_10

Just remove "the principle of" from v0.1.0

screencapture-localhost-8000-2021-07-16-15_41_35

This proposed change

screencapture-localhost-8000-2021-07-16-15_36_44

PRINCIPLES.md Outdated Show resolved Hide resolved
PRINCIPLES.md Outdated

A system managed by GitOps must have its _Desired State_ expressed declaratively as data in a format writable and readable by both humans and machines.

2. **The principle of immutable desired state versions**
2. **State declarations are stored as immutable versions**
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
2. **State declarations are stored as immutable versions**
2. **Declarations are Version Controlled**

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
2. **State declarations are stored as immutable versions**
2. **Declarations are Versioned**

Copy link
Contributor

Choose a reason for hiding this comment

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

🤏

Copy link
Member Author

@scottrigby scottrigby Jul 20, 2021

Choose a reason for hiding this comment

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

@lloydchang Thanks!

Re #14 (review), I do personally agree the shorter and more memorable/catchy we can make these principle headers the better 🤏 🙂

I wonder though if "versioned" here is enough, whereas "version controlled" seems to me to check all the boxes of this principle. But do you not feel these have different meanings?

Desired State is stored in a way that supports versioning, immutability of versions, and retains a complete version history.

Copy link
Member Author

Choose a reason for hiding this comment

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

@jlbutler

Suggested change
2. **State declarations are stored as immutable versions**
2. **Declarations are versioned and Immutable**

Copy link
Member Author

Choose a reason for hiding this comment

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

@jlbutler Updated the PR.

@heubeck thanks for this suggestion! I haven't added this to the branch yet because I think we'd need more discussion on that first. but I added you as co-author to this commit as well since you're collaborating with us here on GitHub. I'd like us to get this PR merged soon, but we can continue iterating. Are you free to join the next principles meeting on Wednesday?

Copy link
Contributor

Choose a reason for hiding this comment

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

@scottrigby Thank you, I'll try to participate.

Copy link
Contributor

Choose a reason for hiding this comment

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

Regarding my audit-proof suggestion: Technically it means the same as the phrases with immutable and versions, but the statement is much stronger.
Industries with deployment revision logging ("audit") demands may appreciate a less technical terminology.

Copy link
Member Author

Choose a reason for hiding this comment

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

@heubeck this is really interesting. Given how close this PR is to being merged for v0.2.0, and how important it is to simplify the headers ASAP, let's discuss this idea for a next iteration 🙏

Would you be willing to move this idea to a discussion in the OpenGitOps project repo? That way there is a place for async discussion on this before and after the next meeting (tomorrow). The discussion could recommend this change from the current PR, and see how that sits with the principles committee and community?

- 2. **Declarations Are Versioned and Immutable**
+ 2. **Declarations Are Versioned and Audit-Proof**

Copy link
Contributor

Choose a reason for hiding this comment

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

Happy to discuss: open-gitops/project#15

PRINCIPLES.md Outdated Show resolved Hide resolved
PRINCIPLES.md Outdated Show resolved Hide resolved
Copy link
Contributor

@lloydchang lloydchang left a comment

Choose a reason for hiding this comment

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

👍 for 1, 3
🤏 Shorten 2 from Version Controlled to Versioned; added 🤏 suggestion
👎 for 4 because Changes aren't limited to System; added 🤏 suggestion
Thanks @scottrigby

PRINCIPLES.md Outdated Show resolved Hide resolved
PRINCIPLES.md Outdated

A system managed by GitOps must have its _Desired State_ expressed declaratively as data in a format writable and readable by both humans and machines.

2. **The principle of immutable desired state versions**
2. **State declarations are stored as immutable versions**
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
2. **State declarations are stored as immutable versions**
2. **Declarations are Versioned**

scottrigby and others added 3 commits July 26, 2021 00:41
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Jesse Butler <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Lloyd Chang <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Florian Heubeck <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Daniel Warner <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Lloyd Chang <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
PRINCIPLES.md Show resolved Hide resolved

A system managed by GitOps must have its _Desired State_ expressed declaratively as data in a format writable and readable by both humans and machines.

2. **The principle of immutable desired state versions**
2. **Declarations Are Versioned and Immutable**
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
2. **Declarations Are Versioned and Immutable**
2. **Declarations are Versioned and Immutable**

Typographic Suggestion:
Are -> are
to align with
https://user-images.githubusercontent.com/407675/126000898-eb81abd1-a947-40e4-b313-107fd45b7ad7.png
Thanks @scottrigby

Copy link
Member Author

@scottrigby scottrigby Jul 26, 2021

Choose a reason for hiding this comment

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

@lloydchang Yeah I wasn't sure about which title case style we want to adopt. I would recommend not getting too caught up in this question, and that we follow some existing style guide. For now I just chose AP style AP style Title Case so I didn't have to think about it.

If interested though, this is a fun tool to see how the different standards look https://titlecaseconverter.com/

Note "Is" is capitalized in every style. "Through" varies across the standards.

PRINCIPLES.md Show resolved Hide resolved
@jlbutler
Copy link
Contributor

Given this PR increments a pre-GA version I'm going to say LGTM. We can iterate more, I'd rather see that happen in subsequent PRs at this point as this captures common inputs from a few meetings.

Thanks @scottrigby for herding the cats on this! 🚀

Copy link
Member

@christianh814 christianh814 left a comment

Choose a reason for hiding this comment

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

I'm going to +1 @jlbutler . I have some thoughts on how they are now (specifically with principal 4). But this is a good iteration. I say LGTM

Copy link
Member Author

@scottrigby scottrigby left a comment

Choose a reason for hiding this comment

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

I'm not the sole author of this, just the wrangler. Given that, I also want to give my +1 to merging as-is for v0.2.0

@moshloop
Copy link
Contributor

I am +1 for merging and iterating, not so sure that we should tag it until we at a minimum solve consistency and grammatical issues.


4. **The principle of operations through declaration**
4. **Intentional Changes Only Through Versioning**

Choose a reason for hiding this comment

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

What about 4. Actualizations to Declarations are versioned

Choose a reason for hiding this comment

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

Note: Not sure if these are interchangeable in this context Actualizations to Declarations... vs Updates to Declarations... vs Changes to Declarations...

Copy link
Member Author

Choose a reason for hiding this comment

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

🤔


4. **The principle of operations through declaration**
4. **Intentional Changes Only Through Versioning**
Copy link
Member Author

Choose a reason for hiding this comment

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

To address grammar:

Suggested change
4. **Intentional Changes Only Through Versioning**
4. **Intentional Changes are Only Through Versioning**

Copy link
Member Author

Choose a reason for hiding this comment

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

🤔

This comment was marked as outdated.

@scottrigby
Copy link
Member Author

scottrigby commented Jul 28, 2021

The WG is struggling with making Principle 4 both precise and memorable. I think this is because the group has liked the idea of being able to essentially say "a GitOps managed system should be operated only through these principles" inside the principles themselves, with no further introduction. However that is not really a principle in itself. This was exactly what @bgrant0607 said when Dan asked for feedback on v0.1.0.

After trying so many options to make it fit, I'm very tempted to agree we may just need to simply make that clear when introducing the principles, and not try to squeeze it in as a principle itself.

@scottrigby
Copy link
Member Author

To be clear, these principle titles are very similar to the original ones proposed by Weaveworks in 2017. The main difference being the initial change proposed by @bricef, which combined the original 3 & 4 into our current # 3:

  1. State Reconciliation Is Continuous
    Software agents continuously, and automatically, compare a system's state to its Desired State. If these states differ for any reason, automated actions to reconcile them are initiated.

The only significant difference is we don't mention alerting on divergence. So far in WG discussions people have felt that is an important implementation detail, but not needed as a foundational principle. I'm, personally rethinking that now 🤔

As this PR stands, how does everyone feel about removing the additional principle 4, and/or bringing back the feedback loop concept as part of # 4?

@jlbutler
Copy link
Contributor

jlbutler commented Jul 29, 2021

@scottrigby I think you're correct in the collapsing of 3 & 4 being the main cause of "number four is hard". This quickly became the "and we mean it" principle because we're covering the high order bits of 4 principles now in 3.

I would be happy to explore what 3 principles looks like in review. I wonder if it might make sense to drop the tag increment from this PR and merge everything so far, then in a subsequent issue propose and discuss a 3-principle format?

@todaywasawesome
Copy link
Member

I suggest leaving principle 4 at the moment and cutting a 0.2.0 release. What we have in this PR is an improvement, lets take that win and move forward. @scottrigby @jlbutler

@drwarner
Copy link

At this point my inclination would be merge this PR as well. I think the proposal to drop principle 4 should be discussed for 0.3.0 though.


4. **The principle of operations through declaration**
4. **Intentional Changes Only Through Versioning**

This comment was marked as outdated.

@scottrigby
Copy link
Member Author

closing in favor of #21

@scottrigby scottrigby closed this Sep 15, 2021
@scottrigby scottrigby mentioned this pull request Sep 15, 2021
2 tasks
@scottrigby scottrigby deleted the group-session-july-7 branch September 17, 2021 21:25
scottrigby added a commit that referenced this pull request Sep 17, 2021
RC 1 PR drafted by:
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>

RC 1 PR reviewed by:
Co-authored-by: Nicholas Thomson <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Carlos Santana <[email protected]>

This draft was also based on work by the GitOps WG over the past 6 months.
Specifically #14, which was closed in favor of this RC 1 draft. Contributors
to that PR were:

Co-authored-by: Jesse Butler <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Christian Hernandez <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Roberth Strand <[email protected]>
Co-authored-by: Daniel Warner <[email protected]>
Co-authored-by: Florian Heubeck <[email protected]>
Co-authored-by: Lloyd Chang <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>
scottrigby added a commit that referenced this pull request Sep 17, 2021
First release candidate drafted by GWG/OGO chairs, incorporating all discussion
and feedback thus far. The objective was to propose a release candidate draft
reconciling and incorporating the varying views of all GitOps Working Group
community participants.

This draft has now been reviewed by GitHub WG maintainers. It was also reviewed
by GitOps Working Group members, including members of the principles committee.
After merge, we will create a release branch and tag the release. The goal is
to publish RC 1 widely, to request async feedback from the WG principles
committee, the wider WG, people listed in the interested-parties document:
https://github.com/gitops-working-group/gitops-working-group/blob/main/interested-parties.md
and the wider GitOps community.

This draft addresses previously planned milestones (now closed):

- Simplify principles titles
- Clarify language to emphasize main point of each principle
- Incorporate all community feedback with broad consensus
- Resolve notes and glossary items
- Ensure consistency of language
- Ensure accessibility of all language

RC 1 PR drafted by:
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>

RC 1 PR reviewed by:
Co-authored-by: Nicholas Thomson <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Carlos Santana <[email protected]>

This draft was also based on work by the GitOps WG over the past 6 months.
Specifically #14, which was closed in favor of this RC 1 draft. Contributors
to that PR were:

Co-authored-by: Jesse Butler <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Christian Hernandez <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Roberth Strand <[email protected]>
Co-authored-by: Daniel Warner <[email protected]>
Co-authored-by: Florian Heubeck <[email protected]>
Co-authored-by: Lloyd Chang <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>

Review changes after the initial draft were:

* Moving glossary to separate file, and adding hyperlinks from principles to
  glossary items

* Added context sentence for the principle headers grammar

* Removed incomplete summary from introduction. Unecessary now because
  principles are shorter and summmarize themselves

* Moved glossary to a standalone file

* Linked terms in principles to now linkable glossary items

* Address markdown version / git revision mismatch. Fixes #20

* Typo fixes

Co-authored-by: Nicholas Thomson <[email protected]>

* Added note about configuration data excluding other external data

Co-authored-by: Nicholas Thomson <[email protected]>

* Fixed formatting of software system glossary item. Clarified one list item

Co-authored-by: Nicholas Thomson <[email protected]>

* Added links within glossary items

Co-authored-by: Dan Garfield <[email protected]>

* Broadened user data example to just database contents. Fix formatting

Co-authored-by: Dan Garfield <[email protected]>

* Remove 'versioned' from reconciliation glossary item.

Co-authored-by: Dan Garfield <[email protected]>

* Fixed grammar, capitalization, and other formatting

Co-authored-by: Dan Garfield <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>
todaywasawesome pushed a commit that referenced this pull request Sep 24, 2021
First release candidate drafted by GWG/OGO chairs, incorporating all discussion
and feedback thus far. The objective was to propose a release candidate draft
reconciling and incorporating the varying views of all GitOps Working Group
community participants.

This draft has now been reviewed by GitHub WG maintainers. It was also reviewed
by GitOps Working Group members, including members of the principles committee.
After merge, we will create a release branch and tag the release. The goal is
to publish RC 1 widely, to request async feedback from the WG principles
committee, the wider WG, people listed in the interested-parties document:
https://github.com/gitops-working-group/gitops-working-group/blob/main/interested-parties.md
and the wider GitOps community.

This draft addresses previously planned milestones (now closed):

- Simplify principles titles
- Clarify language to emphasize main point of each principle
- Incorporate all community feedback with broad consensus
- Resolve notes and glossary items
- Ensure consistency of language
- Ensure accessibility of all language

RC 1 PR drafted by:
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>

RC 1 PR reviewed by:
Co-authored-by: Nicholas Thomson <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Carlos Santana <[email protected]>

This draft was also based on work by the GitOps WG over the past 6 months.
Specifically #14, which was closed in favor of this RC 1 draft. Contributors
to that PR were:

Co-authored-by: Jesse Butler <[email protected]>
Co-authored-by: William Caban <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
Co-authored-by: Moshe Immerman <[email protected]>
Co-authored-by: Christian Hernandez <[email protected]>
Co-authored-by: Leonardo Murillo <[email protected]>
Co-authored-by: Scott Rigby <[email protected]>
Co-authored-by: Chris Sanders <[email protected]>
Co-authored-by: Roberth Strand <[email protected]>
Co-authored-by: Daniel Warner <[email protected]>
Co-authored-by: Florian Heubeck <[email protected]>
Co-authored-by: Lloyd Chang <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>

Review changes after the initial draft were:

* Moving glossary to separate file, and adding hyperlinks from principles to
  glossary items

* Added context sentence for the principle headers grammar

* Removed incomplete summary from introduction. Unecessary now because
  principles are shorter and summmarize themselves

* Moved glossary to a standalone file

* Linked terms in principles to now linkable glossary items

* Address markdown version / git revision mismatch. Fixes #20

* Typo fixes

Co-authored-by: Nicholas Thomson <[email protected]>

* Added note about configuration data excluding other external data

Co-authored-by: Nicholas Thomson <[email protected]>

* Fixed formatting of software system glossary item. Clarified one list item

Co-authored-by: Nicholas Thomson <[email protected]>

* Added links within glossary items

Co-authored-by: Dan Garfield <[email protected]>

* Broadened user data example to just database contents. Fix formatting

Co-authored-by: Dan Garfield <[email protected]>

* Remove 'versioned' from reconciliation glossary item.

Co-authored-by: Dan Garfield <[email protected]>

* Fixed grammar, capitalization, and other formatting

Co-authored-by: Dan Garfield <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Dan Garfield <[email protected]>
@lloydchang lloydchang mentioned this pull request Sep 28, 2021
3 tasks
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.

Ensure first sentence of each principle is both accurate and memorable
9 participants