Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update for zig build tools #474 #475

Merged
merged 2 commits into from
Mar 12, 2025

Conversation

zigster64
Copy link
Contributor

@kassane - for review please

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

  1. Pull requests and new feature proposals must start with an [issue
    tracker][issues]. This serves as the focal point for the design discussion.
  2. Describe what you plan to do. If there are API changes add some code
    example to demonstrate them.
  3. Fork the repository.
  4. 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.
  5. 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:

    --braces-on-if-line
    --braces-on-struct-decl-line
    --case-indentation 4
    --continue-at-parentheses
    --declaration-comment-column 0
    --format-first-column-comments
    --honour-newlines
    --ignore-profile
    --indent-label 0
    --indent-level 4
    --no-space-after-function-call-names
    --no-tabs
    --swallow-optional-blank-lines

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.

@kassane
Copy link
Contributor

kassane commented Mar 10, 2025

This PR closes #474

@jmcnamara , this change the minimum zig version required is 0.1.4, breaking compatibility with the previous version (zon file).

@jmcnamara
Copy link
Owner

@kassane I know you approved the PR in the UI, but just to be clear, are you approving this change with the implied requirement that the minimum zig version required is 0.1.4?

@kassane
Copy link
Contributor

kassane commented Mar 11, 2025

are you approving this change with the implied requirement that the minimum zig version required is 0.1.4?

Yes! No longer supporting previous versions. Changing .name by replacing the string to implicit enum results in an error.

Although it is also possible to make the requirement explicit in the zon file by adding .minimum_zig_version = "0.14.0".

@jmcnamara
Copy link
Owner

Although it is also possible to make the requirement explicit in the zon file by adding .minimum_zig_version = "0.14.0".

@zigster64 What do you think?

@zigster64
Copy link
Contributor Author

Although it is also possible to make the requirement explicit in the zon file by adding .minimum_zig_version = "0.14.0".

@zigster64 What do you think?

Sounds like a good idea to set minimum version at this point

that will keep us stable for a while anyway - most libs that I use are now pinning 0.14 for the master branch, and not tracking nightly builds if zig for their main dev.

so most users should be sitting on 0.14 from here on. Should be less chaotic than the last year :)

@jmcnamara
Copy link
Owner

Okay. Could you add that to the PR.

@zigster64
Copy link
Contributor Author

added minimum_zig_version

sry, that took a while :(

@jmcnamara jmcnamara merged commit 545939d into jmcnamara:main Mar 12, 2025
52 checks passed
@jmcnamara
Copy link
Owner

Merged. Thanks.

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