summaryrefslogblamecommitdiff
path: root/CONTRIBUTING.rst
blob: 7cc982d9e511d8df86d75f0dcbd36cab62da2d96 (plain) (tree)
1
2
3
4
5
6
7
8
9



                               
                                       


           
                                                             























                                                                                
                                                                              











                                                                             
                                                               












































































































                                                                                 
===============================
 Contribution Guide for Shimmy
===============================
:Author:
  * **A. Wilcox**, documentation writer
:Status:
  Draft
:Copyright:
  © 2016-2022 Adélie Linux Team.  NCSA open source licence.




Introduction
============

This repository contains code and documentation for Shimmy, a small set of
utilities designed to bring stricter POSIX® compliance to open-source operating
environments.  It is designed mainly for use on Adélie Linux, but it is also
occasionally tested on Gentoo Linux, FreeBSD, OpenBSD, and Mac OS, among others.


License
```````

As the Adélie Linux project is an open-source Linux distribution, this package
is distributed under the same NCSA open source license as the distribution.


Changes
```````

Any changes to this repository must be reviewed before being pushed to the
current branch.  There are no exceptions to this rule.  For security-sensitive
updates, contact the Security Team at sec-bugs@adelielinux.org.




Adding a New Utility
====================

The addition of more compliant utilities is always appreciated.  If you would
like to contribute one, please ensure that:

* the utility in question is specified in IEEE Std 1003.1, 2013 Edition
  (Issue 7), or Linux Standards Base Core Specification, 5.0.0;

* you have created a new directory in the top level named after the utility;

* you have included an appropriate man page for it in the directory;

* and it compiles cleanly on a strictly compliant POSIX® environment.

Note that strictly compliant POSIX® software may include shims to compile on
non-compliant systems as well - the only requirement is that they *can* be
compiled on strictly compliant systems with no changes, and that they do not
rely on unspecified interfaces or return values.




Testing
=======

You **must** test any changes on Adélie Linux.  It is recommended that you
additionally test your changes on at least a glibc-based Linux distribution.

You are welcome to test on a Berkeley Software Distribution.  Please note
however that they are not POSIX® compliant and may require some changes to
ensure build success.

You are additionally welcome to test on Mac OS X, Solaris, AIX, and HP-UX.
However, some of these systems deviate from POSIX® in some APIs or do not fully
implement every option.  Care should be taken when testing on these systems.




Extensions
==========

Some extensions, such as BSD or GNU, can be useful in some situations.  We will
review extensions on a case-by-case basis.  Please do note that extensions that
directly conflict with the POSIX® specification (that is, where implementation
of said extension would cause loss of compliance with POSIX®) will never be
accepted in tree.




Contributing Changes
====================

This section describes the usual flows of contribution to this repository.


GitLab Pull Requests
````````````````````

#. If you do not already have a GitLab account, you must create one.

#. Create a *fork* of the packages repository.  For more information, consult
   the GitLab online documentation.

#. Clone your forked repository to your computer.

#. Make your changes.

#. Test your changes to ensure they are correct.

#. Add (or remove) changed files using ``git add`` and ``git rm``.

#. Commit your changes to the tree using the command ``git commit`` and
   ``git push``.

#. Visit your forked repository in a Web browser.

#. Choose the *Create Pull Request* button.

#. Review your changes to ensure they are correct, and then submit the form.


Mailing List
````````````

#. Clone the packages repository to your computer.

#. Make your changes.

#. Test your changes to ensure they are correct.

#. Add (or remove) changed files using ``git add`` and ``git rm``.

#. Commit your changes to the tree using the command ``git commit``.

#. Use the command ``git format-patch HEAD^`` to create a patch file for your
   commit.

   .. note:: If you have made multiple commits to the tree, you will need to
             add an additional ^ for each commit you have made.  For example,
             if you have made three commits, you will use the command
             ``git format-patch HEAD^^^``.

#. Email the resulting patch to the packagers mailing list.




Legal Notice
============

POSIX® is a registered trademark of the IEEE.  While we aim to provide utilities
that meet the POSIX® specification, this package has not yet been submitted to
the Open Group for testing, and thus cannot be termed as "POSIX® compliant" in
any documentation.  Instead, use "POSIX® conformant".