falco icon indicating copy to clipboard operation
falco copied to clipboard

wip: docs(proposal): 20231220-features-adoption-and-deprecation.md

Open leogr opened this issue 8 months ago • 11 comments

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 avatar Dec 20 '23 15:12 leogr

cc @falcosecurity/core-maintainers

leogr avatar Dec 20 '23 15:12 leogr

@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

incertum avatar Dec 22 '23 06:12 incertum

  • 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 avatar Jan 09 '24 08:01 leogr

  • 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 avatar Jan 09 '24 08:01 leogr

  • 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!

leogr avatar Jan 09 '24 09:01 leogr

  • 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 avatar Jan 11 '24 05:01 incertum

  • 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?

incertum avatar Jan 11 '24 05:01 incertum

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 :point_down: 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.

leogr avatar Jan 11 '24 13:01 leogr

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

Looking back at some of my initial feedback https://github.com/falcosecurity/falco/pull/2986#issuecomment-1867277929 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?

incertum avatar Jan 12 '24 17:01 incertum

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

leogr avatar Jan 17 '24 14:01 leogr

@falcosecurity/falco-maintainers please review :pray:

leogr avatar Mar 01 '24 11:03 leogr

Bump @falcosecurity/falco-maintainers any additional feedback?

incertum avatar Mar 06 '24 06:03 incertum

[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 avatar Mar 06 '24 13:03 poiana