From 765debf5236375595d52aaa188183df8b5edd4f4 Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Wed, 1 May 2024 20:23:04 +0200 Subject: [PATCH] Formalized our contribution policy which we're currently applying --- CONTRIBUTING.md | 106 ++++++++++++++++++++++++++++++++++++++++++++++++ README | 15 ++++++- 2 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..ecdc3d35 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,106 @@ +# Contributing to BIRD + +We welcome a broad range of contributions to BIRD with some limitations and +caveats. + +BIRD is highly optimized for performance in both memory and computation time. +We generally don't accept obviously inefficient code and even though the +quality of the existing codebase quite varies, there should be good reasons +why to commit something slow or greedy. + +There are several basic rules for contributing: + +- your branch must have understandable commit messages +- your branch must be either: + - rooted in the current thread-next, aiming for inclusion in BIRD 3 + - or rooted in the master branch; in this case, we may refuse your patch + if it's completely unmergeable with thread-next +- when incorporating proposed fixes, you may have to rebase your branch +- please add automatic tests (see below) +- upfront and continuous consultation with the development team gives you a + fast track for merging +- don't forget to update documentation + +## Security issues + +Please contact us on bird-support@network.cz for private disclosure of any +security issues. This includes any crash in or related to filters, induced by +CLI or by receiving a malformed message by a protocol. + +## How to contribute + +You can either send a patch (prepared by git format-patch) to our mailing-list +bird-users@network.cz, or you can send just a link to your repository and the +commit hash you're contributing. + +## What if your contribution isn't mergable + +If your code needs minor updates to align with our standards / taste, we'll +just do these modifications ourselves and either add these as a separate commit +or just update your commit noting this fact in the commit message. + +If your code has some major flaws, misses the point or introduces another +problem (e.g. performance issues), we'll refuse your patch. Then we'll either +try to tell you how we prefer to reach the goal, or we may reimplement your +ideas ourselves. We'll mention your original contribution in the commit message. + +## Specific kinds of contributions + +### Substantial updates + +If you feel like the BIRD internals need some major changes and you wish to +implement it, please contact the development team first. We're (as of May 2024) +developing two versions at once and we have some raw thoughts about BIRD's future +which we haven't published yet. + +Beware that BIRD is more convoluted inside than it looks like on the surface, +and in many places the learning curve is _very_ steep. + +### New protocol implementations + +We generally welcome broadening of BIRD capabilities. Upfront consultation is +very much appreciated to align all parties on the development principles, +internal APIs, coding style and more. + +### Refactoring and reformatting + +Please don't send us _any_ refactoring proposals without previous explicit approval. + +### Programmer's documentation, user documentation or tutorials + +We welcome updates to enhance the documentation, including the algorithmic +principles, internal libraries and API. We keep our right to reject low quality +contributions altogether. + +### Minor changes + +Feel free to propose minor fixes in any part of BIRD. + +## Testing + +There is another repository, https://gitlab.nic.cz/labs/bird-tools.git, where +we store our automatic tests in the netlab/ directory. This repository is quite +messy and you may need some help with it. We're planning to move the Netlab +suite into the main git repository; after we do that, we'll require every +contribution to add tests (if applicable, of course). + +## Crediting policy + +The credits are scattered over all the source code files; in the commentary +section, you may find typically the original authors of these files or some +major contributors who felt like adding their names there. Overall, if you feel +like your name should be there, include this change in your commits please. +If your name should be changed, please do that change there. + +We are planning to centralize the credits one day; we'll then update this file +accordingly. + +## Meta + +If some of these rules are breached, you may complain either at the mailing +list, or directly to CZ.NIC who is currently BIRD's maintainer. + +If we don't reply within 3 weeks, please ping us. We don't intend to ghost you, +we are just overloaded. + +This contributing policy also applies to itself. diff --git a/README b/README index 6ff691e8..32e60e5e 100644 --- a/README +++ b/README @@ -68,12 +68,23 @@ User support If you want to help us debugging, enhancing and porting BIRD or just lurk around to see what's going to develop, feel free to subscribe to the BIRD users mailing list bird-users@network.cz, just send `subscribe' to -bird-request@network.cz. Bug reports, suggestions, feature requests and -code are welcome! We don't use gitlab issues for reporting, sorry. +bird-request@network.cz. Subscribe: http://bird.network.cz/mailman/listinfo/bird-users/ Archive: http://bird.network.cz/pipermail/bird-users/ +Please don't send security issues to the mailing-list, contact us instead at +bird-support@network.cz which is a private e-mail address where you also can +get commercial support for your BIRD deployment. + +We don't use our gitlab issues for reporting but we're partially tracking +the core developent team's work there publicly. + +Contributing +============ + +Please see the CONTRIBUTING.md file to find how to contribute to BIRD. + Licence =======