Commit message (Collapse)AuthorAgeFilesLines
* README: Add sync_pkgcheckHEADmasterMart Raudsepp2017-07-291-1/+2
* README: Suggest python3 venv module instead of virtualenvMart Raudsepp2017-07-291-1/+1
* frontend: add basic maintainer pageMichael Palimaka2017-07-302-0/+35
* frontend: link from category listing to package pageMichael Palimaka2017-07-301-1/+1
* frontend: add maintainers to navigation barMichael Palimaka2017-07-301-1/+2
* frontend: add maintainer listingMichael Palimaka2017-07-302-0/+59
* frontend: add package pageMichael Palimaka2017-07-302-0/+46
| | | | The package page currently shows gentoo-ci pkgcheck results.
* sync: add gentoo-ci pkgcheck results syncronisationMichael Palimaka2017-07-302-1/+67
* models: add a model for gentoo-ci pkgcheck resultsMichael Palimaka2017-07-301-0/+14
* frontend: add basic category pageMichael Palimaka2017-07-263-3/+35
* Add 404 error handling.Michael Palimaka2017-07-262-1/+21
* gitignore: ignore grumpy databaseMichael Palimaka2017-07-261-0/+2
* Add README.Michael Palimaka2017-07-251-0/+11
| | | | Basic instructions kindly provided by leio.
* revert previous commitPatrice Clement2017-04-231-4/+2
* refactor two sentences to fit the 80-character wide limitPatrice Clement2017-04-231-2/+4
* sync: fix a missing .items to iterate on dictGilles Dartiguelongue2017-01-231-1/+1
* sync: add version and keyword synchronizationGilles Dartiguelongue2017-01-221-4/+38
* sync: add detail points to sync_versionsGilles Dartiguelongue2017-01-221-0/+15
* sync: use dict facilities for key retrieval with a defaultGilles Dartiguelongue2017-01-221-20/+19
* sync: use dict facilities for key retrieval with a defaultGilles Dartiguelongue2017-01-221-1/+1
* sync: reduce unneeded conditional evaluationGilles Dartiguelongue2017-01-221-2/+2
| | | | tags cannot be evaluated to go though these branches after the first if so switch to elif.
* sync: replace assert with ValueError raiseGilles Dartiguelongue2017-01-221-4/+5
| | | | Simpler expression, probably here to stay.
* sync: define project keys default valuesGilles Dartiguelongue2017-01-221-31/+33
| | | | | Costs less than checking for it in each loop iteration and does no harm later to loop on empty lists.
* sync: sort imports according to PEP8Gilles Dartiguelongue2017-01-221-2/+5
* sync: Use dict comprehension in sync_categories as wellMart Raudsepp2017-01-221-3/+1
* sync: use ORM magics in sync_packagesGilles Dartiguelongue2017-01-221-1/+1
| | | | | ORM knows howto map objects to ids through relationships so skip the details and focus on the thing you want to do.
* sync: use assert for GLEP67 compliance checkGilles Dartiguelongue2017-01-221-4/+6
| | | | Should never be raised actually but who knows.
* sync: Fix pkg sync for packages that have a same named pkg in another categoryMart Raudsepp2017-01-221-7/+1
| | | | | | Also fixes an InstrumentedList issue due to change from the categories.packages relationship from dynamic loading to select in commit 8d90fa1009 having broken that earlier
* sync: use dict-comprehension in sync_packagesGilles Dartiguelongue2017-01-221-3/+3
* sync: fix broken sync_packagesGilles Dartiguelongue2017-01-221-1/+6
| | | | | I think there is a problem in the logic here but at least this gets me past the initial sync.
* frontend: Implement saving of followed maintainers/projects to cookieMart Raudsepp2016-12-191-2/+19
* frontend: move setup to a separate view classMart Raudsepp2016-12-193-4/+6
* frontend: Hide @gentoo.org for developers listing in /setupMart Raudsepp2016-12-181-1/+1
* frontend: List proxy maintainers in a separate table for /setupMart Raudsepp2016-12-182-5/+27
| | | | | | Also display an empty cell instead of "None" when we don't have a name in the DB. Style the submit button a bit. Commit a manage.py TODO comment that's collecting dust.
* models: Add preliminary model and fields for keyword and p.mask storageMart Raudsepp2016-12-071-2/+22
* sync: Always handle e-mails in lower case to not end up with duplicatesMart Raudsepp2016-12-072-10/+15
| | | | Suggested-by: Doug Freed <dwfreed@mtu.edu>
* sync: Increase the sync delta to 1 hour and print the sync count and oldest ↵Mart Raudsepp2016-12-071-2/+5
| | | | TS at start
* sync: Don't forget to commit db transaction after all packages are syncedMart Raudsepp2016-12-071-0/+2
| | | | | Sometimes don't need to cancel out, so save the updates after the last modulo 100 to DB too :)
* sync: Order package details syncing based on how old the last sync wasMart Raudsepp2016-12-071-1/+1
| | | | | | This way if we got stuck and re-run much later (or it has exceeded the buffer time constant), we'll at least sync the oldest ones first, so we always end up being less out of date with the oldest sync ts.
* sync: Add package description and maintainers syncMart Raudsepp2016-12-071-4/+45
| | | | | | | | Maintains a sync timestamp to skip recently synced packages, so if a previous run got stuck, we can skip re-doing it too soon. Saves the DB transaction after every 100 packages, because packages.g.o seems to rate-limit us, so at least we will have things saved into DB periodically to cancel out when we get stuck and restart.
* models: Add package maintainers relationship table and ORM relationshipsMart Raudsepp2016-12-071-0/+9
* models: Add description and last_sync_ts columns for PackageMart Raudsepp2016-12-071-0/+4
| | | | | | | | | | | | | | | | description we will get from package.g.o per-package detailed json, last_sync_ts will be used to record when that detailed json was last pulled, so that we can rate-limit as-needed. If still using sqlite, can DROP TABLE package; and re-create with ./manage.py init or add the columns manually ALTER TABLE package ADD COLUMN description VARCHAR(500); ALTER TABLE package ADD COLUMN last_sync_ts TIMESTAMP NOT NULL; though that NOT NULL vs default on sqlalchemy's side for now might pose an issue, solving of which is an easy exercise for those that care instead of recreating.
* frontend: Setup Flask-WTF and use it for following maintainer checkboxes displayMart Raudsepp2016-12-054-3/+36
| | | | No POST handling yet.
* sync: return empty dict on projects retrieval error, so the caller won't errorMart Raudsepp2016-12-051-3/+3
* sync: use requests response.json() directly instead of json.loadsMart Raudsepp2016-12-041-4/+3
| | | | | | This should ensure requests will handle UTF-8 fully correctly for us Suggested-by: Doug Freed <dwfreed@mtu.edu>
* sync: Fix UTF-8 handling for projects.xml importMart Raudsepp2016-12-041-1/+1
| | | | | | | | | Need to feed response.content bytestring into ElementTree, not response.text. With the latter ET seems to figure it's already decoded and goes all latin-1 on us. From response.content bytestream it notices the UTF-8 encoding XML markup and does things right. Diagnosed-by: Doug Freed <dwfreed@mtu.edu>
* sync: Update individual maintainer names during projects sync for the time beingMart Raudsepp2016-12-041-2/+4
| | | | | ... until we don't have master data for this that we shouldn't overwrite. Also remove a now done TODO item and tweak a debug string I messed up pre-commit.
* frontend: Add meta charset=utf-8 head tagMart Raudsepp2016-12-041-1/+2
* frontend: add a /setup/ page for listing existing projects and devsMart Raudsepp2016-12-042-0/+45
| | | | | Later we can convert this into a form to choose which projects/devs to follow; hence the "setup" naming.
* sync: Project members and subprojects syncing to DBMart Raudsepp2016-12-041-1/+25