Skip to content

feat: Add CONTRIBUTING.md, et al - #213

Open
ngie-eign wants to merge 1 commit into
freebsd:masterfrom
ngie-eign:contributing-docs
Open

ngie-eign wants to merge 1 commit into
freebsd:masterfrom
ngie-eign:contributing-docs

Conversation

@ngie-eign

@ngie-eign ngie-eign commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

This change adds a number of documents to help provide a basis for what the project's current standards are, how they're enforced, and what expectations are for each phase of the contribution process.

These series of documents try to roughly match the intent of CONTRIBUTING.md, while taking a more pragmatic approach to support the project as it stands today.

This commit introduces documents to cover the following topics:

  • AI/LLM use
  • Authoring (DCO use, email, name)
  • Style guide (modified style(9) guide)

The document hierarchy was inspired by the hierarchy used by the Linux man-pages project. Jamming all of the information into a single Markdown file would make the content difficult to follow as there are a fair number of topics to cover.

@ngie-eign

Copy link
Copy Markdown
Contributor Author

@bsdimp , @emaste , @markjdb: I would appreciate everyone's inputs on the documents proposed in this project. I know all of your time's precious, but I want to do my best to adhere to the FreeBSD project's standards and represent the project as best possible.

I am going to take these documents, once finalized, and introduce equivalents in the other test-infrastructure projects (lutok, kyua).

@ngie-eign
ngie-eign force-pushed the contributing-docs branch 2 times, most recently from e7383e3 to 86d0f21 Compare November 5, 2026 05:00
This change adds a number of documents to help provide a basis for what
the project's current standards are, how they're enforced, and what
expectations are for each phase of the contribution process.

These series of documents try to roughly match the intent of
[CONTRIBUTING.md][], while taking a more pragmatic approach to support
the project as it stands today.

This commit introduces documents to cover the following topics:
* AI/LLM use
* Authoring (DCO use, email, name)
* Style guide (modified style(9) guide)

The document hierarchy was inspired by the hierarchy used by the Linux
man-pages project. Jamming all of the information into a single Markdown
file would make the content difficult to follow as there are a fair
number of topics to cover.

Signed-off-by: Enji Cooper <ngie@FreeBSD.org>

[CONTRIBUTING.md]: https://github.com/freebsd/freebsd-src/blob/b6dd9d3593f3286d8225b3bd2ae9248dcf92864c/CONTRIBUTING.md
@ngie-eign

Copy link
Copy Markdown
Contributor Author

Ah. I forgot to mention licensing!

@holmuk

holmuk commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

@ngie-eign I remember that in Kyua you asked me to leave Assisted-by in the format like this one:

Assisted-by: ChatGPT (GPT-6 Astra)

But here in AI_USE.md I see the different format

Assisted-by: Claude:claude-opus-4-8

So which one is preferrable? I see that the main FreeBSD source tree uses the first one recently, here is an example commit:

commit d8acc2a9a431b4d57ef79b2ca3113ecf33b95d8d
Author: Warner Losh <imp@FreeBSD.org>
Date:   Thu Sep 24 09:02:23 2026 -0600

    boot-test.sh: Add gptboot.efi tests
    
    Make sure that we can chainboot with gptboot.efi. Many projects use this
    as their migration tool from gptboot to ping-pong partitions to boot
    from. This tests that functionality which I recently broke.
    
    Assisted-by: Claude Code (Fable 5, Opus 5)
    Sponsored by:           Netflix

@holmuk

holmuk commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

I also think that Assisted-by doesn't explain how exactly LLM was used. For instance, if you edit a man page with LLM or ask it to review the code, you probably understand what you are doing and LLM is just a powerful assistant here. But if you asked it "here is an issue, please fix it", then it's not a human contribution at all. It probably makes sense to have a short explanation on LLM usage at least in PRs.

@bsdimp

bsdimp commented Nov 5, 2026

Copy link
Copy Markdown
Member

assisted-by was an experiment in Linux kernel that I brought into my work train. It just means that it was used somehow, but the details were glossed over. And they kinda needed to be for my workflow: I used llm somehow for something, but then I hack it,delete it, rewrite it, use it only for the automation or analysis, but not to generate code.

The llm wg will provide better guidance...

@ngie-eign

ngie-eign commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor Author

@ngie-eign I remember that in Kyua you asked me to leave Assisted-by in the format like this one:

Assisted-by: ChatGPT (GPT-6 Astra)

But here in AI_USE.md I see the different format

Assisted-by: Claude:claude-opus-4-8

So which one is preferrable? I see that the main FreeBSD source tree uses the first one recently, here is an example commit:

commit d8acc2a9a431b4d57ef79b2ca3113ecf33b95d8d
Author: Warner Losh <imp@FreeBSD.org>
Date:   Thu Sep 24 09:02:23 2026 -0600

    boot-test.sh: Add gptboot.efi tests
    
    Make sure that we can chainboot with gptboot.efi. Many projects use this
    as their migration tool from gptboot to ping-pong partitions to boot
    from. This tests that functionality which I recently broke.
    
    Assisted-by: Claude Code (Fable 5, Opus 5)
    Sponsored by:           Netflix

The format doesn't need to match either form exactly (both should be accepted) -- I can clarify that point in AI_USE.md.

My personal "vibe" is that if the contribution made by AI/LLMs is significant enough to warrant it, e.g., AI/LLMs provide complete boilerplate, provide critical logic/algorithms, etc, it's good to mention. If you're just using something like DuckDuckGo.ai or Google [search] for research, it's kind of the way folks have to do things these days with the quality and type of information presented on the Internet. I have begrudgingly used both DuckDuckGo.ai (Luna, Qwen) and Google [search] (Gemini) when doing research if simpler searches fail to turn up anything of value. I also used deepseek-r1 and mistral as initial input for the .clang-format file I added in (#55), but both of those models gave bunk suggestions though ("hallucinated"), so I didn't actually call them out - I would have had to use Hindered-by instead of Assisted-by in the commit attribution :D.

I got way more value out of the existing file from FreeBSD, the clang-format documentation, and still had to do a lot of trial and error attempting to match the existing code style as much as possible.

@ngie-eign ngie-eign changed the title feat: add CONTRIBUTING.md, et al feat: Add CONTRIBUTING.md, et al Nov 6, 2026
@ngie-eign

ngie-eign commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Hm. I'll have to check the licensing of the documentation for kernel.org, but this description of AI/LLMs and DCO is fairly succinct: https://docs.kernel.org/process/coding-assistants.html#signed-off-by-and-developer-certificate-of-origin (I'd rather adopt an established community standard instead of reinventing the wheel).

//edit: it's GPLv2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants