Commit graph

289 commits

Author SHA1 Message Date
bb94f6dd05 Add a Roadmap section to the README 2019-09-23 16:49:20 +01:00
b96bc58422 Handle the README.html file being missing 2019-09-23 16:44:16 +01:00
970bcb31cf Tweak screen.css to display paragraphs and lists better 2019-09-21 12:41:52 +01:00
1181d999a9 Serve the README.html file on the site 2019-09-21 12:41:39 +01:00
f5ff0f8638 Hack building a HTML version of the README in to Makefile.am
This is to be able to serve a readable version of the README on the site,
allowing those without Emacs to more easily read it.
2019-09-21 12:40:46 +01:00
ec1b2001cc Add a README
With local development instructions.
2019-09-21 12:40:21 +01:00
34ed73cdc1 Fix the godir in Makefile.am
I think the .go files should be in lib, rather than share.
2019-09-21 11:30:25 +01:00
ddf3eb6589 Add guix as a dependency
This is used as a Guile module.
2019-09-21 11:29:10 +01:00
1fcb5ad959 Remove test-env from the repository
This is a generated file.
2019-09-21 11:28:52 +01:00
aecd23d599 Add support for a .local.envrc file
As this is useful when setting custom configuration.
2019-09-21 11:28:24 +01:00
6a9f11fb94 Fix the repository page
The repository id is expected to be a number.
2019-09-14 09:05:47 +01:00
ce5f9bb3e6 Update the "source code here" link 2019-09-10 20:28:24 +01:00
eb0d33a3ba Show lint warnings on the comparison page 2019-09-07 17:19:34 +02:00
fe8102e1df Use numeric ids for git repositories 2019-09-05 16:40:39 +02:00
38adedcede Add newline to the end of the duplicate lint warning output 2019-09-05 16:07:23 +02:00
2485da7cfc Use numbers for ids in the derivation model
As this is easier to handle when doing queries with PostgreSQL, as you can use
the type information to determine how to handle the values.
2019-09-05 16:07:23 +02:00
2cb389037b Fix data input for package-metadata
Represent non-string home pages as NULL, and delete duplicates, as package
metadata entries can be duplicated.
2019-09-05 16:07:23 +02:00
4c67160b92 Improve error handling for insert-missing-data-and-return-all-ids 2019-09-05 16:07:23 +02:00
2b5594e5d4 Support deleting duplicates in insert-missing-data-and-return-all-ids
This is useful when you want to pass in data with some duplicates, and get
back a list of ids, where the duplicate entries are represented by the same
id.
2019-09-05 16:07:23 +02:00
1a55022524 Improve the package and package-metadata modules
Add tests around the package module, extract out the use of the
inferior-package record assessors so that they aren't part of the tests, and
switch across the package-metadata module to use
insert-missing-data-and-return-all-ids.
2019-09-05 16:07:23 +02:00
f29230e034 Put some comments in the mock-inferior module
About mocking the record file accessors not working :(
2019-09-05 16:07:23 +02:00
d3913a14d5 Start handling ids as numbers, rather than strings
squee, returns all data as strings, and expects strings as inputs to
queries. So, keeping the ids as strings was easy initially, but it means that
you can't tell from the type whether it should be quoted, or not...

Therefore, handle ids as strings, converting them to numbers when they're
fetched from the database, and back to strings as part of the queries.
2019-09-05 16:07:23 +02:00
6c90fe4324 Reduce code duplication in the package module
By using insert-missing-data-and-return-all-ids.
2019-09-05 16:07:23 +02:00
f1a9495727 Reduce code duplication in the package-derivation module
Through using insert-missing-data-and-return-all-ids.
2019-09-04 19:27:48 +02:00
fc6bbf3e3c Change license code to use insert-missing-data-and-return-all-ids
As this now supports inserting sets of data.
2019-09-04 19:27:48 +02:00
80010a8a1b Improve insert-missing-data-and-return-all-ids
Use exec-query-with-null-handling to distinguish NULL values, change it to
just take a list of fields and remove the handlers. Also, add a sets-of-data?
parameter so that this can be used licenses.
2019-09-04 19:27:48 +02:00
1441942200 Hack better NULL support on to (squee)
PQgetvalue used by squee returns null values as empty strings, which are
ambiguous for string fields. Therefore, use PQgetisnull to implement a
serialiser for squee which checks empty strings to see if they're actually a
NULL value, then returns '() in this case.

exec-query-with-null-handling can be used to access this behaviour.
2019-09-04 12:52:12 +02:00
902560d56b Change normalise-database-values to normalise-values
As these values are not from the database, which is why they're not strings.
2019-09-02 18:17:01 +02:00
939b8b8bb6 Fix a couple of GET's in the controller match expression
These should be symbols, not just placeholders.
2019-09-01 18:48:31 +01:00
960eac26d7 Fix the after link on the packages page 2019-09-01 18:47:06 +01:00
939b51c80c Add a header for the derivations on the package page 2019-09-01 18:32:09 +01:00
d3254dddb6 Add lint warnings to the package page 2019-09-01 18:32:09 +01:00
514933db47 Link to the package from the lint warnings page 2019-09-01 18:32:09 +01:00
14fab21dc1 Link to the lint warnings page from the revision page 2019-09-01 18:32:09 +01:00
be25e487f1 Support filtering lint warnings by linter 2019-09-01 18:32:09 +01:00
2bfd81ee1b Add lint-checkers-for-revision to the lint-checker module 2019-09-01 18:32:09 +01:00
91a9ba4349 Add a new table guix_revision_lint_checkers
To associate a set of lint checkers with a specific revision. While there is
the association through the lint warnings, that only works for checkers where
there are lint warnings for that revision.

Therefore, to allow finding all the checkers for a specific revision, also
associate them directly with the revision.
2019-09-01 18:32:09 +01:00
c1fad22cd1 Handle a change in guix with the <derivation-input> record
The first field is now a <derivation> record, rather than a store path for the
derivation.

It's probably not necessary to cope with two versions, but this is what I've
done currently.
2019-09-01 17:40:16 +01:00
3ad100bedc Log the manifest derivation when loading new revisions
As this is useful to know.
2019-09-01 17:40:16 +01:00
609c5cf4f0 Add a page to show the lint warnings for a revision 2019-09-01 17:40:16 +01:00
3544f9300f Add lint-warnings-for-guix-revision to the lint-warning module 2019-09-01 13:12:10 +01:00
07f368a54b Include glibc-locales from the inferior guix in the environment
When loading data from an inferior Guix, first build it's latest version of
glibc-locales, and include that in the environment from the inferior.

This improves locale support, which is currently relevant for extracting lint
warnings.

Without this change, you'd only be able to switch to locales supported by the
glibc-utf8-locales package, assuming that the right version is available.
2019-09-01 13:12:10 +01:00
af581784b2 Log the guix store path being used
In the load-new-guix-revision module.
2019-09-01 13:12:10 +01:00
f118ed0bf9 Improve handling of errors when changing locale
In the load-new-guix-revision module.
2019-09-01 13:12:10 +01:00
3a79449974 Display counts of lint warnings on the revision page 2019-09-01 13:12:10 +01:00
75f2c19fc8 Add lint-warning-count-by-lint-checker-for-revision
To return counts of lint warnings, grouped by lint checker for a specific
revision.
2019-09-01 13:12:10 +01:00
6b9977f62e Store lint warnings in the database
This commit adds the relevant tables and code to store lint warnings in the
database.

Currently, only lint checkers which don't require access to the network will
be run, as this allows the processing to happen without network access. Also,
this functionality won't work in older versions of Guix which don't expose the
lint warnings in a compatible way.
2019-09-01 13:12:10 +01:00
bf469504eb Add buffering to the log handling for jobs
To increase the log output speed, avoiding inserting one character at a time
in to the database.
2019-08-31 12:10:54 +01:00
8c741c569b Add insert-missing-data-and-return-all-ids to the model utils module
This should help greatly with populating the database with new entries, and
greatly reduce code duplication.
2019-08-31 12:09:54 +01:00
657c72c203 Use $STR$ for better quoting in quote-string 2019-08-31 12:09:31 +01:00