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(proposal): 20231220-features-adoption-and-deprecation.md #2986

Merged
merged 7 commits into from
Mar 6, 2024

Conversation

leogr
Copy link
Member

@leogr leogr commented Dec 20, 2023

What type of PR is this?

/kind design
/kind documentation

Any specific area of the project related to this PR?

/area proposals

What this PR does / why we need it:

As discussed among maintainers and based on feedback, the need to balance quick project evolution and avoid frequent changes that can disrupt adopters' workflow has emerged. This proposal aims to find that balance in the long term.

Special notes for your reviewer:

Although apparently well structured, the proposal must be considered as an RFC at the moment. The current goal is to ensure the proposed solution offers a good trade-off and will not introduce any unnecessary burden. Any aspect of the proposal can be changed at this stage.

Tentatively for
/milestone 0.37.0

Does this PR introduce a user-facing change?:

NONE

@leogr
Copy link
Member Author

leogr commented Dec 20, 2023

cc @falcosecurity/core-maintainers

@incertum
Copy link
Contributor

@leogr some more feedback

  • re "Define the number of previous releases that will receive patches or security updates and the duration of this support": I would be very careful with signing up for LTS as it is a huge overhead. For the foreseeable future I would like us to continue to only support patches for the current stable release
  • In the table I would just keep "Status" and "Intended for" and as I said before I am not sure if we will benefit from a "Feature Gate". It may make things too complicated.
  • Need formal criteria for each status plus for deciding what can be enabled by default (this would also help to audit some of the current defaults, some defaults may not be optimal atm) -> user-friendliness and performance should be on top of the criteria list
  • Proposing to formalize an adopters check list for each release going forward aligning with the "adopter expectations on the operational cost of using Falco" you mentioned
  • Since this is just the proposal where will the final doc live, under governance?
  • For the next 3 releases we need to communicate that we are introducing more formality and as a result we are going to clean up more than usually. Such as acknowledging that some configs or settings are not working well anymore and are replaced by better options xyz
  • Another suggestion is to also set some expectations wrt what areas of the project are more frequntly changing compared to areas or aspects that are more stable. For example, configs change often, but we never remove filter fields or rename them and never changed the minimum supported kernel versions per driver etc.
  • We also need a plan for undesired changes ... what if a config is broken and can't be fixed? It happened before.
  • One area under "Definitions" may be missing, e.g. "Platform support" which should include the kernel version support matrix, container runtimes etc

@leogr
Copy link
Member Author

leogr commented Jan 9, 2024

  • re "Define the number of previous releases that will receive patches or security updates and the duration of this support": I would be very careful with signing up for LTS as it is a huge overhead. For the foreseeable future I would like us to continue to only support patches for the current stable release

That item is indeed a non-goal: https://github.com/falcosecurity/falco/pull/2986/files#diff-e21f0482f5d32d905eb0258a61ddc4c61fd7b581adedd882225dec8758d073b1R15-R17

@leogr
Copy link
Member Author

leogr commented Jan 9, 2024

  • Since this is just the proposal where will the final doc live, under governance?

The governance is intended for the overall project, not for components. So, I thought just a .MD in the root of the falco repo and a mirror on the website. wdyt?

@leogr
Copy link
Member Author

leogr commented Jan 9, 2024

  • We also need a plan for undesired changes ... what if a config is broken and can't be fixed? It happened before.

Could you provide an example? Thanks!

@incertum
Copy link
Contributor

  • Since this is just the proposal where will the final doc live, under governance?

The governance is intended for the overall project, not for components. So, I thought just a .MD in the root of the falco repo and a mirror on the website. wdyt?

Great idea yes!

@incertum
Copy link
Contributor

  • We also need a plan for undesired changes ... what if a config is broken and can't be fixed? It happened before.

Could you provide an example? Thanks!

Remember the -d flag just broke and we simply could not fix it, hence we decided to just remove it. I agree it may be less likely to happen again, but if it's not a big deal to add a sentence around this why not?

