Skip to content

Commit b956b69

Browse files
committed
.github: add contributing guidelines and security policy
Add comprehensive project governance documentation adapted from the Infix project but customized for curiOS container development: CONTRIBUTING.md: - Guidelines for bug reports, feature requests, and pull requests - Coding style for shell scripts and Buildroot configurations - Commit message format using Conventional Commits - Testing procedures for both amd64 and arm64 architectures - Pull request review process - License agreement (GPL v2) SECURITY.md: - Vulnerability reporting via GitHub Security Advisories - Supported versions and security update policy - Container security best practices for users - Dependency security tracking (Buildroot, packages) - Contact information for security concerns These documents establish clear processes for community contributions and responsible security disclosure, following the same structure as the sister Infix project while being tailored to container-specific workflows. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
1 parent 2b7f15c commit b956b69

File tree

2 files changed

+219
-0
lines changed

2 files changed

+219
-0
lines changed

.github/CONTRIBUTING.md

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
Contributing Guidelines
2+
=======================
3+
4+
Thank you for taking the time to contribute to curiOS!
5+
6+
We welcome any help in the form of bug reports, fixes, or patches to add
7+
new features. We prefer GitHub pull requests, but are open to other forms
8+
of collaboration as well. Let's talk!
9+
10+
11+
Getting Started
12+
---------------
13+
14+
If you are unsure how to start implementing an idea or fix:
15+
16+
- Open an issue at <https://github.com/kernelkit/curiOS/issues>
17+
- Use the bug report template for bugs
18+
- Use the feature request template for new containers or features
19+
- Contact us via [KernelKit](https://kernelkit.org)
20+
21+
> **Note:** Talking about code and problems first is often the best way
22+
> to get started before submitting a pull request. We have found it
23+
> always saves time, yours and ours.
24+
25+
26+
General Guidelines
27+
------------------
28+
29+
When submitting bug reports or patches, please state which version the
30+
change is made against, what it does, and, more importantly **why** --
31+
from your perspective, why is it a bug, why does the code need changing
32+
in this way. Start with why.
33+
34+
- **Bug reports** need metadata like curiOS version or commit hash
35+
- **Bug fixes** also need version, and (preferably) a corresponding
36+
issue number for the ChangeLog
37+
- **New features** need discussion first! Please open an issue or
38+
contact us before starting work on major changes
39+
- **New containers** should follow the existing pattern:
40+
- Create defconfigs for both amd64 and arm64
41+
- Add board-specific rootfs overlays if needed
42+
- Update the build workflow matrix
43+
- Document the container in README.md with examples
44+
45+
Please take care to ensure you follow the project coding style and commit
46+
message format. If you follow these recommendations you help the
47+
maintainers and make it easier for them to include your contributions.
48+
49+
50+
Coding Style
51+
------------
52+
53+
- **Shell scripts**: Follow the existing style in `board/*/rootfs/`
54+
- Use POSIX sh when possible (not bash-specific features)
55+
- Use tabs for indentation
56+
- Keep scripts simple and maintainable
57+
58+
- **Buildroot configs**: Follow Buildroot conventions
59+
- Use `make savedefconfig` to generate clean defconfigs
60+
- Keep configs minimal and focused
61+
62+
- **Documentation**: Use clear, concise markdown
63+
- Include practical examples
64+
- Mention architecture support (amd64/arm64)
65+
- Document environment variables and volumes
66+
67+
68+
Commit Messages
69+
---------------
70+
71+
Please use the [Conventional Commits](https://www.conventionalcommits.org/)
72+
format for your commit messages. This helps us generate meaningful changelogs.
73+
74+
Examples:
75+
76+
```
77+
board: add ENABLE_INTERFACES support to nftables container
78+
79+
Allow nftables container to automatically bring up and down network
80+
interfaces via the ENABLE_INTERFACES environment variable.
81+
82+
Fixes #20
83+
```
84+
85+
```
86+
workflows: fix tarball structure for podman/docker load
87+
88+
Remove directory wrapper from OCI tarballs to support podman load
89+
and docker load commands.
90+
91+
Fixes #21
92+
```
93+
94+
- Use a short summary line (50-72 chars)
95+
- Add a blank line, then a more detailed description
96+
- Reference issue numbers with `Fixes #N` or `Closes #N`
97+
- Sign your commits with `Signed-off-by:` (use `git commit -s`)
98+
99+
100+
Testing Changes
101+
---------------
102+
103+
Before submitting a pull request:
104+
105+
1. **Build test**: Ensure your changes build for both amd64 and arm64
106+
```bash
107+
make <container>_amd64_defconfig
108+
make
109+
make <container>_arm64_defconfig
110+
make
111+
```
112+
113+
2. **Runtime test**: Test the resulting container image
114+
```bash
115+
cd output/images
116+
podman load < rootfs-oci
117+
podman run --rm <image>:<tag>
118+
```
119+
120+
3. **Documentation**: Update README.md if you've added features or
121+
changed behavior
122+
123+
124+
Pull Request Process
125+
---------------------
126+
127+
1. Fork the repository and create a branch for your changes
128+
2. Make your changes following the guidelines above
129+
3. Test your changes thoroughly
130+
4. Push to your fork and submit a pull request
131+
5. Address any review feedback
132+
133+
We'll review your PR as soon as possible. Please be patient and responsive
134+
to feedback.
135+
136+
137+
License
138+
-------
139+
140+
By contributing to curiOS, you agree that your contributions will be
141+
licensed under the GNU General Public License v2.0, the same license
142+
as the project itself.
143+
144+
145+
Questions?
146+
----------
147+
148+
If you have questions about contributing, please open an issue or
149+
contact us via [KernelKit](https://kernelkit.org).
150+
151+
Thank you for helping make curiOS better!

.github/SECURITY.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Security Policy
2+
3+
## Reporting a Vulnerability
4+
5+
If you discover a security vulnerability in curiOS, please use GitHub's
6+
built-in [Report a Vulnerability](https://github.com/kernelkit/curiOS/security/advisories/new)
7+
feature for a private and secure disclosure.
8+
9+
When reporting, include:
10+
11+
- A clear description of the vulnerability
12+
- Which container image(s) are affected
13+
- Steps to reproduce the issue
14+
- Potential impact of the vulnerability
15+
- Suggested fix (if you have one)
16+
17+
## Supported Versions
18+
19+
We provide security updates only for the main branch and the most recent
20+
stable release.
21+
22+
Older releases may receive critical security fixes on a best-effort basis.
23+
24+
## Security Updates
25+
26+
Security fixes are released as:
27+
28+
- New `:latest` tags pointing to patched versions
29+
- Version-specific tags (e.g., `:1.2.3`) for stable releases
30+
- Updated `:edge` tags from the main branch
31+
32+
We recommend:
33+
34+
- Use specific version tags (`:1.2.3`) for production deployments
35+
- Monitor GitHub releases and security advisories
36+
- Test `:latest` in staging before deploying to production
37+
38+
## Container Security Best Practices
39+
40+
When using curiOS containers:
41+
42+
1. **Use specific version tags** for reproducibility and control
43+
2. **Run with minimal privileges** - avoid `--privileged` unless necessary
44+
3. **Use read-only root filesystems** where possible (`--read-only`)
45+
4. **Mount configs as read-only** (`:ro` suffix on volume mounts)
46+
5. **Keep host systems updated** - container security depends on the host
47+
6. **Monitor for updates** - subscribe to GitHub releases
48+
49+
## Dependency Security
50+
51+
curiOS containers are built on [Buildroot](https://buildroot.org/), which
52+
includes various upstream components. We track security advisories for:
53+
54+
- Buildroot itself
55+
- Linux kernel (for system container)
56+
- Individual packages (nftables, ntpd, BusyBox, etc.)
57+
58+
## Acknowledgments
59+
60+
We appreciate the efforts of the security community to help improve the
61+
security of curiOS. Thank you for your responsible disclosure.
62+
63+
## Contact
64+
65+
For security concerns that cannot be reported through GitHub:
66+
67+
- Email: security@kernelkit.org
68+
- Website: https://kernelkit.org

0 commit comments

Comments
 (0)