We welcome and appreciate contributions from the community. There are many ways to become involved with IWXXM, including filing issues, joining in design conversations, writing and improving documentation, and contributing to the IWXXM schema and repository.
Issues should first be raised on the cbs-tt-avxml@wmo.int email list. Prior discussions and issues can be found and searched through https://groups.google.com/a/wmo.int/forum/#!categories/cbs-tt-avxml. Once the issue has been discussed with IWXXM developers and confirmed, a formal issue can be created either by the reporter or by IWXXM developers on behalf of him/her on the GitHub issues page.
Before making or committing any changes, perform the one-time initial Git configuration.
IWXXM schema, documentation, and code changes should be contributed using the GitHub Flow process. In short:
- Changes should be developed on a separate branch off of the main IWXXM repository (for core IWXXM developers) or a fork of the IWXXM repository (for other contributors). This branch should be created from a recent master branch and should have a descriptive name, such as 'fix-metar-sch-1' or 'add-uuids-to-examples'. On the command line this would look like:
git pull
(get the latest on the 'master' branch)
git checkout -b my-descriptive-new-branch
... changes are made to files ...
git commit -m "Fixes #56, which now allows..."
- Changes are committed to this feature branch and can be pushed regularly
- Once changes have been committed and are ready for review, a Pull Request is created from this feature branch
- Once IWXXM core developers have reviewed the changes, the Pull Request will be accepted and the changes will be merged into the master branch
- After the Pull Request has been accepted the feature branch can be deleted through the GitHub web interface
The IWXXM repository is continuously checked for correctness, including all Pull Requests. If a Pull Request does not pass the Continuous Integration (CI) checks it will not be accepted.
To ensure consistent use of Git across multiple contributors and operating systems, the following steps should be taken.
git config --global user.name "Mona Lisa"
git config --global user.email "monalisa@example.com"
The value “input” essentially tells git to retain whatever line ending form is present in the committed files:
git config --global core.autocrlf input
Additionally, on Windows machines, prevent commits that may potentially modify file line endings:
git config --global core.safecrlf true