- Convenience macros for popular mirrors are defined. Using these macros will
make your package downloads more robust by mapping to a list of possible
source mirrors for archive availability.
- - @SF - Sourceforge (downloads.sourceforge.net) with 5 retries due to
+ - @SF - SourceForge (downloads.sourceforge.net) with 5 retries due to
re-directs
- - @GITHUB - Github (raw.githubusercontent.com) with 5 retries due to
+ - @GITHUB - GitHub (raw.githubusercontent.com) with 5 retries due to
re-directs
- @GNU - 8 regional servers
- @GNOME - 8 regional servers
### Commits in your pull-requests should
-- Have a useful description prefixed with the package name (E.g.: "foopkg: Add
- libzot dependency")
+- Have a useful commit subject prefixed with the package name (E.g.: "foopkg:
+ Add libzot dependency").
- Include Signed-off-by tag in the commit comments. See: [Sign your
work](https://openwrt.org/submitting-patches#sign_your_work)
+- Author and sign-off must match and be a real name or known identity and
+ a real email address. GitHub private email addresses will not be accepted.
+- Follow all [Submission Guidelines](https://openwrt.org/submitting-patches#submission_guidelines)
+ requirements, including maximum characters per line.
## Advice on pull requests
-Pull requests are the easiest way to contribute changes to git repos at Github.
+Pull requests are the easiest way to contribute changes to git repos at GitHub.
They are the preferred contribution method, as they offer a nice way for
commenting and amending the proposed changes.
-- You need a local "fork" of the Github repo.
+- You need a local "fork" of the GitHub repo.
- Use a "feature branch" for your changes. That separates the changes in the
pull request from your other changes and makes it easy to edit/amend commits
- Update your local git fork to the tip (of the master, usually)
- Create the feature branch with `git checkout -b feature_x`
- Edit changes and commit them locally
- - Push them to your Github fork by `git push -u origin feature_x`. That
- creates the "feature_x" branch at your Github fork and sets it as the
+ - Push them to your GitHub fork by `git push -u origin feature_x`. That
+ creates the "feature_x" branch at your GitHub fork and sets it as the
remote of this branch
- - When you now visit Github, you should see a proposal to create a pull
+ - When you now visit GitHub, you should see a proposal to create a pull
request
- If you later need to add new commits to the pull request, you can simply
- If you added several new commits or made other changes that require
cleaning up, you can use `git rebase -i HEAD~X` (X = number of commits to
edit) to possibly squash some commits
- - Push the changed commits to Github with `git push -f` to overwrite the
+ - Push the changed commits to GitHub with `git push -f` to overwrite the
original commits in the "feature_x" branch with the new ones. The pull
request gets automatically updated
| OpenSSL License | OpenSSL |
| X11 License | X11 |
| zlib License | Zlib |
+
+## Continuous Integration
+
+To simplify review and require less human resources, a CI tests all packages.
+Passing CI tests are not a hard requirement but a good indicator what the
+Buildbots will think about the proposed patch.
+
+The CI builds modified packages for multiple architectures using the latest
+snapshot SDK. For supported architectures (`aarch64_generic`,
+`arm_cortex-a15_neon-vfpv4`, `i386_pentium4` and `x86_64`) an additional
+runtime test is executed. A running OpenWrt is simulated which tries to install
+created packages and runs a script called `test.sh` located next to the package
+Makefile. The script is executed with the two arguments `PKG_NAME` and
+`PKG_VERSION`. The `PKG_NAME` can be used to distinguish package variants, e.g.
+`foobar` vs. `foobar-full`. The `PKG_VERSION` can be used for a trivial test
+checking if `foobar --version` prints the correct version. `PKG_VERSION` is the
+OpenWrt version and therefore includes the `PKG_RELEASE`, which isn't usually
+part of the running programs version.
+
+The following snippet shows a script that tests different binaries depending on
+what IPK package was installed. The `gpsd` Makefile produces both a `gpsd` and
+a `gpsd-clients` IPK packages.
+
+```shell
+ #!/bin/sh
+
+case "$1" in
+ "gpsd")
+ gpsd -V 2>&1 | grep "$2"
+ ;;
+ "gpsd-clients")
+ cgps -V 2>&1 | grep "$2"
+ ;;
+esac
+```