All patches and pull requests are welcome but in general you should start with
an issue tracker to describe what you intend to do before you do it.
Getting Started
Pull requests and new feature proposals must start with an [issue
tracker][issues]. This serves as the focal point for the design discussion.
Describe what you plan to do. If there are API changes add some code
example to demonstrate them.
Fork the repository.
Run all the tests to make sure the current code works on your system using
make test. See the Running the Test Suite section of the docs
for instructions.
Create a feature branch for your new feature.
Code Style
The code style is mainly K&R style with 4 space indents.
The author uses GNU indent (gindent) 2.2.10 with the following options:
The indent configuration file is available in the repo. The code
can be indented automatically if the same version of gindent is used with
the following make command:
make indent
Note, make sure you have backed up your files or added them to the index
before running this command.
In general follow the existing style in the code.
Writing and Running Tests
Any significant features should be accompanied by a test. See the test
directory and the Running the Test Suite section of the docs for
details of the test setup.
The tests can be run as follows:
make test
Same as:
make test_unit
make test_functional
The functional tests require the Python module pytest as a test runner.
If you have valgrind installed you can use the test suite to check for memory leaks:
make test_valgrind
When you push your changes they will also be tested automatically using
GitHub Actions.
Documentation
The libxlsxwriter documentation is written in Doxygen format in the header
files and in additional .dox files in the docs/src directory of the
repo. The documentation can be built as follows:
make docs
open docs/html/index.html
Example programs
If applicable add an example program to the examples directory. Example
files can be built using:
make docs
Copyright and License
Copyright remains with the original author. Do not include additional
copyright claims or Licensing requirements. GitHub and the git repository
will record your contribution and it will be acknowledged it in the Changes
file.
Submitting the Pull Request
If your change involves several incremental git commits then rebase or
squash them onto another branch so that the Pull Request is a single commit
or a small number of logical commits.
Push your changes to GitHub and submit the Pull Request with a hash link to
the to the Issue tracker that was opened above.
libxlsxwriter: Submitting Pull Requests
Pull Requests and Contributing to Libxlsxwriter
All patches and pull requests are welcome but in general you should start with an issue tracker to describe what you intend to do before you do it.
Getting Started
make test
. See the Running the Test Suite section of the docs for instructions.Code Style
The code style is mainly K&R style with 4 space indents.
The author uses GNU indent (
gindent
) 2.2.10 with the following options:The indent configuration file is available in the repo. The code can be indented automatically if the same version of
gindent
is used with the following make command:Note, make sure you have backed up your files or added them to the index before running this command.
In general follow the existing style in the code.
Writing and Running Tests
Any significant features should be accompanied by a test. See the
test
directory and the Running the Test Suite section of the docs for details of the test setup.The tests can be run as follows:
Same as:
The functional tests require the Python module pytest as a test runner.
If you have
valgrind
installed you can use the test suite to check for memory leaks:When you push your changes they will also be tested automatically using GitHub Actions.
Documentation
The
libxlsxwriter
documentation is written in Doxygen format in the header files and in additional.dox
files in thedocs/src
directory of the repo. The documentation can be built as follows:Example programs
If applicable add an example program to the
examples
directory. Example files can be built using:Copyright and License
Copyright remains with the original author. Do not include additional copyright claims or Licensing requirements. GitHub and the
git
repository will record your contribution and it will be acknowledged it in the Changes file.Submitting the Pull Request
If your change involves several incremental
git
commits thenrebase
orsquash
them onto another branch so that the Pull Request is a single commit or a small number of logical commits.Push your changes to GitHub and submit the Pull Request with a hash link to the to the Issue tracker that was opened above.