| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| | |
As well as being case insensitive project names on python treat '-' and '_'
as equivalent characters [1]
[1]: http://legacy.python.org/dev/peps/pep-0426/#name
|
| |
| |
| |
| |
| |
| | |
This lets the importer specify how package names will be compared,
to do this the importer optionally supplies a callback, if no callback
is supplied then the tool will default to == for string comparison.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds PythonLorryExtension class to python.to_lorry to run the extension
in a more conventional way. Previously the PythonExtension class
was used to execute any of the extensions (it would call the extensions main()
function). We move away from this so the
extension can access useful methods, such as local_data_path(), that are
provided by the ImportExtension class.
This also removes use of pkg_resources.parse_requirement which is redundant.
This also removes the unused import of select.
|
|/
|
|
| |
This adds a config file for the python extensions
|
|\
| |
| |
| |
| | |
Reviewed-By: Jim MacArthur <jim.macarthur@codethink.co.uk>
Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
| |
| |
| | |
Reviewed-By: Richard Ipsum <richard.ipsum@codethink.co.uk>
Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There isn't yet an official spec for distribution names in python,
however there is a draft at http://legacy.python.org/dev/peps/pep-0426/#name
In particular,
"All comparisons of distribution names MUST be case insensitive,
and MUST consider hyphens and underscores to be equivalent."
pkg_resource.parse_requirements will replace any underscores in the
package name as hyphens, so when we search pypi we need to look for
the package name with underscores as well as with hyphens.
|
|\
| |
| |
| |
| | |
There is work still to be done on this importer, but it is usable for
some Python projects and may as well be merged to 'master' now.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Morph doesn't need a chunk morph to build/install setuptools packages,
but the import tool needs to grow the ability to have 'to_chunk' as an
optional stage before we can remove this part of the python extension.
|
| |
| |
| |
| |
| | |
python.find_deps does some pretty basic validation of the requirement specs,
this commit adds the tests for this validation.
|
| |
| |
| |
| |
| | |
This takes source_dir, name, version and returns the dependencies for the
package as json on stdout.
|
| | |
|
| |
| |
| |
| | |
This takes source, name, version and produces a lorry
|
| | |
|
| |
| |
| |
| |
| |
| | |
This is helpful for discovering when messages are being put on stderr,
we're collecting messages on stderr, but these could come from different
subprocesses leading to a confusing mixture of error messages.
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
| |
Content overlaps with that of the README a bit, I'm not sure what to do
about this. Putting 'man' pages online as part of our continuous
delivery infrastructure should ultimately be the goal.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The multi_json Gem wasn't being detected as signed, because the
'signing_key' field is an expression that can evaluate to 'nil' in some
cases. In this Gem the 'cert_chain' field was still a standard string.
Hopefully checking for the presence of either will catch all cases
(and false positives should be harmless anyway).
|
| |
|
| |
|
|
|
|
|
| |
This was motivated by <https://github.com/mislav/will_paginate>, which
links to <https://github.com/mislav/will_paginate/wiki> as its homepage.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously if we got a BaserockImportException which contained a '%' in
the message, you'd see this...
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cliapp/app.py", line 190, in
_run
self.process_args(args)
File "/src/import/baserockimport/app.py", line 102, in process_args
super(BaserockImportApplication, self).process_args(args)
File "/usr/lib/python2.7/site-packages/cliapp/app.py", line 539, in
process_args
method(args[1:])
File "/src/import/baserockimport/app.py", line 185, in import_rubygems
loop.run()
File "/src/import/baserockimport/mainloop.py", line 176, in run
self.app.status(str(e), error=True)
File "/src/import/baserockimport/app.py", line 105, in status
text = msg % args
TypeError: not enough arguments for format string
|
|
|
|
|
|
| |
The rubygems.to_chunk tool was assuming the .gemspec file always lived
at the top of the chunk repo, but this isn't the case for
<https://github.com/rails/rails>. Now it is smarter.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This isn't a perfect fix. If this situation occurs the tool will
generate an invalid stratum and the user will need to rename one of
the chunks. But this is a better than what would have happened before:
one of the chunks would have been silently ignored.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now the tool gives the filenames of both files involved in the conflict.
The most likely reason for seeing this error is that, at least in
the lorries.git on git.baserock.org[1], the toplevel directory contains
some 'disabled' subdirectories, so the user needs to point --lorries-dir
to the correct subdirectory so that duplicate disabled lorries aren't
loaded.
This isn't really the final word on that problem, because having the
tool load disabled lorries is quite bad and if there are no conflicts
the user won't notice that it's happening and other confusing stuff
might occur. But hopefully it's good enough for now.
1. http://git.baserock.org/cgi-bin/cgit.cgi/baserock/local-config/lorries.git/tree/
|
|\ |
|
| |
| |
| |
| |
| | |
You often want the latest stable rather than whatever is Git master,
which usually doesn't even import cleanly!
|
| |
| |
| |
| |
| | |
I think this makes the output a bit clearer to follow. Maybe. It's hard
to know these things until it's too late.
|
| |
| |
| |
| |
| |
| | |
I think this makes it clearer what the tool is actually doing, and
hopefully makes it clearer what the user should do in cases where the
tool couldn't determine which ref to use and reports an error.
|
| |
| |
| |
| |
| |
| |
| | |
This is used to ignore Gems which either come built into Ruby (like
Rake) or are supplied with the 'ruby' stratum. As noted in the comment
in the .yaml file it is not an ideal solution, but it should work well
enough for the time being.
|
| |
| |
| |
| |
| | |
Sometimes this is due to weird version requirements caused by some other
package which isn't actually needed.
|