From f88e632c78e281e4162c83bf6552253e77504d80 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Tue, 23 May 2023 18:29:12 +0200 Subject: [PATCH 01/11] docs(REPOSITORIES.md): more repo "scopes" Signed-off-by: Leonardo Grasso --- REPOSITORIES.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/REPOSITORIES.md b/REPOSITORIES.md index 17c45a81..1ad8472c 100644 --- a/REPOSITORIES.md +++ b/REPOSITORIES.md @@ -52,6 +52,21 @@ In OWNERS files, users are referenced by their GitHub usernames or aliases. In a Refer to [GOVERNANCE.md](GOVERNANCE.md#license). +## Scope + +Every repository within [falcosecurity](https://github.com/falcosecurity) GitHub organization must have an assigned scope, which characterizes its role and responsibilities. This scope is determined by the maintainers following the standard [decision-making process]((https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#decision-making)). The only exception to this process is for [core repositories](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-repositories), as our governance explicitly defines. + +The descriptions for the currently defined scopes are provided in the table below. + +| Scope | Description | +| --- | --- | +| **core** | Repositories that provides the essential components necessary for building, installing, running, documenting, or using Falco, as specified in [our governance](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-repositories). | +| **ecosystem** | Repositories that contain optional components that are useful to Falco and its ecosystem. | +| **infra** | Repositories dedicated to supporting the infrastructure of The Falco Project. They are not intended to be consumed by adopters but serve as the backbone for the functioning, management, and maintenance of the project's infrastructure. | +| **special** | Repositories with an unique function or a particular purpose for The Falco Project as a whole or the [falcosecurity](https://github.com/falcosecurity) GitHub organization, including but not limited to: [the evolution (this) repository](https://github.com/falcosecurity/evolution), the [community](https://github.com/falcosecurity/community), the [.github](https://github.com/falcosecurity/.github) repository, forks, mirrors and other particular ones like the [template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). Repositories without an explicitly defined scope are assumed to be special repositories. | + +Please note that the assigned scope pertains to the repository and does not necessarily reflect the hosted components or the artifacts it provides. For example, a mono repo that contains different components may still be scoped as *core* if its function or some hosted components align with the *core* definition. Notable examples include the [charts](https://github.com/falcosecurity/charts) and the [plugins](https://github.com/falcosecurity/plugins) repositories. + ## Status Repositories get assigned a status that describes their scope and responsibilties inside The Falco Project. @@ -59,7 +74,7 @@ Repositories get assigned a status that describes their scope and responsibiltie - **Official**: [Core repositories](GOVERNANCE.md#core-repositories) of The Falco Project. - **Incubating**: Repositories that contain non-core components or any subprojects that don't yet have an adequate level of maturity. - **Sandbox**: Intended only for the [falcosecurity/contrib](https://github.com/falcosecurity/contrib) repository. -- **Special**: Repositories with a special function or a particular purpose for The Falco Project as a whole or the [falcosecurity](https://github.com/falcosecurity) GitHub organization, including but not limited to [this repository](https://github.com/falcosecurity/evolution), the [community](https://github.com/falcosecurity/community), the [.github](https://github.com/falcosecurity/.github) repository, and other particular ones like the [template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). +- **Archived**: Repositories that are no longer maintained and are kept for historical purposes. The status of each repository is tracked in the [README.md](README.md) file of the [falcosecurity/evolution](https://github.com/falcosecurity/evolution) repository. From b46d82e5041bd2e8cf78f44954128bf04fd4b0f5 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Tue, 30 May 2023 17:38:17 +0200 Subject: [PATCH 02/11] docs(REPOSITORIES.md): revising scopes and status, renaming "official" to "stable" Signed-off-by: Leonardo Grasso --- REPOSITORIES.md | 80 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 56 insertions(+), 24 deletions(-) diff --git a/REPOSITORIES.md b/REPOSITORIES.md index 1ad8472c..26d3ff2e 100644 --- a/REPOSITORIES.md +++ b/REPOSITORIES.md @@ -54,29 +54,61 @@ Refer to [GOVERNANCE.md](GOVERNANCE.md#license). ## Scope -Every repository within [falcosecurity](https://github.com/falcosecurity) GitHub organization must have an assigned scope, which characterizes its role and responsibilities. This scope is determined by the maintainers following the standard [decision-making process]((https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#decision-making)). The only exception to this process is for [core repositories](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-repositories), as our governance explicitly defines. +*Scopes* are defined by [Core Maintainers](GOVERNANCE.md#core-maintainers) following the standard [decision-making process](GOVERNANCE.md#decision-making). Every repository within the [falcosecurity](https://github.com/falcosecurity) GitHub organization must have an assigned scope, which characterizes its **role and responsibilities**. The scope of a repository is determined by maintainers and might be subject to change over time. However, only [Core Maintainers](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-maintainers) can decide whether a specific repository should be given the [*core*](#core-scope) scope. See the [Lifecycle](#lifecycle) section for more details. -The descriptions for the currently defined scopes are provided in the table below. +Please note that the assigned scope pertains to the repository and might not necessarily reflect all the hosted components or the artifacts it provides. For example, a mono repo that contains different components may still be scoped as *core* if its function or some hosted components align with the *core* definition. Notable examples include the [charts](https://github.com/falcosecurity/charts) and the [plugins](https://github.com/falcosecurity/plugins) repositories. -| Scope | Description | -| --- | --- | -| **core** | Repositories that provides the essential components necessary for building, installing, running, documenting, or using Falco, as specified in [our governance](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-repositories). | -| **ecosystem** | Repositories that contain optional components that are useful to Falco and its ecosystem. | -| **infra** | Repositories dedicated to supporting the infrastructure of The Falco Project. They are not intended to be consumed by adopters but serve as the backbone for the functioning, management, and maintenance of the project's infrastructure. | -| **special** | Repositories with an unique function or a particular purpose for The Falco Project as a whole or the [falcosecurity](https://github.com/falcosecurity) GitHub organization, including but not limited to: [the evolution (this) repository](https://github.com/falcosecurity/evolution), the [community](https://github.com/falcosecurity/community), the [.github](https://github.com/falcosecurity/.github) repository, forks, mirrors and other particular ones like the [template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). Repositories without an explicitly defined scope are assumed to be special repositories. | +The *scope* of each repository is tracked by the [repository.yaml](https://github.com/falcosecurity/evolution/blob/main/repositories.yaml) file, and you can find an overview of that in the [README.md](README.md) of this repository. -Please note that the assigned scope pertains to the repository and does not necessarily reflect the hosted components or the artifacts it provides. For example, a mono repo that contains different components may still be scoped as *core* if its function or some hosted components align with the *core* definition. Notable examples include the [charts](https://github.com/falcosecurity/charts) and the [plugins](https://github.com/falcosecurity/plugins) repositories. +The descriptions for the currently defined scopes are provided in the below sub-sections. + +### Core Scope + +Core repositories form the heart of Falco and are critically important. Our [governance](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-repositories) precisely defines them as: + +> repositories essential for building, installing, running, documenting, or using Falco + +They provide foundational code, primary libraries, crucial APIs, deployment tools, documentation, and more. They are the most important repositories in the project and are the most likely to be used (directly or indirectly) by adopters. + +### Ecosystem Scope + +Repositories under the ecosystem scope are extensions of the core project. They provide optional components that may be useful to Falco and its adopters. While they may not be necessary for the basic functioning of Falco, ecosystem repositories often offer value-added features, integrations, utilities, and services that help adopters make the most out of Falco. + +### Infra Scope + +Repositories under the infra scope are dedicated to supporting the infrastructure of The Falco Project. They are not intended to be consumed by adopters but serve as the backbone for the functioning, management, and maintenance of the project and [falcosecurity](https://github.com/falcosecurity) GitHub organization. The most notable repository in this scope is [test-infra](https://github.com/falcosecurity/test-infra). + +### Special Scope + +Any other repository not matching a specific scope is included in this category. This includes repositories with a unique function or a particular purpose for The Falco Project as a whole or the [falcosecurity](https://github.com/falcosecurity) GitHub organization, including (but not limited to) the [evolution](https://github.com/falcosecurity/evolution) repository, the [community](https://github.com/falcosecurity/community) repository, the [.github](https://github.com/falcosecurity/.github) repository, forks, mirrors, and other particular ones like the [template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). + +It's worth noting that *special* repositories usually do not have a designated status. This is because they are not intended to be used by adopters and may not be subject to the same lifecycle as other repositories. ## Status -Repositories get assigned a status that describes their scope and responsibilties inside The Falco Project. +*Statuses* are defined by [Core Maintainers](GOVERNANCE.md#core-maintainers) following the standard [decision-making process](GOVERNANCE.md#decision-making). Every repository within [falcosecurity](https://github.com/falcosecurity) GitHub organization must have an assigned status, which characterizes its **maturity level**. The status of a repository is determined by maintainers and might be subject to change over time. See the [Lifecycle](#lifecycle) section for more details. + +Please keep in mind that the status designation refers strictly to the repository itself and might not necessarily reflect the hosted components or the artifacts it provides. This is especially true for mono repos. In such cases, the status of a component or an artifact should be denoted in the corresponding subfolder or documentation. + +The *status* of each repository is tracked by the [repository.yaml](https://github.com/falcosecurity/evolution/blob/main/repositories.yaml) file, and you can find an overview of that in the [README.md](README.md) of this repository. + +The definitions for each status are outlined in the below sub-sections. + +### Stable + +Repositories with the status *stable* have reached a high degree of maturity and reliability and are actively curated by maintainers. The components provided by those repositories are intended to be used in production by adopters and are officially supported by The Falco Project. Significant changes or updates are typically less frequent. + +### Incubating + +Repositories with the status *incubating* are in an intermediate stage of maturity. These repositories may still be subject to significant changes as feedback is gathered and improvements are made. The components provided by those repositories might be used in production by adopters, but it's not recommended. Generally, those projects are not safe for mission-critical purposes. The level of support for those projects may vary case by case. + +### Sandbox + +Repositories with the status *sandbox* are in the earliest stage of development. These repositories are not recommended for production use but are intended for users interested in experimenting with cutting-edge features, contributing to early-stage development, or providing feedback. -- **Official**: [Core repositories](GOVERNANCE.md#core-repositories) of The Falco Project. -- **Incubating**: Repositories that contain non-core components or any subprojects that don't yet have an adequate level of maturity. -- **Sandbox**: Intended only for the [falcosecurity/contrib](https://github.com/falcosecurity/contrib) repository. -- **Archived**: Repositories that are no longer maintained and are kept for historical purposes. +### Archived -The status of each repository is tracked in the [README.md](README.md) file of the [falcosecurity/evolution](https://github.com/falcosecurity/evolution) repository. +Repositories with the status *archived* are no longer maintained or updated and are only kept for historical purposes. They are not recommended for any use, and contributions are not accepted. ## Lifecycle @@ -92,23 +124,23 @@ New projects can be contributed to the falcosecurity organization by opening a G If the decision is to add the proposed project, then one of the falcosecurity GitHub organization admins will assist the issue opener in transferring the repository to the falcosecurity organization and configuring it in [falcosecurity/test-infra](https://github.com/falcosecurity/test-infra). Upon addition, the repository must be reviewed to make sure it respects the [criteria](#criteria), [owners](#owners), and [license](#license) points of this document. In particular, when a repository is added, the proposed owners are reviewed as described by the [MAINTAINERS_GUIDELINES.md](MAINTAINERS_GUIDELINES.md) and eventually accepted. -Once the project is added to the falcosecurity GitHub organization, it will be owned and licensed by The Falco Project and will be subject to its [governance](GOVERNANCE.md). +When a repository is first contributed to the [falcosecurity](https://github.com/falcosecurity) GitHub organization, it is assigned a [scope](#scope) and a [status](#status). -When projects are first contributed to the [falcosecurity](https://github.com/falcosecurity) GitHub organization they are assigned the "Incubating" status, or the "Special" status if appropriate. +Once the repository is added to the falcosecurity GitHub organization, it and its content will be owned and licensed by The Falco Project and will be subject to its [governance](GOVERNANCE.md). -### Change of Status +### Change of Status or Scope -Actively maintaining a repository might cause the evolution of its maturity, scope, and involvement, in The Falco Project. In those cases, the [Maintainers](GOVERNANCE.md#maintainers) of a given repository can propose changing its status by opening a GitHub issue in the [falcosecurity/evolution](https://github.com/falcosecurity/evolution) repository. +Actively maintaining a repository might cause the evolution of its maturity, scope, and involvement, in The Falco Project. In those cases, the [Maintainers](GOVERNANCE.md#maintainers) of a given repository can propose changing its status by opening a GitHub issue in the [falcosecurity/evolution](https://github.com/falcosecurity/evolution) repository. The [Core Maintainers](GOVERNANCE.md#core-maintainers) will take into account the community feedback and decide on the proposal. -This is the path by which projects can be promoted from "Incubating" to "Official" status, or demoted from "Official" to "Incubating". +For instance, this is the path by which projects can be promoted from *incubating* to *stable* status or demoted from *incubating* to *sandbox*. -### Archiviation +#### Archiviation Repositories showing little to no activity during the time span of a year can be proposed for archiviation by opening a GitHub issue in the [falcosecurity/evolution](https://github.com/falcosecurity/evolution) repository. [Archived repositories](https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories) will remain inside the falcosecurity GitHub organization but will be read-only and will not be maintained. As such, OWNERS files contained in archived repositories are not valid. In some cases, a repository is archived to reserve its name for future use. -### Unarchiviation +#### Unarchiviation Archived repositories can be proposed for unarchiviation by opening a GitHub issue in the [falcosecurity/evolution](https://github.com/falcosecurity/evolution) repository. If the decision is to unarchive the repository, then it must be reviewed to make sure it respects the [criteria](#criteria), [owners](#owners), and [license](#license) points of this document. In general, the same rules as for new repositories apply. The new proposed owners are reviewed as described by the [MAINTAINERS_GUIDELINES.md](MAINTAINERS_GUIDELINES.md) and eventually accepted. @@ -119,8 +151,8 @@ Repositories that show little relevance, are not maintained, or no longer have a ### Core Maintainers duties and privileges Since [Core Maintainers](GOVERNANCE.md#core-maintainers) as a team are responsible for the maintenance of the falcosecurity GitHub organization, they consequently have the following reserved powers: - - decide on assigning or removing the "Official" status of a repository; - - become maintainer of "Special" repositories; + - decide on assigning or removing the *core* status of a repository; + - become maintainer of *special* repositories; - become maintainer (or take control over) non-functioning or abandoned repositories (i.e., repositories with less than two active maintainers or disputed ones); - be the last escalation point for repositories disputes. From 87e0a8ca8084a5444cd2ff515947217345307868 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Tue, 30 May 2023 17:47:16 +0200 Subject: [PATCH 03/11] docs(GOVERNANCE.md): "Official" status terminology does not apply anymore This an editorial change to keep the document up to date with obvious external changes. Previously, "core" and "official" were used as synonyms. Now that we split statuses from scopes, the principle of core repository only applies to the scope. Signed-off-by: Leonardo Grasso --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 9c80f1a2..1f1de94d 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -70,7 +70,7 @@ The process of adding, removing, and managing repositories under the [falcosecur ### Core repositories -In particular, repositories essential for building, installing, running, documenting, or using Falco are considered **core repositories** and are given the *Official* status. +In particular, repositories essential for building, installing, running, documenting, or using Falco are considered **core repositories** and are given the *core* scope. ### Repository ownership From 3a0ecdafcff6dad3ccb8814a4a5baacd65bd4072 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Tue, 30 May 2023 18:12:53 +0200 Subject: [PATCH 04/11] docs(.github): update issue templates to reflect new statuses Signed-off-by: Leonardo Grasso --- .github/ISSUE_TEMPLATE/incubating_request.md | 15 --------------- .github/ISSUE_TEMPLATE/officialsupport_request.md | 15 --------------- .github/ISSUE_TEMPLATE/repo_archiving_request.md | 15 +++++++++++++++ .github/ISSUE_TEMPLATE/repo_incubating_request.md | 15 +++++++++++++++ .../ISSUE_TEMPLATE/repo_promoting_to_stable.md | 15 +++++++++++++++ .github/ISSUE_TEMPLATE/repo_sandbox_request.md | 15 +++++++++++++++ 6 files changed, 60 insertions(+), 30 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/incubating_request.md delete mode 100644 .github/ISSUE_TEMPLATE/officialsupport_request.md create mode 100644 .github/ISSUE_TEMPLATE/repo_archiving_request.md create mode 100644 .github/ISSUE_TEMPLATE/repo_incubating_request.md create mode 100644 .github/ISSUE_TEMPLATE/repo_promoting_to_stable.md create mode 100644 .github/ISSUE_TEMPLATE/repo_sandbox_request.md diff --git a/.github/ISSUE_TEMPLATE/incubating_request.md b/.github/ISSUE_TEMPLATE/incubating_request.md deleted file mode 100644 index 97d7c3ea..00000000 --- a/.github/ISSUE_TEMPLATE/incubating_request.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Incubation request -about: 'Request adoption or promotion of a repository to the "incubating" status' -title: '' -labels: kind/incubating -assignees: '' ---- - -**Repository**: - -**Motivation** - - diff --git a/.github/ISSUE_TEMPLATE/officialsupport_request.md b/.github/ISSUE_TEMPLATE/officialsupport_request.md deleted file mode 100644 index 439236d2..00000000 --- a/.github/ISSUE_TEMPLATE/officialsupport_request.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Official support request -about: 'Request promotion of a repository to the "official support" status' -title: '' -labels: kind/officialsupport -assignees: '' ---- - -**Repository**: - -**Motivation** - - diff --git a/.github/ISSUE_TEMPLATE/repo_archiving_request.md b/.github/ISSUE_TEMPLATE/repo_archiving_request.md new file mode 100644 index 00000000..443d9d71 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/repo_archiving_request.md @@ -0,0 +1,15 @@ +--- +name: Archiving request +about: 'Request to transition a repository to "archived" status' +title: '' +labels: kind/archived +assignees: '' +--- + +**Repository**: + +**Motivation** + + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/repo_incubating_request.md b/.github/ISSUE_TEMPLATE/repo_incubating_request.md new file mode 100644 index 00000000..e7869a94 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/repo_incubating_request.md @@ -0,0 +1,15 @@ +--- +name: Incubation request +about: 'Request adoption/promotion of a repository with/to the "incubating" status' +title: '' +labels: kind/incubating +assignees: '' +--- + +**Repository**: + +**Motivation** + + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/repo_promoting_to_stable.md b/.github/ISSUE_TEMPLATE/repo_promoting_to_stable.md new file mode 100644 index 00000000..76269964 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/repo_promoting_to_stable.md @@ -0,0 +1,15 @@ +--- +name: Promotion to stable +about: 'Request promotion of a repository to the "stable" status' +title: '' +labels: kind/stable +assignees: '' +--- + +**Repository**: + +**Motivation** + + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/repo_sandbox_request.md b/.github/ISSUE_TEMPLATE/repo_sandbox_request.md new file mode 100644 index 00000000..8d582801 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/repo_sandbox_request.md @@ -0,0 +1,15 @@ +--- +name: Sandbox request +about: 'Request adoption of a repository with the "sandbox" status' +title: '' +labels: kind/sandbox +assignees: '' +--- + +**Repository**: + +**Motivation** + + \ No newline at end of file From 6e19c365808b2dfcbb504d5334020f9478e38fa6 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Wed, 31 May 2023 11:59:12 +0200 Subject: [PATCH 05/11] docs(REPOSITORIES.md): explicitly define min criteria for statuses Signed-off-by: Leonardo Grasso --- .../ISSUE_TEMPLATE/repo_sandbox_request.md | 9 +++++++- REPOSITORIES.md | 22 +++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/repo_sandbox_request.md b/.github/ISSUE_TEMPLATE/repo_sandbox_request.md index 8d582801..08ef6a0b 100644 --- a/.github/ISSUE_TEMPLATE/repo_sandbox_request.md +++ b/.github/ISSUE_TEMPLATE/repo_sandbox_request.md @@ -6,10 +6,17 @@ labels: kind/sandbox assignees: '' --- + + **Repository**: **Motivation** \ No newline at end of file diff --git a/REPOSITORIES.md b/REPOSITORIES.md index 26d3ff2e..832ad0a3 100644 --- a/REPOSITORIES.md +++ b/REPOSITORIES.md @@ -80,7 +80,7 @@ Repositories under the infra scope are dedicated to supporting the infrastructur ### Special Scope -Any other repository not matching a specific scope is included in this category. This includes repositories with a unique function or a particular purpose for The Falco Project as a whole or the [falcosecurity](https://github.com/falcosecurity) GitHub organization, including (but not limited to) the [evolution](https://github.com/falcosecurity/evolution) repository, the [community](https://github.com/falcosecurity/community) repository, the [.github](https://github.com/falcosecurity/.github) repository, forks, mirrors, and other particular ones like the [template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). +Any other repository not matching a specific scope is included in this category. This includes repositories with a unique function or a particular purpose for The Falco Project as a whole or the [falcosecurity](https://github.com/falcosecurity) GitHub organization, including (but not limited to) the [evolution](https://github.com/falcosecurity/evolution) repository, the [community](https://github.com/falcosecurity/community) repository, the [.github](https://github.com/falcosecurity/.github) repository, forks, mirrors, and other particular ones like the [template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). These repositories are curated by [Core Maintainers](GOVERNANCE.md#core-maintainers). It's worth noting that *special* repositories usually do not have a designated status. This is because they are not intended to be used by adopters and may not be subject to the same lifecycle as other repositories. @@ -98,13 +98,31 @@ The definitions for each status are outlined in the below sub-sections. Repositories with the status *stable* have reached a high degree of maturity and reliability and are actively curated by maintainers. The components provided by those repositories are intended to be used in production by adopters and are officially supported by The Falco Project. Significant changes or updates are typically less frequent. +Criteria to achieve the *stable* status include: + +- Actively supported by maintainers and the community. +- Provided components are regularly updated and released. +- Documentation is provided and kept up-to-date. +- Automated testing via unit, functional, and integration test suites on multiple platforms (when applicable). +- Pre-built artifacts are published by an automated system for multiple platforms (when applicable). +- Documented release process (when applicable). + ### Incubating Repositories with the status *incubating* are in an intermediate stage of maturity. These repositories may still be subject to significant changes as feedback is gathered and improvements are made. The components provided by those repositories might be used in production by adopters, but it's not recommended. Generally, those projects are not safe for mission-critical purposes. The level of support for those projects may vary case by case. +Criteria to achieve the *incubating* status include: + +- Supported on a best-effort basis by at least two maintainers. +- Basic documentation is provided. +- Releases may not occur regularly. +- Minimal CI/CD pipelines are implemented (when applicable). + ### Sandbox -Repositories with the status *sandbox* are in the earliest stage of development. These repositories are not recommended for production use but are intended for users interested in experimenting with cutting-edge features, contributing to early-stage development, or providing feedback. +Repositories with the status *sandbox* are in the earliest stage of development. The componentes provided by these repositories are not recommended for production use but are intended for users interested in experimenting with cutting-edge features, contributing to early-stage development, or providing feedback. Usually, no support is provided for these projects. + +Generally, the criteria for adopting a project or a component with the status of *sandbox* are flexible and may be tightened as needed at the discretion of the community. Ideas, projects, or codes intended for the *sandbox* should generally be adopted under [falcosecurity/contrib](https://github.com/falcosecurity/contrib). A dedicated repository may only be requested for justified technical reasons. ### Archived From 40217c7e1808800c6f41d47a18f92ac591d0d1af Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Wed, 31 May 2023 14:28:07 +0200 Subject: [PATCH 06/11] docs: make a distinction between depreciation and archivation Signed-off-by: Leonardo Grasso --- .github/ISSUE_TEMPLATE/repo_archiving_request.md | 15 --------------- .../ISSUE_TEMPLATE/repo_deprecation_request.md | 15 +++++++++++++++ REPOSITORIES.md | 8 +++++--- 3 files changed, 20 insertions(+), 18 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/repo_archiving_request.md create mode 100644 .github/ISSUE_TEMPLATE/repo_deprecation_request.md diff --git a/.github/ISSUE_TEMPLATE/repo_archiving_request.md b/.github/ISSUE_TEMPLATE/repo_archiving_request.md deleted file mode 100644 index 443d9d71..00000000 --- a/.github/ISSUE_TEMPLATE/repo_archiving_request.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Archiving request -about: 'Request to transition a repository to "archived" status' -title: '' -labels: kind/archived -assignees: '' ---- - -**Repository**: - -**Motivation** - - \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/repo_deprecation_request.md b/.github/ISSUE_TEMPLATE/repo_deprecation_request.md new file mode 100644 index 00000000..6018e858 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/repo_deprecation_request.md @@ -0,0 +1,15 @@ +--- +name: Deprecation request +about: 'Request to transition a repository to "deprecated" status' +title: '' +labels: kind/deprecated +assignees: '' +--- + +**Repository**: + +**Motivation** + + \ No newline at end of file diff --git a/REPOSITORIES.md b/REPOSITORIES.md index 832ad0a3..7603a0ca 100644 --- a/REPOSITORIES.md +++ b/REPOSITORIES.md @@ -124,9 +124,11 @@ Repositories with the status *sandbox* are in the earliest stage of development. Generally, the criteria for adopting a project or a component with the status of *sandbox* are flexible and may be tightened as needed at the discretion of the community. Ideas, projects, or codes intended for the *sandbox* should generally be adopted under [falcosecurity/contrib](https://github.com/falcosecurity/contrib). A dedicated repository may only be requested for justified technical reasons. -### Archived +### Deprecated -Repositories with the status *archived* are no longer maintained or updated and are only kept for historical purposes. They are not recommended for any use, and contributions are not accepted. +Repositories with the status *deprecated* are no longer maintained or updated and are only kept for historical purposes. They are not recommended for any use, and contributions are not accepted. + +Deprecated respositories are usually [archived](#archiviation) and read-only. ## Lifecycle @@ -154,7 +156,7 @@ For instance, this is the path by which projects can be promoted from *incubatin #### Archiviation -Repositories showing little to no activity during the time span of a year can be proposed for archiviation by opening a GitHub issue in the [falcosecurity/evolution](https://github.com/falcosecurity/evolution) repository. [Archived repositories](https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories) will remain inside the falcosecurity GitHub organization but will be read-only and will not be maintained. As such, OWNERS files contained in archived repositories are not valid. +Repositories showing little to no activity during the time span of a year can be proposed for [deprecation](#deprecated) by opening a GitHub [issue](https://github.com/falcosecurity/evolution/issues/new?labels=kind%2Fdeprecation&template=repo_deprecation_request.md). Once the proposal has been accepted, they can be archived. [Archived repositories](https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories) will remain inside the falcosecurity GitHub organization but will be read-only and will not be maintained. As such, OWNERS files contained in archived repositories are not valid. In some cases, a repository is archived to reserve its name for future use. From d61f1686917f2a99bfa5348afb90e1eb92968cd3 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Wed, 31 May 2023 14:31:41 +0200 Subject: [PATCH 07/11] new(repos): add badges for repo scope and status Signed-off-by: Leonardo Grasso --- REPOSITORIES.md | 16 +++++++++++++ repos/badges/README.md | 33 +++++++++++++++++++++++++++ repos/badges/falco-core-blue.svg | 18 +++++++++++++++ repos/badges/falco-ecosystem-blue.svg | 18 +++++++++++++++ repos/badges/falco-infra-blue.svg | 18 +++++++++++++++ 5 files changed, 103 insertions(+) create mode 100644 repos/badges/README.md create mode 100644 repos/badges/falco-core-blue.svg create mode 100644 repos/badges/falco-ecosystem-blue.svg create mode 100644 repos/badges/falco-infra-blue.svg diff --git a/REPOSITORIES.md b/REPOSITORIES.md index 7603a0ca..12839996 100644 --- a/REPOSITORIES.md +++ b/REPOSITORIES.md @@ -64,6 +64,8 @@ The descriptions for the currently defined scopes are provided in the below sub- ### Core Scope +[![Falco Core Repository](./repos/badges/falco-core-blue.svg)](#core-scope) + Core repositories form the heart of Falco and are critically important. Our [governance](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-repositories) precisely defines them as: > repositories essential for building, installing, running, documenting, or using Falco @@ -72,14 +74,20 @@ They provide foundational code, primary libraries, crucial APIs, deployment tool ### Ecosystem Scope +[![Falco Ecosystem Repository](./repos/badges/falco-ecosystem-blue.svg)](#ecosystem-scope) + Repositories under the ecosystem scope are extensions of the core project. They provide optional components that may be useful to Falco and its adopters. While they may not be necessary for the basic functioning of Falco, ecosystem repositories often offer value-added features, integrations, utilities, and services that help adopters make the most out of Falco. ### Infra Scope +[![Falco Infra Repository](./repos/badges/falco-infra-blue.svg)](#infra-scope) + Repositories under the infra scope are dedicated to supporting the infrastructure of The Falco Project. They are not intended to be consumed by adopters but serve as the backbone for the functioning, management, and maintenance of the project and [falcosecurity](https://github.com/falcosecurity) GitHub organization. The most notable repository in this scope is [test-infra](https://github.com/falcosecurity/test-infra). ### Special Scope +*No badge is required for special repositories* + Any other repository not matching a specific scope is included in this category. This includes repositories with a unique function or a particular purpose for The Falco Project as a whole or the [falcosecurity](https://github.com/falcosecurity) GitHub organization, including (but not limited to) the [evolution](https://github.com/falcosecurity/evolution) repository, the [community](https://github.com/falcosecurity/community) repository, the [.github](https://github.com/falcosecurity/.github) repository, forks, mirrors, and other particular ones like the [template repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository). These repositories are curated by [Core Maintainers](GOVERNANCE.md#core-maintainers). It's worth noting that *special* repositories usually do not have a designated status. This is because they are not intended to be used by adopters and may not be subject to the same lifecycle as other repositories. @@ -96,6 +104,8 @@ The definitions for each status are outlined in the below sub-sections. ### Stable +[![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) + Repositories with the status *stable* have reached a high degree of maturity and reliability and are actively curated by maintainers. The components provided by those repositories are intended to be used in production by adopters and are officially supported by The Falco Project. Significant changes or updates are typically less frequent. Criteria to achieve the *stable* status include: @@ -109,6 +119,8 @@ Criteria to achieve the *stable* status include: ### Incubating +[![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) + Repositories with the status *incubating* are in an intermediate stage of maturity. These repositories may still be subject to significant changes as feedback is gathered and improvements are made. The components provided by those repositories might be used in production by adopters, but it's not recommended. Generally, those projects are not safe for mission-critical purposes. The level of support for those projects may vary case by case. Criteria to achieve the *incubating* status include: @@ -120,12 +132,16 @@ Criteria to achieve the *incubating* status include: ### Sandbox +[![Sandbox](https://img.shields.io/badge/status-sandbox-red?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#sandbox) + Repositories with the status *sandbox* are in the earliest stage of development. The componentes provided by these repositories are not recommended for production use but are intended for users interested in experimenting with cutting-edge features, contributing to early-stage development, or providing feedback. Usually, no support is provided for these projects. Generally, the criteria for adopting a project or a component with the status of *sandbox* are flexible and may be tightened as needed at the discretion of the community. Ideas, projects, or codes intended for the *sandbox* should generally be adopted under [falcosecurity/contrib](https://github.com/falcosecurity/contrib). A dedicated repository may only be requested for justified technical reasons. ### Deprecated +[![Deprecated](https://img.shields.io/badge/status-deprecated-inactive?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#deprecated) + Repositories with the status *deprecated* are no longer maintained or updated and are only kept for historical purposes. They are not recommended for any use, and contributions are not accepted. Deprecated respositories are usually [archived](#archiviation) and read-only. diff --git a/repos/badges/README.md b/repos/badges/README.md new file mode 100644 index 00000000..ab0da028 --- /dev/null +++ b/repos/badges/README.md @@ -0,0 +1,33 @@ +# Badges for repositories + +See [REPOSITORY.md](../../REPOSITORIES.md) for more information. + +## Scope + + + + +| Scopes | +| --- | +| [![Falco Core Repository](https://github.com/falcosecurity/evolution/blob/main/repos/badges/falco-core-blue.svg)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#core-scope) | +| [![Falco Ecosystem Repository](https://github.com/falcosecurity/evolution/blob/main/repos/badges/falco-ecosystem-blue.svg)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#ecosystem-scope) | +| [![Falco Infra Repository](https://github.com/falcosecurity/evolution/blob/main/repos/badges/falco-infra-blue.svg)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#infra-scope) | + + +## Status + +| Statuses | +| --- | +| [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | +| [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | +| [![Sandbox](https://img.shields.io/badge/status-sandbox-red?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#sandbox) | +| [![Deprecated](https://img.shields.io/badge/status-deprecated-inactive?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#deprecated) | diff --git a/repos/badges/falco-core-blue.svg b/repos/badges/falco-core-blue.svg new file mode 100644 index 00000000..eaad8737 --- /dev/null +++ b/repos/badges/falco-core-blue.svg @@ -0,0 +1,18 @@ + + + FALCO: CORE + + + + + + + + + FALCO + + + CORE + + + diff --git a/repos/badges/falco-ecosystem-blue.svg b/repos/badges/falco-ecosystem-blue.svg new file mode 100644 index 00000000..cf1c6cff --- /dev/null +++ b/repos/badges/falco-ecosystem-blue.svg @@ -0,0 +1,18 @@ + + + FALCO: ECOSYSTEM + + + + + + + + + FALCO + + + ECOSYSTEM + + + diff --git a/repos/badges/falco-infra-blue.svg b/repos/badges/falco-infra-blue.svg new file mode 100644 index 00000000..b7dd9fcc --- /dev/null +++ b/repos/badges/falco-infra-blue.svg @@ -0,0 +1,18 @@ + + + FALCO: INFRA + + + + + + + + + FALCO + + + INFRA + + + From 7bef62a71db4ccf40d7af9a665731a069e2502d7 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Wed, 31 May 2023 17:14:38 +0200 Subject: [PATCH 08/11] update(repositories.yaml): split scope and status Because of the split, this commit also assigns scope and status based on the new criteria. In particular, we assume that the following repos can be considered stable: - falco-exporter - falcosidekick - test-infra Signed-off-by: Leonardo Grasso --- repositories.yaml | 56 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/repositories.yaml b/repositories.yaml index fcc7bcd7..96992828 100644 --- a/repositories.yaml +++ b/repositories.yaml @@ -1,86 +1,112 @@ - name: .github - status: Special + scope: Special description: Default community health files - name: charts - status: Official + scope: Core + status: Stable description: Helm charts for running Falco with Kubernetes - name: client-go + scope: Ecosystem status: Incubating description: Go client and SDK for Falco - name: community - status: Special + scope: Special description: The Falco Project Community - name: contrib + scope: Ecosystem status: Sandbox description: Community sandbox to test-drive ideas/projects/code - name: deploy-kubernetes - status: Official + scope: Core + status: Stable description: Kubernetes deployment resources for Falco - name: driverkit + scope: Ecosystem status: Incubating description: "Kit for building Falco drivers: kernel modules or eBPF probes" - name: event-generator + scope: Ecosystem status: Incubating description: Generate a variety of suspect actions that are detected by Falco rulesets - name: evolution - status: Special + scope: Special description: Evolution process of The Falco Project - name: falco - status: Official + scope: Core + status: Stable description: Cloud Native Runtime Security - name: falco-exporter - status: Incubating + scope: Ecosystem + status: Stable description: Prometheus Metrics Exporter for Falco output events - name: falco-aws-terraform + scope: Ecosystem status: Incubating description: Terraform Module for Falco AWS Resources - name: falco-website - status: Official + scope: Core + status: Stable description: Hugo content to generate website content. Hosted by the CNCF - name: falcoctl - status: Official + scope: Core + status: Stable description: Administrative tooling for Falco - name: falcosidekick - status: Incubating + scope: Ecosystem + status: Stable description: Connect Falco to your ecosystem - name: falcosidekick-ui + scope: Ecosystem status: Incubating description: A simple WebUI with latest events from Falco - name: flycheck-falco-rules + scope: Ecosystem status: Incubating description: A custom checker for Falco rules files that can be loaded using the Flycheck syntax checker for GNU Emacs. - name: kernel-crawler + scope: Infra status: Incubating description: A tool to crawl Linux kernel versions - name: kilt + scope: Ecosystem status: Incubating description: Kilt is a project that defines how to inject foreign apps into containers - name: libs - status: Official + scope: Core + status: Stable description: libsinsp, libscap, the kernel module driver, and the eBPF driver sources - name: libs-sdk-go + scope: Ecosystem status: Incubating description: Go SDK for Falco libs - name: pigeon + scope: Infra status: Incubating description: Secrets and config manager for Falco's infrastructure - name: plugin-sdk-cpp + scope: Ecosystem status: Incubating description: Falco plugins SDK for C++ - name: plugin-sdk-go - status: Official + scope: Core + status: Stable - name: plugins - status: Official + scope: Core + status: Stable description: Falco plugins registry - name: rules - status: Official + scope: Core + status: Stable description: Falco rules repository - name: test-infra - status: Incubating + scope: Infra + status: Stable description: Falco workflow & testing infrastructure - name: testing + scope: Infra status: Incubating description: All-purpose test suite for Falco and its ecosystem - name: syscalls-bumper + scope: Infra status: Incubating description: A tool to automatically update supported syscalls in libs From e7b829a0d6612200fc836876a56a4f4ba601665c Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Wed, 31 May 2023 17:15:13 +0200 Subject: [PATCH 09/11] update(utils): handle scopes and status Signed-off-by: Leonardo Grasso --- utils/cmd/maintainers.go | 2 +- utils/cmd/readme.go | 54 +++++++++++++++++++++++++++------------- utils/pkg/utils/types.go | 20 ++++++++++++--- 3 files changed, 55 insertions(+), 21 deletions(-) diff --git a/utils/cmd/maintainers.go b/utils/cmd/maintainers.go index 9a5a1555..b2ff7105 100644 --- a/utils/cmd/maintainers.go +++ b/utils/cmd/maintainers.go @@ -59,7 +59,7 @@ func maintainersTextEditor(s string, core bool) (string, error) { added := false for _, r := range repositories { for _, url := range m.Projects { - isCoreRepo := r.Status == utils.RepositoryStatusOfficial + isCoreRepo := r.Scope == utils.RepositoryScopeCore isRepoMaintainer := url == r.URL() isSubDirMaintainer := strings.HasPrefix(url, r.URL()+"/") if isRepoMaintainer || isSubDirMaintainer { diff --git a/utils/cmd/readme.go b/utils/cmd/readme.go index e82e5f76..d45134a8 100644 --- a/utils/cmd/readme.go +++ b/utils/cmd/readme.go @@ -27,13 +27,20 @@ import ( ) var ( - readmeRepoFilePath string - readmeOutFilePath string - readmeTextStartTagFmt = "\n" - readmeTextEndTagFmt = "\n" + readmeRepoFilePath string + readmeOutFilePath string + readmeTextStartTagFmt = "\n" + readmeTextEndTagFmt = "\n" + readmeStatusBadgeTpl = "[![%s](https://img.shields.io/badge/status-%s-%s?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#%s)" + readmeStatusBadgeColorMap = map[utils.RepositoryStatus]string{ + utils.RepositoryStatusStable: "brightgreen", + utils.RepositoryStatusIncubating: "orange", + utils.RepositoryStatusSandbox: "red", + utils.RepositoryStatusDeprecated: "inactive", + } ) -func readmeTextEditor(s string, status utils.RepositoryStatus) (string, error) { +func readmeTextEditor(s string, status utils.RepositoryScope) (string, error) { startTag := fmt.Sprintf(readmeTextStartTagFmt, strings.ToUpper(status.String())) endTag := fmt.Sprintf(readmeTextEndTagFmt, strings.ToUpper(status.String())) if len(s) == 0 { @@ -47,15 +54,16 @@ func readmeTextEditor(s string, status utils.RepositoryStatus) (string, error) { var buf bytes.Buffer empty := true table := tablewriter.NewWriter(&buf) - table.SetHeader([]string{"Name", "Description"}) + table.SetHeader([]string{"Name", "Status", "Description"}) table.SetBorders(tablewriter.Border{Left: true, Top: false, Right: true, Bottom: false}) table.SetCenterSeparator("|") table.SetRowSeparator("-") table.SetAutoWrapText(false) for _, r := range repos { - if r.Status == status { + if r.Scope == status { row := []string{} row = append(row, fmt.Sprintf("[falcosecurity/%s](https://github.com/falcosecurity/%s)", r.Name, r.Name)) + row = append(row, readmePrintStatusBadge(r.Status)) row = append(row, r.Description) table.Append(row) empty = false @@ -67,20 +75,32 @@ func readmeTextEditor(s string, status utils.RepositoryStatus) (string, error) { return utils.ReplaceTextTags(s, startTag, endTag, buf.String()) } -func readmeTextEditorOfficial(s string) (string, error) { - return readmeTextEditor(s, utils.RepositoryStatusOfficial) +func readmeTextEditorCore(s string) (string, error) { + return readmeTextEditor(s, utils.RepositoryScopeCore) } -func readmeTextEditorIncubating(s string) (string, error) { - return readmeTextEditor(s, utils.RepositoryStatusIncubating) +func readmeTextEditorEcosystem(s string) (string, error) { + return readmeTextEditor(s, utils.RepositoryScopeEcosystem) } -func readmeTextEditorSandbox(s string) (string, error) { - return readmeTextEditor(s, utils.RepositoryStatusSandbox) +func readmeTextEditorInfra(s string) (string, error) { + return readmeTextEditor(s, utils.RepositoryScopeInfra) } func readmeTextEditorSpecial(s string) (string, error) { - return readmeTextEditor(s, utils.RepositoryStatusSpecial) + return readmeTextEditor(s, utils.RepositoryScopeSpecial) +} + +func readmePrintStatusBadge(status utils.RepositoryStatus) string { + s := status.String() + + if s == "" { + return "*n/a*" + } + + ls := strings.ToLower(s) + + return fmt.Sprintf(readmeStatusBadgeTpl, s, ls, readmeStatusBadgeColorMap[status], ls) } var readmeCmd = &cobra.Command{ @@ -95,9 +115,9 @@ var readmeCmd = &cobra.Command{ } return utils.EditCreateTextFile( readmeOutFilePath, - readmeTextEditorOfficial, - readmeTextEditorIncubating, - readmeTextEditorSandbox, + readmeTextEditorCore, + readmeTextEditorEcosystem, + readmeTextEditorInfra, readmeTextEditorSpecial, ) }, diff --git a/utils/pkg/utils/types.go b/utils/pkg/utils/types.go index 49b27ae0..f158be2d 100644 --- a/utils/pkg/utils/types.go +++ b/utils/pkg/utils/types.go @@ -32,27 +32,41 @@ type Maintainer struct { type Maintainers []Maintainer +type RepositoryScope string + type RepositoryStatus string type Repository struct { Name string `yaml:"name"` Description string `yaml:"description,omitempty"` - Status RepositoryStatus `yaml:"status"` + Scope RepositoryScope `yaml:"scope"` + Status RepositoryStatus `yaml:"status,omitempty"` } type Repositories []Repository const ( - RepositoryStatusOfficial RepositoryStatus = "Official" + RepositoryStatusStable RepositoryStatus = "Stable" RepositoryStatusIncubating RepositoryStatus = "Incubating" RepositoryStatusSandbox RepositoryStatus = "Sandbox" - RepositoryStatusSpecial RepositoryStatus = "Special" + RepositoryStatusDeprecated RepositoryStatus = "Deprecated" +) + +const ( + RepositoryScopeCore RepositoryScope = "Core" + RepositoryScopeEcosystem RepositoryScope = "Ecosystem" + RepositoryScopeInfra RepositoryScope = "Infra" + RepositoryScopeSpecial RepositoryScope = "Special" ) func (r RepositoryStatus) String() string { return string(r) } +func (r RepositoryScope) String() string { + return string(r) +} + func (r *Repository) URL() string { return fmt.Sprintf("https://github.com/falcosecurity/%s", r.Name) } From 4463668c1a48f879802e63b79d9d9fd1277d3812 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Wed, 31 May 2023 17:16:10 +0200 Subject: [PATCH 10/11] docs: make readme and maintainers docs Signed-off-by: Leonardo Grasso --- MAINTAINERS.md | 2 +- README.md | 146 ++++++++++++++++++++++++++----------------------- 2 files changed, 80 insertions(+), 68 deletions(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index bc9edd92..f456701d 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -4,7 +4,7 @@ As per our [governance](./GOVERNANCE.md), the lists of current maintainers and c These lists summarize the content of all [OWNERS](./GOVERNANCE.md#repository-ownership) files across all The Falco Project repositories. -Last update: **2023-05-26T09:02:29Z** +Last update: **2023-05-31T15:15:20Z** ## Core Maintainers diff --git a/README.md b/README.md index dd05d033..a5e6df07 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,9 @@ It provides a space for the community to work together, discuss ideas, and docum * [Maintainers List](./MAINTAINERS.md) - [Repositories](#repositories) * [Repositories Guidelines](./REPOSITORIES.md) - * [Official](#official) - * [Incubating](#incubating) - * [Sandbox](#sandbox) + * [Core](#core) + * [Ecosystem](#ecosystem) + * [Infra](#infra) * [Special](#special) * [Archived](#archived) * [Retired](#retired) @@ -46,74 +46,86 @@ You can find the list of current maintainers in the [MAINTAINERS.md](./MAINTAINE ## Repositories -The Falco Project follows a simple **adoption model** for repositories. Each repository gets a *[status](./REPOSITORIES.md#status)* that indicates the level of adoption (ie. the maturity level) or, for particular repositories, its scope. The criteria for adoption or changing the status will remain loose and tightened as needed at the discretion of the community. - -You can find more details in the [REPOSITORIES.md](./REPOSITORIES.md) file. - -In the sections below, we list the repositories grouped by status. - -### Official - -[Core repositories](./GOVERNANCE.md#core-repositories) can ultimately achieve the highest and most coveted status within The Falco Project: "*Official*." - -You can request the promotion of a repository by submitting an [issue](https://github.com/falcosecurity/evolution/issues/new?assignees=&labels=kind%2Fofficialsupport&template=officialsupport_request.md). - -**List of repositories in *Official* status (core repositories)** - -| NAME | DESCRIPTION | -|---------------------------------------------------------------------------------------|--------------------------------------------------------------------------| -| [falcosecurity/charts](https://github.com/falcosecurity/charts) | Helm charts for running Falco with Kubernetes | -| [falcosecurity/deploy-kubernetes](https://github.com/falcosecurity/deploy-kubernetes) | Kubernetes deployment resources for Falco | -| [falcosecurity/falco](https://github.com/falcosecurity/falco) | Cloud Native Runtime Security | -| [falcosecurity/falco-website](https://github.com/falcosecurity/falco-website) | Hugo content to generate website content. Hosted by the CNCF | -| [falcosecurity/falcoctl](https://github.com/falcosecurity/falcoctl) | Administrative tooling for Falco | -| [falcosecurity/libs](https://github.com/falcosecurity/libs) | libsinsp, libscap, the kernel module driver, and the eBPF driver sources | -| [falcosecurity/plugin-sdk-go](https://github.com/falcosecurity/plugin-sdk-go) | | -| [falcosecurity/plugins](https://github.com/falcosecurity/plugins) | Falco plugins registry | -| [falcosecurity/rules](https://github.com/falcosecurity/rules) | Falco rules repository | - - -### Incubating - -The "*Incubating*" level refers to those repositories that contain non-core components or any subprojects that don't yet have an adequate level of maturity. You can request the incubation of a repository by submitting an [issue](https://github.com/falcosecurity/evolution/issues/new?assignees=&labels=kind%2Fincubating&template=incubating_request.md). - -**List of repositories in *Incubating* status** - -| NAME | DESCRIPTION | -|---------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| -| [falcosecurity/client-go](https://github.com/falcosecurity/client-go) | Go client and SDK for Falco | -| [falcosecurity/driverkit](https://github.com/falcosecurity/driverkit) | Kit for building Falco drivers: kernel modules or eBPF probes | -| [falcosecurity/event-generator](https://github.com/falcosecurity/event-generator) | Generate a variety of suspect actions that are detected by Falco rulesets | -| [falcosecurity/falco-exporter](https://github.com/falcosecurity/falco-exporter) | Prometheus Metrics Exporter for Falco output events | -| [falcosecurity/falco-aws-terraform](https://github.com/falcosecurity/falco-aws-terraform) | Terraform Module for Falco AWS Resources | -| [falcosecurity/falcosidekick](https://github.com/falcosecurity/falcosidekick) | Connect Falco to your ecosystem | -| [falcosecurity/falcosidekick-ui](https://github.com/falcosecurity/falcosidekick-ui) | A simple WebUI with latest events from Falco | -| [falcosecurity/flycheck-falco-rules](https://github.com/falcosecurity/flycheck-falco-rules) | A custom checker for Falco rules files that can be loaded using the Flycheck syntax checker for GNU Emacs. | -| [falcosecurity/kernel-crawler](https://github.com/falcosecurity/kernel-crawler) | A tool to crawl Linux kernel versions | -| [falcosecurity/kilt](https://github.com/falcosecurity/kilt) | Kilt is a project that defines how to inject foreign apps into containers | -| [falcosecurity/libs-sdk-go](https://github.com/falcosecurity/libs-sdk-go) | Go SDK for Falco libs | -| [falcosecurity/pigeon](https://github.com/falcosecurity/pigeon) | Secrets and config manager for Falco's infrastructure | -| [falcosecurity/plugin-sdk-cpp](https://github.com/falcosecurity/plugin-sdk-cpp) | Falco plugins SDK for C++ | -| [falcosecurity/test-infra](https://github.com/falcosecurity/test-infra) | Falco workflow & testing infrastructure | -| [falcosecurity/testing](https://github.com/falcosecurity/testing) | All-purpose test suite for Falco and its ecosystem | -| [falcosecurity/syscalls-bumper](https://github.com/falcosecurity/syscalls-bumper) | A tool to automatically update supported syscalls in libs | - - -### Sandbox - -You can find "*Sandbox*" level ideas/projects/code under the [falcosecurity/contrib](https://github.com/falcosecurity/contrib) repository. +The Falco Project applies a straightforward **adoption model** for its repositories. Each repository is given a *[scope](./REPOSITORIES.md#scope)*, which outlines its purpose, and a *[status](./REPOSITORIES.md#status)* that indicates its maturity level. + +For more detailed information, please refer to the [REPOSITORIES.md](./REPOSITORIES.md) file. + +In the sections that follow, we present the repositories, grouped by their *scope*. + +### Core + +Core repositories, as defined by Falco's [governance](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md#core-repositories), are critically important as they are essential for building, installing, running, documenting, and using Falco. + +For more information, click on the badge below. + +[![Falco Core Repository](./repos/badges/falco-core-blue.svg)](./REPOSITORIES.md#core-scope) + + +| NAME | STATUS | DESCRIPTION | +|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| +| [falcosecurity/charts](https://github.com/falcosecurity/charts) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Helm charts for running Falco with Kubernetes | +| [falcosecurity/deploy-kubernetes](https://github.com/falcosecurity/deploy-kubernetes) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Kubernetes deployment resources for Falco | +| [falcosecurity/falco](https://github.com/falcosecurity/falco) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Cloud Native Runtime Security | +| [falcosecurity/falco-website](https://github.com/falcosecurity/falco-website) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Hugo content to generate website content. Hosted by the CNCF | +| [falcosecurity/falcoctl](https://github.com/falcosecurity/falcoctl) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Administrative tooling for Falco | +| [falcosecurity/libs](https://github.com/falcosecurity/libs) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | libsinsp, libscap, the kernel module driver, and the eBPF driver sources | +| [falcosecurity/plugin-sdk-go](https://github.com/falcosecurity/plugin-sdk-go) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | | +| [falcosecurity/plugins](https://github.com/falcosecurity/plugins) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco plugins registry | +| [falcosecurity/rules](https://github.com/falcosecurity/rules) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco rules repository | + + +### Ecosystem + +Ecosystem repositories extend the core project by providing optional components, including value-added features, integrations, utilities, and services that, while not essential for basic Falco functioning, enrich its utility for adopters. + +For more information, click on the badge below. + +[![Falco Ecosystem Repository](./repos/badges/falco-ecosystem-blue.svg)](./REPOSITORIES.md#ecosystem-scope) + + +| NAME | STATUS | DESCRIPTION | +|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| +| [falcosecurity/client-go](https://github.com/falcosecurity/client-go) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Go client and SDK for Falco | +| [falcosecurity/contrib](https://github.com/falcosecurity/contrib) | [![Sandbox](https://img.shields.io/badge/status-sandbox-red?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#sandbox) | Community sandbox to test-drive ideas/projects/code | +| [falcosecurity/driverkit](https://github.com/falcosecurity/driverkit) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Kit for building Falco drivers: kernel modules or eBPF probes | +| [falcosecurity/event-generator](https://github.com/falcosecurity/event-generator) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Generate a variety of suspect actions that are detected by Falco rulesets | +| [falcosecurity/falco-exporter](https://github.com/falcosecurity/falco-exporter) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Prometheus Metrics Exporter for Falco output events | +| [falcosecurity/falco-aws-terraform](https://github.com/falcosecurity/falco-aws-terraform) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Terraform Module for Falco AWS Resources | +| [falcosecurity/falcosidekick](https://github.com/falcosecurity/falcosidekick) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Connect Falco to your ecosystem | +| [falcosecurity/falcosidekick-ui](https://github.com/falcosecurity/falcosidekick-ui) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A simple WebUI with latest events from Falco | +| [falcosecurity/flycheck-falco-rules](https://github.com/falcosecurity/flycheck-falco-rules) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A custom checker for Falco rules files that can be loaded using the Flycheck syntax checker for GNU Emacs. | +| [falcosecurity/kilt](https://github.com/falcosecurity/kilt) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Kilt is a project that defines how to inject foreign apps into containers | +| [falcosecurity/libs-sdk-go](https://github.com/falcosecurity/libs-sdk-go) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Go SDK for Falco libs | +| [falcosecurity/plugin-sdk-cpp](https://github.com/falcosecurity/plugin-sdk-cpp) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Falco plugins SDK for C++ | + + +### Infra + +Infra repositories, such as the prominent [test-infra](https://github.com/falcosecurity/test-infra), underpin The Falco Project's infrastructure, serving the project's functioning, management, and maintenance. + +For more information, click on the badge below. + +[![Falco Infra Repository](./repos/badges/falco-infra-blue.svg)](./REPOSITORIES.md#infra-scope) + +| NAME | STATUS | DESCRIPTION | +|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------| +| [falcosecurity/kernel-crawler](https://github.com/falcosecurity/kernel-crawler) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A tool to crawl Linux kernel versions | +| [falcosecurity/pigeon](https://github.com/falcosecurity/pigeon) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Secrets and config manager for Falco's infrastructure | +| [falcosecurity/test-infra](https://github.com/falcosecurity/test-infra) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco workflow & testing infrastructure | +| [falcosecurity/testing](https://github.com/falcosecurity/testing) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | All-purpose test suite for Falco and its ecosystem | +| [falcosecurity/syscalls-bumper](https://github.com/falcosecurity/syscalls-bumper) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A tool to automatically update supported syscalls in libs | + ### Special -Some repositories have a special meaning and do not fit the above statuses. They serve a particular purpose or function in the [falcosecurity](https://github.com/falcosecurity) organization and are curated by [core maintainers](./GOVERNANCE.md#core-maintainers). +Finally, some repositories have a special meaning and do not fit the above scopes. They serve a particular purpose or function in the [falcosecurity](https://github.com/falcosecurity) organization and are curated by [core maintainers](./GOVERNANCE.md#core-maintainers). -**List of *Special* repositories** -| NAME | DESCRIPTION | -|-----------------------------------------------------------------------|----------------------------------------| -| [falcosecurity/.github](https://github.com/falcosecurity/.github) | Default community health files | -| [falcosecurity/community](https://github.com/falcosecurity/community) | The Falco Project Community | -| [falcosecurity/evolution](https://github.com/falcosecurity/evolution) | Evolution process of The Falco Project | +| NAME | STATUS | DESCRIPTION | +|-----------------------------------------------------------------------|--------|----------------------------------------| +| [falcosecurity/.github](https://github.com/falcosecurity/.github) | *n/a* | Default community health files | +| [falcosecurity/community](https://github.com/falcosecurity/community) | *n/a* | The Falco Project Community | +| [falcosecurity/evolution](https://github.com/falcosecurity/evolution) | *n/a* | Evolution process of The Falco Project | ### Archived @@ -124,7 +136,7 @@ The list of archived repositories can be found [here](https://github.com/falcose ### Retired -Finally, repositories that are no longer maintained or relevant to The Falco Project will be retired definitively. Periodically, the maintainers clean up the [falcosecurity](https://github.com/falcosecurity) and move these projects to the [Falco Projects Retirement Home](https://github.com/falcosecurity-retire) GitHub's organization. +Repositories that are no longer maintained or relevant to The Falco Project will be retired definitively. Periodically, the maintainers clean up the [falcosecurity](https://github.com/falcosecurity) and move these projects to the [Falco Projects Retirement Home](https://github.com/falcosecurity-retire) GitHub's organization. ## Contributing From aa57a20828a134ebe840b2b2087641237547cf25 Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Thu, 1 Jun 2023 15:14:51 +0200 Subject: [PATCH 11/11] update(repositories.yaml): improve descriptions Signed-off-by: Leonardo Grasso --- MAINTAINERS.md | 2 +- README.md | 74 +++++++++++++++++++++++------------------------ repositories.yaml | 55 ++++++++++++++++++----------------- 3 files changed, 66 insertions(+), 65 deletions(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index f456701d..d78cd2ca 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -4,7 +4,7 @@ As per our [governance](./GOVERNANCE.md), the lists of current maintainers and c These lists summarize the content of all [OWNERS](./GOVERNANCE.md#repository-ownership) files across all The Falco Project repositories. -Last update: **2023-05-31T15:15:20Z** +Last update: **2023-06-01T13:13:53Z** ## Core Maintainers diff --git a/README.md b/README.md index a5e6df07..af37bd1d 100644 --- a/README.md +++ b/README.md @@ -61,17 +61,17 @@ For more information, click on the badge below. [![Falco Core Repository](./repos/badges/falco-core-blue.svg)](./REPOSITORIES.md#core-scope) -| NAME | STATUS | DESCRIPTION | -|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| -| [falcosecurity/charts](https://github.com/falcosecurity/charts) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Helm charts for running Falco with Kubernetes | -| [falcosecurity/deploy-kubernetes](https://github.com/falcosecurity/deploy-kubernetes) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Kubernetes deployment resources for Falco | -| [falcosecurity/falco](https://github.com/falcosecurity/falco) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Cloud Native Runtime Security | -| [falcosecurity/falco-website](https://github.com/falcosecurity/falco-website) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Hugo content to generate website content. Hosted by the CNCF | -| [falcosecurity/falcoctl](https://github.com/falcosecurity/falcoctl) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Administrative tooling for Falco | -| [falcosecurity/libs](https://github.com/falcosecurity/libs) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | libsinsp, libscap, the kernel module driver, and the eBPF driver sources | -| [falcosecurity/plugin-sdk-go](https://github.com/falcosecurity/plugin-sdk-go) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | | -| [falcosecurity/plugins](https://github.com/falcosecurity/plugins) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco plugins registry | -| [falcosecurity/rules](https://github.com/falcosecurity/rules) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco rules repository | +| NAME | STATUS | DESCRIPTION | +|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [falcosecurity/charts](https://github.com/falcosecurity/charts) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Helm charts repository for Falco and its ecosystem. | +| [falcosecurity/deploy-kubernetes](https://github.com/falcosecurity/deploy-kubernetes) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Kubernetes deployment resources for Falco and its ecosystem. | +| [falcosecurity/falco](https://github.com/falcosecurity/falco) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco is a cloud native runtime security tool for Linux operating systems. It is designed to detect and alert on abnormal behavior and potential security threats in real-time. | +| [falcosecurity/falco-website](https://github.com/falcosecurity/falco-website) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco website and documentation repository. | +| [falcosecurity/falcoctl](https://github.com/falcosecurity/falcoctl) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | The official CLI tool for working with Falco and its ecosystem components. | +| [falcosecurity/libs](https://github.com/falcosecurity/libs) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Foundational libraries that constitute the core of Falco's functionality, offering essential features including kernel drivers and eBPF probes. | +| [falcosecurity/plugin-sdk-go](https://github.com/falcosecurity/plugin-sdk-go) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Plugins SDK for Go that facilitates writing plugins for Falco or applications built on top of Falco's libs. | +| [falcosecurity/plugins](https://github.com/falcosecurity/plugins) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Plugins serve as extensions for Falco and applications built on top of Falco's libraries. This repository contains the official registry for all Falco plugins and host plugins maintained by The Falco Project. | +| [falcosecurity/rules](https://github.com/falcosecurity/rules) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Official rulesets for Falco provide pre-defined detection rules for various security threats and abnormal behaviors. | ### Ecosystem @@ -83,20 +83,20 @@ For more information, click on the badge below. [![Falco Ecosystem Repository](./repos/badges/falco-ecosystem-blue.svg)](./REPOSITORIES.md#ecosystem-scope) -| NAME | STATUS | DESCRIPTION | -|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| -| [falcosecurity/client-go](https://github.com/falcosecurity/client-go) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Go client and SDK for Falco | -| [falcosecurity/contrib](https://github.com/falcosecurity/contrib) | [![Sandbox](https://img.shields.io/badge/status-sandbox-red?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#sandbox) | Community sandbox to test-drive ideas/projects/code | -| [falcosecurity/driverkit](https://github.com/falcosecurity/driverkit) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Kit for building Falco drivers: kernel modules or eBPF probes | -| [falcosecurity/event-generator](https://github.com/falcosecurity/event-generator) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Generate a variety of suspect actions that are detected by Falco rulesets | -| [falcosecurity/falco-exporter](https://github.com/falcosecurity/falco-exporter) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Prometheus Metrics Exporter for Falco output events | -| [falcosecurity/falco-aws-terraform](https://github.com/falcosecurity/falco-aws-terraform) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Terraform Module for Falco AWS Resources | -| [falcosecurity/falcosidekick](https://github.com/falcosecurity/falcosidekick) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Connect Falco to your ecosystem | -| [falcosecurity/falcosidekick-ui](https://github.com/falcosecurity/falcosidekick-ui) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A simple WebUI with latest events from Falco | -| [falcosecurity/flycheck-falco-rules](https://github.com/falcosecurity/flycheck-falco-rules) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A custom checker for Falco rules files that can be loaded using the Flycheck syntax checker for GNU Emacs. | -| [falcosecurity/kilt](https://github.com/falcosecurity/kilt) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Kilt is a project that defines how to inject foreign apps into containers | -| [falcosecurity/libs-sdk-go](https://github.com/falcosecurity/libs-sdk-go) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Go SDK for Falco libs | -| [falcosecurity/plugin-sdk-cpp](https://github.com/falcosecurity/plugin-sdk-cpp) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Falco plugins SDK for C++ | +| NAME | STATUS | DESCRIPTION | +|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| +| [falcosecurity/client-go](https://github.com/falcosecurity/client-go) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Go client and SDK for Falco. | +| [falcosecurity/contrib](https://github.com/falcosecurity/contrib) | [![Sandbox](https://img.shields.io/badge/status-sandbox-red?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#sandbox) | Sandbox repository to test-drive ideas/projects/code. | +| [falcosecurity/driverkit](https://github.com/falcosecurity/driverkit) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Kit for building Falco drivers (kernel modules or eBPF probes). | +| [falcosecurity/event-generator](https://github.com/falcosecurity/event-generator) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Testing tool to generate a variety of suspect actions that are detected by Falco rules. | +| [falcosecurity/falco-exporter](https://github.com/falcosecurity/falco-exporter) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Prometheus Metrics Exporter for Falco output events. | +| [falcosecurity/falco-aws-terraform](https://github.com/falcosecurity/falco-aws-terraform) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Terraform Module for Falco AWS Resources. | +| [falcosecurity/falcosidekick](https://github.com/falcosecurity/falcosidekick) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falcosidekick seamlessly integrates Falco with your ecosystem, enabling event forwarding to multiple outputs in a fan-out manner. | +| [falcosecurity/falcosidekick-ui](https://github.com/falcosecurity/falcosidekick-ui) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A simple WebUI with latest events from Falco. | +| [falcosecurity/flycheck-falco-rules](https://github.com/falcosecurity/flycheck-falco-rules) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A custom checker for Falco rules files that can be loaded using the Flycheck syntax checker for GNU Emacs. | +| [falcosecurity/kilt](https://github.com/falcosecurity/kilt) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Kilt is a project that defines how to inject foreign apps into containers. | +| [falcosecurity/libs-sdk-go](https://github.com/falcosecurity/libs-sdk-go) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Go SDK for Falco libs. | +| [falcosecurity/plugin-sdk-cpp](https://github.com/falcosecurity/plugin-sdk-cpp) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Falco plugins SDK for C++. | ### Infra @@ -107,13 +107,13 @@ For more information, click on the badge below. [![Falco Infra Repository](./repos/badges/falco-infra-blue.svg)](./REPOSITORIES.md#infra-scope) -| NAME | STATUS | DESCRIPTION | -|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------| -| [falcosecurity/kernel-crawler](https://github.com/falcosecurity/kernel-crawler) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A tool to crawl Linux kernel versions | -| [falcosecurity/pigeon](https://github.com/falcosecurity/pigeon) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Secrets and config manager for Falco's infrastructure | -| [falcosecurity/test-infra](https://github.com/falcosecurity/test-infra) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Falco workflow & testing infrastructure | -| [falcosecurity/testing](https://github.com/falcosecurity/testing) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | All-purpose test suite for Falco and its ecosystem | -| [falcosecurity/syscalls-bumper](https://github.com/falcosecurity/syscalls-bumper) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A tool to automatically update supported syscalls in libs | +| NAME | STATUS | DESCRIPTION | +|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------| +| [falcosecurity/kernel-crawler](https://github.com/falcosecurity/kernel-crawler) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A tool to crawl Linux kernel versions. | +| [falcosecurity/pigeon](https://github.com/falcosecurity/pigeon) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | Secrets and config manager for Falco's infrastructure. | +| [falcosecurity/test-infra](https://github.com/falcosecurity/test-infra) | [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) | Test infrastructure and automation workflows for The Falco Project. | +| [falcosecurity/testing](https://github.com/falcosecurity/testing) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | All-purpose test suite for Falco and its ecosystem. | +| [falcosecurity/syscalls-bumper](https://github.com/falcosecurity/syscalls-bumper) | [![Incubating](https://img.shields.io/badge/status-incubating-orange?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#incubating) | A tool to automatically update supported syscalls in libs. | ### Special @@ -121,11 +121,11 @@ For more information, click on the badge below. Finally, some repositories have a special meaning and do not fit the above scopes. They serve a particular purpose or function in the [falcosecurity](https://github.com/falcosecurity) organization and are curated by [core maintainers](./GOVERNANCE.md#core-maintainers). -| NAME | STATUS | DESCRIPTION | -|-----------------------------------------------------------------------|--------|----------------------------------------| -| [falcosecurity/.github](https://github.com/falcosecurity/.github) | *n/a* | Default community health files | -| [falcosecurity/community](https://github.com/falcosecurity/community) | *n/a* | The Falco Project Community | -| [falcosecurity/evolution](https://github.com/falcosecurity/evolution) | *n/a* | Evolution process of The Falco Project | +| NAME | STATUS | DESCRIPTION | +|-----------------------------------------------------------------------|--------|-------------------------------------------------------------------------------------------------------------------| +| [falcosecurity/.github](https://github.com/falcosecurity/.github) | *n/a* | Default files for all repos in the Falcosecurity GitHub org. | +| [falcosecurity/community](https://github.com/falcosecurity/community) | *n/a* | Falco community content and resources. | +| [falcosecurity/evolution](https://github.com/falcosecurity/evolution) | *n/a* | A space for the community to work together, discuss ideas, define processes, and document the evolution of Falco. | ### Archived diff --git a/repositories.yaml b/repositories.yaml index 96992828..acda3422 100644 --- a/repositories.yaml +++ b/repositories.yaml @@ -1,64 +1,64 @@ - name: .github scope: Special - description: Default community health files + description: Default files for all repos in the Falcosecurity GitHub org. - name: charts scope: Core status: Stable - description: Helm charts for running Falco with Kubernetes + description: Helm charts repository for Falco and its ecosystem. - name: client-go scope: Ecosystem status: Incubating - description: Go client and SDK for Falco + description: Go client and SDK for Falco. - name: community scope: Special - description: The Falco Project Community + description: Falco community content and resources. - name: contrib scope: Ecosystem status: Sandbox - description: Community sandbox to test-drive ideas/projects/code + description: Sandbox repository to test-drive ideas/projects/code. - name: deploy-kubernetes scope: Core status: Stable - description: Kubernetes deployment resources for Falco + description: Kubernetes deployment resources for Falco and its ecosystem. - name: driverkit scope: Ecosystem status: Incubating - description: "Kit for building Falco drivers: kernel modules or eBPF probes" + description: "Kit for building Falco drivers (kernel modules or eBPF probes)." - name: event-generator scope: Ecosystem status: Incubating - description: Generate a variety of suspect actions that are detected by Falco rulesets + description: Testing tool to generate a variety of suspect actions that are detected by Falco rules. - name: evolution scope: Special - description: Evolution process of The Falco Project + description: A space for the community to work together, discuss ideas, define processes, and document the evolution of Falco. - name: falco scope: Core status: Stable - description: Cloud Native Runtime Security + description: Falco is a cloud native runtime security tool for Linux operating systems. It is designed to detect and alert on abnormal behavior and potential security threats in real-time. - name: falco-exporter scope: Ecosystem status: Stable - description: Prometheus Metrics Exporter for Falco output events + description: Prometheus Metrics Exporter for Falco output events. - name: falco-aws-terraform scope: Ecosystem status: Incubating - description: Terraform Module for Falco AWS Resources + description: Terraform Module for Falco AWS Resources. - name: falco-website scope: Core status: Stable - description: Hugo content to generate website content. Hosted by the CNCF + description: Falco website and documentation repository. - name: falcoctl scope: Core status: Stable - description: Administrative tooling for Falco + description: The official CLI tool for working with Falco and its ecosystem components. - name: falcosidekick scope: Ecosystem status: Stable - description: Connect Falco to your ecosystem + description: Falcosidekick seamlessly integrates Falco with your ecosystem, enabling event forwarding to multiple outputs in a fan-out manner. - name: falcosidekick-ui scope: Ecosystem status: Incubating - description: A simple WebUI with latest events from Falco + description: A simple WebUI with latest events from Falco. - name: flycheck-falco-rules scope: Ecosystem status: Incubating @@ -66,47 +66,48 @@ - name: kernel-crawler scope: Infra status: Incubating - description: A tool to crawl Linux kernel versions + description: A tool to crawl Linux kernel versions. - name: kilt scope: Ecosystem status: Incubating - description: Kilt is a project that defines how to inject foreign apps into containers + description: Kilt is a project that defines how to inject foreign apps into containers. - name: libs scope: Core status: Stable - description: libsinsp, libscap, the kernel module driver, and the eBPF driver sources + description: Foundational libraries that constitute the core of Falco's functionality, offering essential features including kernel drivers and eBPF probes. - name: libs-sdk-go scope: Ecosystem status: Incubating - description: Go SDK for Falco libs + description: Go SDK for Falco libs. - name: pigeon scope: Infra status: Incubating - description: Secrets and config manager for Falco's infrastructure + description: Secrets and config manager for Falco's infrastructure. - name: plugin-sdk-cpp scope: Ecosystem status: Incubating - description: Falco plugins SDK for C++ + description: Falco plugins SDK for C++. - name: plugin-sdk-go scope: Core status: Stable + description: Plugins SDK for Go that facilitates writing plugins for Falco or applications built on top of Falco's libs. - name: plugins scope: Core status: Stable - description: Falco plugins registry + description: Plugins serve as extensions for Falco and applications built on top of Falco's libraries. This repository contains the official registry for all Falco plugins and host plugins maintained by The Falco Project. - name: rules scope: Core status: Stable - description: Falco rules repository + description: Official rulesets for Falco provide pre-defined detection rules for various security threats and abnormal behaviors. - name: test-infra scope: Infra status: Stable - description: Falco workflow & testing infrastructure + description: Test infrastructure and automation workflows for The Falco Project. - name: testing scope: Infra status: Incubating - description: All-purpose test suite for Falco and its ecosystem + description: All-purpose test suite for Falco and its ecosystem. - name: syscalls-bumper scope: Infra status: Incubating - description: A tool to automatically update supported syscalls in libs + description: A tool to automatically update supported syscalls in libs.