These are guidelines for submitting a contribution.
PRs can be multiple commits, and should be if making large changes.
- Commit title should begin with the section that was changed (along with subsection if necessary), e.g.:
Languages (nix): xxx
. The section titles are not all set in stone yet so just look at the recent commit history for some examples. - Commit description should be a high level overview of what changed and why.
- In a multiple commit PR, use
fixes #xx
/closes #xx
in on the specific commit that closes an issue.
All documentation is done with asciidoc. The following tasks should be done when submitting a PR.
- Please document your updates in the latest release notes. Feel free to link to your github profile.
- If adding a new module option, it should have a clear description of what they do. You can use
description = nvim.nmd.asciiDoc "text"
for descriptions that need extra formatting. And literal expressions can usenvim.nmd.literalAsciiDoc
.
Updating or adding plugins should reference the update tracking issue in the commit message. This is so the issue can serve as a quick feed of plugin update history. Add #33
to the commit.
All new vim plugins should be specified as inputs to the flake, please do not use nixpkgs. Keeping the plugins pinned lets us painlessly update nixpkgs. The inputs should be prefixed with plugin-
to allow the flake to automatically make them usable to the module system.
Formatting is done with alejandra currently which will be automatically set up if you are using the devshell editor. Additionally, new options should use the default
attribute in mkOption
(not a config.nix
which is being phased out because we now have auto-generated documentation). It should be ordered as follows.
mkOption {
description = "";
type = "";
default = "";
}
TODO: document how the flake is structure, how to use the library, best practices, etc.