Blame HACKING

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