@leogr
Copy link
Member Author

leogr commented Jan 11, 2024

Remember the -d flag just broke and we simply could not fix it, hence we decided to just remove it. I agree it may be less likely to happen again, but if it's not a big deal to add a sentence around this why not?

I would leave this edge case as a general exception 👇 so we can decide on a case-by-case basis. wdyt?

Any other exceptions to the rules provided by this policy require a formal core maintainer majority vote.

@incertum
Copy link
Contributor

Hi @leogr I think the most recent WIP commit is great.

Looking back at some of my initial feedback #2986 (comment) I think that was a lot, maybe too much.

After a fresh look I would now just propose to add one more Area, namely Platform Support Area and outline all things OS, arch, kernel versions, container runtime sockets etc support. WDYT?

@leogr
Copy link
Member Author

leogr commented Jan 17, 2024

/milestone 0.38.0
since this is not a blocker for the current release.

@poiana poiana modified the milestones: 0.37.0, 0.38.0 Jan 17, 2024
@leogr leogr force-pushed the docs/features-adoption-and-deprecation-proposal branch 2 times, most recently from a2fdf78 to e0c12f2 Compare February 16, 2024 16:44
@leogr leogr force-pushed the docs/features-adoption-and-deprecation-proposal branch from e0c12f2 to f8ddd42 Compare February 16, 2024 16:54
- Different parties may provide plugins, and each plugin may have a different maturity level. Only those plugins officially maintained by The Falco Project and identified as "core" for Falco are in scope for this policy; all others are excluded.
- Any other exceptions to the rules provided by this policy require a formal core maintainer majority vote.

### Versioning
Copy link
Contributor

Choose a reason for hiding this comment

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

@leogr proposal LGTM! One super minor comment: Do you think we could enumerate all core components here for which we plan to introduce semver 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.

We can enumerate core repositories, but we haven't yet defined a consistent way to enumerate core components.

Anyway, the goals I had in mind are:

  • Now we agree that all components affected by adoption/deprecation policies must be _SemVer_sioned
  • During the transition phases we will identify all of them and make them explicit

If this is not already clear, I can try to improve to improve the text a bit. May this help?

Copy link
Contributor

@incertum incertum left a comment

Choose a reason for hiding this comment

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

/approve

I know it's still marked as WIP, but wanted to show support already that this LGTM. I can re-approve should you still want to make minor adjustments.

leogr added 7 commits March 1, 2024 12:02
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
…le features deprecation require a major bump

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
…ature gates, simplify policies and transition phases

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
…orm support area

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
…evision

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
@leogr leogr force-pushed the docs/features-adoption-and-deprecation-proposal branch from f8ddd42 to f8a0fbf Compare March 1, 2024 11:03
@leogr leogr changed the title wip: docs(proposal): 20231220-features-adoption-and-deprecation.md docs(proposal): 20231220-features-adoption-and-deprecation.md Mar 1, 2024
@leogr
Copy link
Member Author

leogr commented Mar 1, 2024

@falcosecurity/falco-maintainers please review 🙏

Copy link
Member

@cpanato cpanato left a comment

Choose a reason for hiding this comment

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

+1

/lgtm

@incertum
Copy link
Contributor

incertum commented Mar 6, 2024

Bump @falcosecurity/falco-maintainers any additional feedback?

Copy link
Contributor

@FedeDP FedeDP left a comment

Choose a reason for hiding this comment

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

/approve
Great proposal and wording. Totally agree!

@poiana
Copy link
Contributor

poiana commented Mar 6, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cpanato, FedeDP, incertum, leogr

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [FedeDP,incertum,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@poiana poiana merged commit a5297c4 into master Mar 6, 2024
26 of 27 checks passed
@poiana poiana deleted the docs/features-adoption-and-deprecation-proposal branch March 6, 2024 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants