|
rpm-build |
ca2b01 |
Hacking on libgweather
|
|
rpm-build |
ca2b01 |
======================
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
+ The development occurs in git:
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
http://git.gnome.org/browse/libgweather
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
For information on how to access GNOME git please read:
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
http://live.gnome.org/Git
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
+ Please send patches as bug reports in GNOME Bugzilla:
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
https://bugzilla.gnome.org/ (product libgweather)
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
Your patch should be in unified diff form (the -u option to GNU
|
|
rpm-build |
ca2b01 |
diff). See also:
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
http://live.gnome.org/GnomeLove/SubmittingPatches
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
+ Please try and send a patch against a recent version of this package.
|
|
rpm-build |
ca2b01 |
Patches against git master are most preferable.
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
+ Don't commit any but the most trivial patches without approval.
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
+ Exceptions to this are:
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
- Translators may commit basic i18n related patches to the build
|
|
rpm-build |
ca2b01 |
setup.
|
|
rpm-build |
ca2b01 |
- Build sheriff are welcome - in accordance with the relevant build
|
|
rpm-build |
ca2b01 |
sheriff constraints.
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
Adding new weather sources
|
|
rpm-build |
ca2b01 |
==========================
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
To add new weather sources, a number of requirements must be considered:
|
|
rpm-build |
ca2b01 |
- the API should be documented
|
|
rpm-build |
ca2b01 |
- access to the API can require the use of a freely available application
|
|
rpm-build |
ca2b01 |
token ID. See the requirements below.
|
|
rpm-build |
ca2b01 |
- there must not be hard usage limits, or they must be high enough not to
|
|
rpm-build |
ca2b01 |
cause disruption with weather support being builtin to the OS/desktop
|
|
rpm-build |
ca2b01 |
- the requests must be made over HTTPS, or an equivalent, encrypted network
|
|
rpm-build |
ca2b01 |
connection.
|
|
rpm-build |
ca2b01 |
- the result of requests must be machine parseable, and the parsing code
|
|
rpm-build |
ca2b01 |
must have unit tests to prevent regressions, and make it easy to root-cause
|
|
rpm-build |
ca2b01 |
crashes
|
|
rpm-build |
ca2b01 |
- the user’s privacy must be maintained as much as possible, see section below
|
|
rpm-build |
ca2b01 |
- the user’s bandwidth must be preserved where possible, with the server offering
|
|
rpm-build |
ca2b01 |
enough information to avoid downloads through libsoup, our HTTP library.
|
|
rpm-build |
ca2b01 |
- the data gathered can require a attribution (in which case the patch must
|
|
rpm-build |
ca2b01 |
contain code to implement this) and if restricted to non-commercial usage,
|
|
rpm-build |
ca2b01 |
must have a comment mentioning that fact in the GWeatherWeather API documentation
|
|
rpm-build |
ca2b01 |
- finally, a working and applicable patch must be provided
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
Privacy
|
|
rpm-build |
ca2b01 |
-------
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
The user’s privacy must be maintained as much as possible:
|
|
rpm-build |
ca2b01 |
- don’t include unnecessary detail in requests
|
|
rpm-build |
ca2b01 |
- don’t allow fine-grained location tracking
|
|
rpm-build |
ca2b01 |
- don’t include other identifying information in the requests if possible
|
|
rpm-build |
ca2b01 |
- service must have a data usage policy that's reasonable compared to
|
|
rpm-build |
ca2b01 |
equivalent services, eg. not use requests as a way to feed into user tracking
|
|
rpm-build |
ca2b01 |
for an advertisment business
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
Application token usage
|
|
rpm-build |
ca2b01 |
-----------------------
|
|
rpm-build |
ca2b01 |
|
|
rpm-build |
ca2b01 |
Not using tokens is preferable, but some data sources don't offer the option.
|
|
rpm-build |
ca2b01 |
There are a number of requirements for those tokens:
|
|
rpm-build |
ca2b01 |
- One should be provided in the patch for testing purposes, and be easily
|
|
rpm-build |
ca2b01 |
overridable by distributions wishing to have a separate identifier and limits
|
|
rpm-build |
ca2b01 |
- The test token should have high enough limits that you're reasonably confident
|
|
rpm-build |
ca2b01 |
that lots of people running `make check` won’t cause the token to be revoked
|
|
rpm-build |
ca2b01 |
and break everyone’s tests
|
|
rpm-build |
ca2b01 |
- Instructions on how to get a token for the application must be provided
|