chiark / gitweb /
Hans-Christoph Steiner [Mon, 15 Feb 2016 14:29:11 +0000 (15:29 +0100)]
run-tests: use OSX/BSD compatible `mktemp -d`
-d requires an arg on BSD
Hans-Christoph Steiner [Mon, 15 Feb 2016 13:33:27 +0000 (14:33 +0100)]
only test ./gendocs on GNU/Linux
This helps with getting the tests running on OSX and other platforms.
Hans-Christoph Steiner [Mon, 15 Feb 2016 10:40:35 +0000 (11:40 +0100)]
complete-ci-tests: exit with error if setup is not correct
Daniel Martí [Mon, 15 Feb 2016 13:49:12 +0000 (13:49 +0000)]
Forgot to remove the output= debug prints
Daniel Martí [Mon, 15 Feb 2016 12:01:43 +0000 (12:01 +0000)]
pre-commit: fix multiple file issue
When using -z, you should always quote. If not, stuff like this happens:
.git/hooks/pre-commit: line 10: [: too many arguments
Daniel Martí [Mon, 15 Feb 2016 12:01:38 +0000 (12:01 +0000)]
output= is now a glob path and can do gradle
Daniel Martí [Mon, 15 Feb 2016 11:44:07 +0000 (11:44 +0000)]
Add gradle 2.11
Daniel Martí [Mon, 15 Feb 2016 11:37:56 +0000 (11:37 +0000)]
gradle wrapper script: add plugin 1.5
Daniel Martí [Fri, 12 Feb 2016 09:13:53 +0000 (09:13 +0000)]
Merge branch 'master' into 'master'
a couple fixes
these are three fixes, one related to my previous merge request, as discussed with @mvdan in IRC
See merge request !99
Hans-Christoph Steiner [Thu, 11 Feb 2016 23:39:54 +0000 (00:39 +0100)]
fix PEP9 E713 test for membership should be 'not in'
Hans-Christoph Steiner [Thu, 11 Feb 2016 23:27:17 +0000 (00:27 +0100)]
fix errors in pre-commit hook when run in test suite
Hans-Christoph Steiner [Tue, 4 Aug 2015 14:09:44 +0000 (16:09 +0200)]
build: check that metadata is present before creating tmp dirs
Before, `fdroid build` would create some subdirs, then fail when it could
not read the metadata via metadata.read_metadata(). This checks before
whether there is any metadata available, and warns the user accordingly.
Hans-Christoph Steiner [Thu, 11 Feb 2016 22:49:54 +0000 (23:49 +0100)]
common: do not crash if the java_paths are not what is expected
Many commands work without the JDK installed, and it is also possible that
someone is using only JDK 8 or 9.
Daniel Martí [Thu, 11 Feb 2016 21:48:51 +0000 (21:48 +0000)]
common: add regexp for arch oracle paths
Daniel Martí [Thu, 11 Feb 2016 21:34:44 +0000 (21:34 +0000)]
common: fix JDK detection on latest arch
Hans-Christoph Steiner [Thu, 11 Feb 2016 20:47:29 +0000 (20:47 +0000)]
Merge branch 'auto-detect-java-homes' into 'master'
Auto detect java homes
There are a wide variety of possible JDKs (OpenJDK, Oracle, OSX, etc.) as well as standard paths for the JDK. This includes code to look in standard paths for various platforms and enumerate the installed JDKs (e.g. 6, 7, 8, 9). That is then used for `JAVA[6-9]_HOME` env vars and the path for `jarsigner` and `keytool`.
See merge request !98
Hans-Christoph Steiner [Thu, 11 Feb 2016 19:43:55 +0000 (20:43 +0100)]
use jarsigner and keytool from same JDK as is being set in JAVA7_HOME
Using the same JDK throughout should prevent weird bugs where a setup might
use Java8's jarsigner and Java7's keytool. This also allows the user to
set java_paths and have jarsigner and keytool used from that specified JDK.
This incorporates almost all of the patch that is in the Debian package
that forces fdroidserver to use the default JDK on that Debian release.
closes #93 https://gitlab.com/fdroid/fdroidserver/issues/93
Hans-Christoph Steiner [Fri, 5 Feb 2016 23:29:07 +0000 (00:29 +0100)]
automatically detect various installed JDKs and set JAVA[6-9]_HOME
This checks for which JDKs are installed in common locations, then sets the
JAVA[6-9]_HOME env vars needed by some build environments.
Hans-Christoph Steiner [Thu, 4 Feb 2016 07:42:53 +0000 (08:42 +0100)]
makebuildserver: add workaround to Ubuntu/trusty's old paramiko
Ubuntu trusty 14.04's paramiko does not work with jessie's openssh's
default settings, so they need to be tweaked in order to provide working
ssh to the instance.
https://stackoverflow.com/questions/
7286929/paramiko-incompatible-ssh-peer-no-acceptable-kex-algorithm/
32691055#
32691055
Daniel Martí [Thu, 11 Feb 2016 19:06:22 +0000 (19:06 +0000)]
Merge branch 'jmastr/use_tag_if_version_name_is_unknown' into 'master'
use tag if version name is unknown
If we don't find the version name neither in the AndroidManifest.xml nor
in the build.grade file, we fallback to the tag the user specified to
search for.
That way we have a better version name than 'Unknown'.
See merge request !97
Julian Strobl [Thu, 11 Feb 2016 18:50:16 +0000 (19:50 +0100)]
use tag if version name is unknown
If we don't find the version name neither in the AndroidManifest.xml nor
in the build.grade file, we fallback to the tag the user specified to
search for.
That way we have a better version name than 'Unknown'.
Daniel Martí [Wed, 10 Feb 2016 15:57:19 +0000 (15:57 +0000)]
Merge branch 'prevo' into 'master'
Add libexpat1-dev and libglib2.0-dev to the default recipe
These are needed to build the PrevoDB srcdep of
uk.co.busydoingnothing.prevo.
See merge request !96
Neil Roberts [Wed, 10 Feb 2016 14:50:50 +0000 (14:50 +0000)]
Add libexpat1-dev and libglib2.0-dev to the default recipe
These are needed to build the PrevoDB srcdep of
uk.co.busydoingnothing.prevo.
Daniel Martí [Mon, 8 Feb 2016 16:07:27 +0000 (16:07 +0000)]
Merge branch 'jenkins-makebuildserver-works' into 'master'
Jenkins ./makebuildserver works!
These commits get `./makebuildserver` running in a Jenkins job. It builds the whole setup from scratch every time, including the vagrant and virtualbox setups.
Also, this modifies the git pre-commit hook to only run on the files being committed when called by git.
See merge request !95
Hans-Christoph Steiner [Wed, 3 Feb 2016 21:02:50 +0000 (22:02 +0100)]
test ./makebuildserver by running a build in jenkins
Hans-Christoph Steiner [Wed, 3 Feb 2016 21:00:48 +0000 (22:00 +0100)]
script to run ./makebuildserver on Jenkins instances
This is being used to run it on both Guardian Project's and Debian's
Jenkins instances.
Hans-Christoph Steiner [Thu, 28 Jan 2016 12:00:18 +0000 (13:00 +0100)]
makebuildserver: default memory to 1024MB, so it runs on normal machines
4 gigs is still a common amount of RAM these days for laptops, if the VM
takes almost all of that, it makes the machine drag to almost a halt. Most
apps build fine in 1gig of RAM, indeed that's the default for most CI
instances, like travis-ci and gitlab-ci.
Hans-Christoph Steiner [Tue, 26 Jan 2016 10:21:21 +0000 (11:21 +0100)]
allow setting up an apt package cache for the build server setup
This creates a cache folder which will store the apt cache from the VM.
Hans-Christoph Steiner [Tue, 26 Jan 2016 21:06:10 +0000 (22:06 +0100)]
makebuildserver: make chef find the custom cache locations
Hans-Christoph Steiner [Wed, 3 Feb 2016 13:48:40 +0000 (14:48 +0100)]
make git pre-commit hook only test files to be committed
Right now, the git pre-commit hook is pretty annoying to work with when
development since it tests every single file. That means notes, incomplete
stuff, etc. will be run through the tests. So all of the files need to be
clean in order to commit even a single trivial fix. This commit changes it
so that the pre-commit hook is only run on the files staged to be committed.
Daniel Martí [Sun, 31 Jan 2016 21:29:31 +0000 (21:29 +0000)]
lint: also check for trailing spaces in names
I was wrong - we don't check for trailing whitespaces on lines. That
would have to happen at parse time, not in the linter, so it would slow
things down and would become an error, not a warning. Not really worth
it.
Daniel Martí [Sun, 31 Jan 2016 21:26:31 +0000 (21:26 +0000)]
Merge branch 'authorregex' into 'master'
lint: check whitespaces in "Author Name"
See merge request !94
Boris Kraut [Sun, 31 Jan 2016 11:53:38 +0000 (12:53 +0100)]
lint: check whitespaces in "Author Name"
Daniel Martí [Sun, 31 Jan 2016 13:26:26 +0000 (13:26 +0000)]
Merge branch 'licenses' into 'master'
wp-fdroid: Linkify more licenses
See merge request !90
Daniel Martí [Sun, 31 Jan 2016 13:25:03 +0000 (13:25 +0000)]
Merge branch 'patch-1' into 'master'
Support 'gpgkey' option as announced in sample config.
See merge request !93
Marvin W [Wed, 27 Jan 2016 15:51:03 +0000 (15:51 +0000)]
Support 'gpgkey' option as announced in sample config.
Ciaran Gultnieks [Tue, 26 Jan 2016 22:01:28 +0000 (22:01 +0000)]
Tidy up/fix some vagrant issues
1. It is packaged in modern versions of distros, update docs accordingly
2. 1.1 is hopelessly outdated - support 1.4 onwards
3. Check the version properly, and write a better config (previously it
wrote the 1.1 config for 1.1 and 1.3+
4. Ensure that the default share from later versions is not present when
building, it's only required for provisioning.
Ciaran Gultnieks [Tue, 26 Jan 2016 22:00:00 +0000 (22:00 +0000)]
Handle with invalid manifests better
In other words, don't blow up and kill a whole checkupdates run just
because one version of one package has some invalid xml.
Daniel Martí [Tue, 26 Jan 2016 19:52:12 +0000 (19:52 +0000)]
Merge branch 'makebuildserver-jenkins-fixes' into 'master'
Makebuildserver jenkins fixes
more stuff related to the Debian jenkins build
See merge request !92
Hans-Christoph Steiner [Tue, 26 Jan 2016 16:35:25 +0000 (17:35 +0100)]
makebuildserver: settable vm boot timeout, plus longer default
On slow machines or VMs like the Debian jenkins box, the VM boot timeout
needs to be a lot longer, otherwise vagrant times out before setting up
the VM.
Hans-Christoph Steiner [Tue, 26 Jan 2016 12:33:53 +0000 (13:33 +0100)]
makebuildserver: explicitly set debian_mirror by default
There needs to be a default, otherwise it crashes. I should have included
this in
8d66742dd7feec77aa30382bfb38da83f2b3e5a4
Daniel Martí [Tue, 26 Jan 2016 11:00:58 +0000 (11:00 +0000)]
Merge branch 'makebuildserver-caching-fixes' into 'master'
./makebuildserver CI fixes
These are fixes for caching and flexible config related to the work of getting `./makebuildserver` running on Debian's and Guardian Project's Jenkins boxes. @mvdan and I have been working with h01lger to get that going, here's the latest build log: https://jenkins.debian.net/view/reproducible/job/reproducible_setup_fdroid_build_environment_profitbricks3/lastBuild/console
See merge request !91
Hans-Christoph Steiner [Fri, 22 Jan 2016 14:30:34 +0000 (15:30 +0100)]
make all apt repos in build server use the configured debian mirror
Hans-Christoph Steiner [Fri, 22 Jan 2016 13:33:17 +0000 (14:33 +0100)]
makebuildserver: set debian mirror in config file only
Setting it in the config file was not working, and right now, all of the
options are in the config file and not as command line flags, so remove
--debian-mirror to keep that consistent.
Hans-Christoph Steiner [Fri, 22 Jan 2016 12:33:14 +0000 (13:33 +0100)]
makebuildserver: use jessie32.box from cache, if present
Daniel Martí [Sun, 24 Jan 2016 18:13:45 +0000 (18:13 +0000)]
scanner: Allow clojars.org maven repository
See https://github.com/inorichi/tachiyomi/issues/46.
Boris Kraut [Sun, 24 Jan 2016 12:27:15 +0000 (13:27 +0100)]
wp-fdroid: Linkify more licenses
Hans-Christoph Steiner [Fri, 22 Jan 2016 10:27:54 +0000 (10:27 +0000)]
Merge branch 'master' into 'master'
Reproducibly build documentation
The two commits fix reproducibility problems detected by the Debian CI:
https://reproducible.debian.net/rb-pkg/unstable/amd64/fdroidserver.html
See merge request !84
Daniel Martí [Thu, 21 Jan 2016 15:49:37 +0000 (15:49 +0000)]
Merge branch 'makebuildserver-for-debian-jenkins' into 'master'
Makebuildserver for debian jenkins
@mvdan and I worked out a plan with Holger, the Debian Developer running the reproducible builds jenkins build farm. The idea is for that to just run `./makebuildserver` in the jenkins script. Then we'll make sure that it works. This also makes it easy for anyone to set up and run an FDroid build instance, which is important for things like the verification server and for people to be able to run reproducible builds on their own machine.
This does change some of the defaults, but they can all be overridden in the `makebs.config.py` for f-droid.org.
More comments in the commits.
See merge request !89
Hans-Christoph Steiner [Thu, 21 Jan 2016 14:41:26 +0000 (15:41 +0100)]
makebuildserver: delete cached files with zero size
If download fails to connect, it'll make a zero size file. Then the next
run on ./makebuildserver will fail because the checksum will not be right.
Hans-Christoph Steiner [Thu, 21 Jan 2016 13:09:12 +0000 (14:09 +0100)]
makebuildserver: cache defaults to ~/.cache/fdroidserver
This also provides a config option to override that default. ~/.cache is
a standard location on GNU/Linux machines for cached content. It is also
good to have the cache outside of the git repo in case `git clean -fdx` is
run, which would delete all files in the directory that are not part of the
git repo, including buildserver/cache/
Hans-Christoph Steiner [Wed, 20 Jan 2016 20:00:16 +0000 (21:00 +0100)]
makebuildserver: set defaults in script so it can run without config
This makes it so that ./makebuildserver will run without any config file,
using the defaults that are embedded in the script itself. This is like
how `fdroid` works.
Hans-Christoph Steiner [Wed, 20 Jan 2016 19:40:25 +0000 (20:40 +0100)]
makebuildserver: set default Debian mirror to http.debian.net
This host automatically detects which is the closest mirror, then uses that
one. It does so dynamically, so it'll work on machines that move too. Now
that we are pushing more people to run F-Droid build servers, the defaults
should take those use cases into account.
Hans-Christoph Steiner [Wed, 20 Jan 2016 19:38:18 +0000 (20:38 +0100)]
name makebuildserver config the same as the script
This keeps the numbers of names down to a minimum, and since the config
is placed right next to the script, this keeps tab completion working
nicely when the config file is in place.
The old file name is still supported.
Hans-Christoph Steiner [Wed, 16 Sep 2015 15:19:12 +0000 (17:19 +0200)]
run-tests: verbose output for `fdroid update` to aid debugging
I'm stumped by this stacktrace, hopefully debug logging will help:
Unknown exception found!
Traceback (most recent call last):
File "./fdroidserver-0.4.0/fdroid", line 141, in <module>
main()
File "./fdroidserver-0.4.0/fdroid", line 119, in main
mod.main()
File "<http://localhost:18080/job/fdroidserver/ws/.testfiles/tmp.9hr9NiSmZs/fdroidserver-0.4.0/fdroidserver/update.py",> line 1146, in main
apks, cachechanged = scan_apks(apps, apkcache, repodirs[0], knownapks)
File "<http://localhost:18080/job/fdroidserver/ws/.testfiles/tmp.9hr9NiSmZs/fdroidserver-0.4.0/fdroidserver/update.py",> line 543, in scan_apks
thisinfo['sig'] = getsig(os.path.join(os.getcwd(), apkfile))
File "<http://localhost:18080/job/fdroidserver/ws/.testfiles/tmp.9hr9NiSmZs/fdroidserver-0.4.0/fdroidserver/update.py",> line 361, in getsig
with zipfile.ZipFile(apkpath, 'r') as apk:
File "/usr/lib/python2.7/zipfile.py", line 770, in __init__
self._RealGetContents()
File "/usr/lib/python2.7/zipfile.py", line 857, in _RealGetContents
x._decodeExtra()
File "/usr/lib/python2.7/zipfile.py", line 388, in _decodeExtra
tp, ln = unpack('<HH', extra[:4])
struct.error: unpack requires a string argument of length 4
Daniel Martí [Thu, 14 Jan 2016 22:12:22 +0000 (23:12 +0100)]
Apparently Python cannot handle Unicode
I really hope I can revert this in the near future. Having to mutilate
my name just so that pip will work is a terrible workaround.
For better or worse, this only affects scripts defined in setup.py.
Daniel Martí [Mon, 11 Jan 2016 01:43:06 +0000 (02:43 +0100)]
stats: use a stable sort that doesn't randomize
Since we only sorted by count, ignoring the string, it meant that items
with the same count might be arranged in different manners. Hence the
`stats` behaviour was not predictable at all. Now it sorts first by
count, then by string.
Daniel Martí [Mon, 11 Jan 2016 01:05:43 +0000 (02:05 +0100)]
build: don't add extra clean tasks
It is a good idea in theory, especially for extra tasks specified by the
user. But in practice, tasks specified by developers often don't have a
clean counterpart. So this just breaks the build.
Daniel Martí [Sun, 10 Jan 2016 16:54:38 +0000 (17:54 +0100)]
metadata: fix text wrapping on unicode characters
We were passing the utf-8 encoded string to textwrap, which took the
bytes as characters. Hence multi-byte unicode characters (in utf-8)
would count as multiple columns, which is clearly wrong.
Daniel Martí [Sat, 9 Jan 2016 12:24:13 +0000 (13:24 +0100)]
fdroid: python2 doesn't like print()
It just prints "()", which is stupid.
Daniel Martí [Tue, 5 Jan 2016 08:15:54 +0000 (09:15 +0100)]
Add Gradle 2.10 to the BS
Daniel Martí [Mon, 4 Jan 2016 12:44:00 +0000 (13:44 +0100)]
metadata: Always use regex to verify values
Lists can be made into regexes very easily. Major code simplification.
Also no need to construct sets to avoid iterating over lists.
Daniel Martí [Mon, 4 Jan 2016 12:26:48 +0000 (13:26 +0100)]
Remove redundant AntiFeatures bool check
Daniel Martí [Mon, 4 Jan 2016 08:29:17 +0000 (08:29 +0000)]
Merge branch 'master' into 'master'
Add Author Name and Author Email fields. (Closes: #90)
Adds the two new fields as discussed in issue #90. Both are optional.
Mind that the Wiki template needs to be extended before merging.
See merge request !87
Dominik George [Sun, 3 Jan 2016 19:49:36 +0000 (20:49 +0100)]
Add Author Name and Author Email fields. (Closes: #90)
Daniel Martí [Thu, 31 Dec 2015 10:21:47 +0000 (11:21 +0100)]
lint: warn about spaces in summaries too
Daniel Martí [Thu, 31 Dec 2015 09:11:41 +0000 (10:11 +0100)]
README: Note that Python 2.7.7+ is supported
Daniel Martí [Thu, 31 Dec 2015 08:37:08 +0000 (09:37 +0100)]
gradle: stop trying to patch outputFile
This often breaks since we're just removing a single line. Instead, use
a much more reliable way of finding output apks.
NeroBurner [Thu, 17 Sep 2015 11:33:19 +0000 (13:33 +0200)]
handle Queue
NeroBurner [Thu, 17 Sep 2015 11:29:06 +0000 (13:29 +0200)]
Octal numbers 0600 to 0o600
NeroBurner [Thu, 17 Sep 2015 11:25:08 +0000 (13:25 +0200)]
except named exception handling
NeroBurner [Wed, 16 Sep 2015 20:44:41 +0000 (22:44 +0200)]
Change print-function to have brackets
Daniel Martí [Tue, 29 Dec 2015 11:39:48 +0000 (12:39 +0100)]
Add NonFreeAssets anti-feature
Daniel Martí [Thu, 24 Dec 2015 22:08:31 +0000 (23:08 +0100)]
Small gradle wrapper fix
It broke on cases like:
if (gradle.gradleVersion >= "2.2") {
Daniel Martí [Thu, 24 Dec 2015 15:41:39 +0000 (16:41 +0100)]
gradle: Completely get rid of gradlepluginver
We can support multiple output dirs without having to detect/infer the
plugin version. Much simpler and more robust too.
Daniel Martí [Thu, 24 Dec 2015 15:40:36 +0000 (16:40 +0100)]
gradle: Never add lintOptions workaround
This breaks on newer plugin versions. Instead of complicating this logic
even further to support them, upstream devs should instead use gradle
configs that actually work.
If their build fails because of lint, it's theirs to fix, not ours.
Daniel Martí [Wed, 16 Dec 2015 15:42:21 +0000 (16:42 +0100)]
Fix issues spotted by older pyflakes
Daniel Martí [Thu, 10 Dec 2015 11:50:36 +0000 (11:50 +0000)]
Merge branch 'docs' into 'master'
docs: Add information on binary verification
I added a section about `Binaries:` metadata field. However, my information might be wrong or outdated, since I barely used it by now. Maybe even this field was left out on purpose...
See merge request !83
Daniel Martí [Thu, 10 Dec 2015 11:47:48 +0000 (11:47 +0000)]
Merge branch 'summarylength' into 'master'
docs: Adjust summary length
See merge request !85
Boris Kraut [Thu, 10 Dec 2015 11:42:05 +0000 (12:42 +0100)]
docs: Adjust summary length
Daniel Martí [Mon, 7 Dec 2015 19:31:23 +0000 (20:31 +0100)]
Open metadata files in only one place
Also get rid of the useless get_default_app_info func.
Daniel Martí [Mon, 7 Dec 2015 19:12:26 +0000 (20:12 +0100)]
lint: optionally check format
Daniel Martí [Mon, 7 Dec 2015 12:58:29 +0000 (13:58 +0100)]
lint: fix issue found by older version of pyflakes
Daniel Martí [Mon, 7 Dec 2015 11:39:04 +0000 (12:39 +0100)]
checkupdates: fix --auto build copy
Also, remove origlines which hasn't been used in some time.
Daniel Martí [Mon, 7 Dec 2015 11:33:24 +0000 (12:33 +0100)]
stats: fix a few dict accesses left over
Daniel Martí [Sat, 5 Dec 2015 18:20:41 +0000 (19:20 +0100)]
import: fix get_default_app_info usage
Closes #129
Daniel Martí [Fri, 4 Dec 2015 18:32:01 +0000 (19:32 +0100)]
scanner: remove jni check
buildjni=no is the default. Moreover, some apps now run ndk-build via
gradle, so this was just in the way.
Daniel Martí [Thu, 3 Dec 2015 23:02:34 +0000 (00:02 +0100)]
Set all list defaults to an actual list
Iterating over the defaults will crash otherwise. Update pickle files.
Daniel Martí [Thu, 3 Dec 2015 18:31:20 +0000 (19:31 +0100)]
Fix tests by not checking private attributes
All attrs starting with '_' (e.g. _foo or __bar) are used internally, so
not very relevant for the metadata test anyway.
Daniel Martí [Thu, 3 Dec 2015 15:49:35 +0000 (16:49 +0100)]
Also skip unmodified fields in the regex checks
Now it's close to 1s.
Daniel Martí [Thu, 3 Dec 2015 15:46:21 +0000 (16:46 +0100)]
Keep track of what attrs were modified in apps/builds
This allows us to run checks and fix types only on those that were
really modified. On our fdroiddata repo, with 2k apps with many unset
fields and flags, this reduces readmeta runtime from ~1.3s to ~1.1s.
Daniel Martí [Thu, 3 Dec 2015 15:35:46 +0000 (16:35 +0100)]
Actually check that bools are valid
The metadata check was omitting booleans and lists, as it was only
taking strings. Fix this.
Daniel Martí [Thu, 3 Dec 2015 15:19:33 +0000 (16:19 +0100)]
Remove need for rstrip() of txt description
Daniel Martí [Thu, 3 Dec 2015 13:00:47 +0000 (14:00 +0100)]
metadata: write strings directly to txt file
Daniel Martí [Thu, 3 Dec 2015 12:53:49 +0000 (13:53 +0100)]
Rename metafieldtype to fieldtype
For consistency with flagtype. Also less redundant.
Daniel Martí [Thu, 3 Dec 2015 12:52:53 +0000 (13:52 +0100)]
Use dicts for field/flag types
Daniel Martí [Thu, 3 Dec 2015 12:02:54 +0000 (13:02 +0100)]
Some more readability/performance tweaks
* Use set() instead of dict()
* No 'if foo: True else: False'
* Don't check for invalid fields twice
Daniel Martí [Thu, 3 Dec 2015 11:55:19 +0000 (12:55 +0100)]
Use constants for field/flag types
Avoids typos, such as one I just found which was 'strsng' isntead of
'string'. The static analyzer can catch those if they are constants.
Comparing ints is also faster than strings, which adds up in readmeta.
Daniel Martí [Thu, 3 Dec 2015 11:41:50 +0000 (12:41 +0100)]
Avoid conflicting func/var names
Daniel Martí [Thu, 3 Dec 2015 11:02:47 +0000 (12:02 +0100)]
Make text formatting faster via StringIO
Avoid concatenating strings over and over. Also, the wiki formatting
wasn't necessary at all since it was just joining lines.