Blame HACKING

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