summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* And enable itbaserock/richardipsum/fix-lorry-bugRichard Ipsum2015-01-071-1/+1
|
* Fix goal_kindRichard Ipsum2015-01-071-1/+1
|
* add some debug and amend keyRichard Ipsum2015-01-071-1/+5
|
* FixRichard Ipsum2015-01-071-15/+2
| | | | Not taking into account kinds for the moment
* Update copyrightsbaserock/richardipsum/fix-hyphen-bugRichard Ipsum2015-01-053-3/+6
|
* Treat hyphens and underscores equivalentlyRichard Ipsum2015-01-052-7/+22
| | | | | | | | | | | | | | 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.
* Merge branch 'baserock/richardipsum/python_v3'Sam Thursfield2014-12-1810-8/+1309
|\ | | | | | | | | 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.
| * Add TODO.pythonbaserock/richardipsum/python_v3Richard Ipsum2014-12-051-0/+92
| |
| * Add README.pythonRichard Ipsum2014-12-051-0/+59
| |
| * Add python.to_chunkRichard Ipsum2014-12-051-0/+33
| | | | | | | | | | | | 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.
| * Add tests for requirement conflict detectionRichard Ipsum2014-12-051-0/+362
| | | | | | | | | | python.find_deps does some pretty basic validation of the requirement specs, this commit adds the tests for this validation.
| * Add python.find_depsRichard Ipsum2014-12-051-0/+352
| | | | | | | | | | This takes source_dir, name, version and returns the dependencies for the package as json on stdout.
| * Add tests for python.to_lorryRichard Ipsum2014-12-052-1/+73
| |
| * Add python.to_lorryRichard Ipsum2014-12-051-0/+219
| | | | | | | | This takes source, name, version and produces a lorry
| * Add common functions used by python extensionsRichard Ipsum2014-12-051-0/+87
| |
| * Log when we receive a msg on stderrRichard Ipsum2014-12-051-0/+1
| | | | | | | | | | | | 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.
| * Add python subcommandRichard Ipsum2014-12-051-0/+19
| |
| * Make rubygems importer depend on strata/ruby.morphRichard Ipsum2014-12-051-2/+2
| |
| * Make stratum build-depends be set by importerRichard Ipsum2014-12-051-6/+11
|/
* Add an initial 'man' page.Sam Thursfield2014-12-042-0/+93
| | | | | | 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.
* Add TODO item and update READMESam Thursfield2014-12-042-0/+9
|
* Add TODO.rubygems itemSam Thursfield2014-12-041-0/+16
|
* rubygems: Detect more signed GemsSam Thursfield2014-12-041-1/+1
| | | | | | | | 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).
* Add TODO itemSam Thursfield2014-12-041-0/+8
|
* Update READMESam Thursfield2014-12-031-18/+33
|
* rubygems: Improve heuristic for when homepage_uri points to GithubSam Thursfield2014-12-031-3/+35
| | | | | This was motivated by <https://github.com/mislav/will_paginate>, which links to <https://github.com/mislav/will_paginate/wiki> as its homepage.
* Fix % interpolation crashSam Thursfield2014-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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
* rubygems: Fix broken build-commands when .gemspec is in a subdirectorySam Thursfield2014-12-033-10/+20
| | | | | | 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.
* Add TODO.rubygems itemSam Thursfield2014-12-031-0/+3
|
* Add caveat to README.omnibusSam Thursfield2014-12-031-0/+7
|
* Split RubyGems-specific items into a separate TODO fileSam Thursfield2014-12-022-0/+33
|
* Fix potential issue where two packages of different kinds share a nameSam Thursfield2014-12-012-18/+19
| | | | | | | 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.
* Don't re-enqueue packages that already failedSam Thursfield2014-12-011-5/+12
|
* Give better errors when one .lorry duplicates another oneSam Thursfield2014-12-011-3/+19
| | | | | | | | | | | | | | | | | 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/
* Merge branch 'sam/final-fixes'Sam Thursfield2014-11-207-52/+157
|\
| * rubygems: Allow specifying which version of a Gem should be importedSam Thursfield2014-11-201-4/+8
| | | | | | | | | | You often want the latest stable rather than whatever is Git master, which usually doesn't even import cleanly!
| * Prepend name and version of current package to each status messageSam Thursfield2014-11-201-9/+10
| | | | | | | | | | I think this makes the output a bit clearer to follow. Maybe. It's hard to know these things until it's too late.
| * Report what ref and commit is being used for each componentSam Thursfield2014-11-201-0/+7
| | | | | | | | | | | | 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.
| * rubygems: Add an 'ignore list'Sam Thursfield2014-11-202-4/+21
| | | | | | | | | | | | | | 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.
| * Print out what requires a package when we can't find its refSam Thursfield2014-11-201-4/+6
| | | | | | | | | | Sometimes this is due to weird version requirements caused by some other package which isn't actually needed.
| * rubygems: Support .gemspec files in subdirectories of the git repoSam Thursfield2014-11-201-12/+26
| | | | | | | | This is cool because now you can import Ruby on Rails.
| * omnibus: Add more stuff to README.omnibusSam Thursfield2014-11-201-7/+39
| |
| * Add --force-stratum-generation optionSam Thursfield2014-11-202-16/+31
| | | | | | | | | | This should be useful when a couple of components raise errors but you know that you don't need them anyway.
| * rubygems.to_chunk: Clarify FIXME commentSam Thursfield2014-11-201-3/+5
| |
| * Fix rubygems.to_chunk failing when run inside `bundle exec`Sam Thursfield2014-11-202-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By calling Bundler::Dsl.gemspec without specifying :path, this tool was causing the Bundler::Source::Path instance for the target .gemspec to be for path '.', which is relative path that is only valid inside one Dir.chdir block. It seems that all the Bundler resolution code runs inside that block and so there should be no problem, but unless we specify an absolute path for the gemspec then errors like this sometimes appear: /usr/lib/ruby/gems/2.0.0/gems/bundler-1.7.6/lib/bundler/resolver.rb:357:in `resolve': Could not find gem 'ffi-yajl (>= 0) ruby' in source at .. (Bundler::GemNotFound) Source does not contain any versions of 'ffi-yajl (>= 0) ruby' This normally happens when an Omnibus import chains to rubygems.to_chunk for a RubyGem component. The path is clearly valid at the time Bundler::Dsl.gemspec is called (otherwise it'd raise a Bundler::InvalidOption exception at the time) but not valid later (hence the error). Note that the second '.' in that error message is a full stop and not part of the path!
| * Fix stratum generation to work for all kinds of dependenciesSam Thursfield2014-11-181-1/+8
| | | | | | | | | | | | Previously it was hardcoded to just look for rubygems deps, which has an obvious flaw. It now looks for all types of dependencies that were enabled with enable_importer().
| * rubygems: Remove Hoe from build-dependency-whitelistSam Thursfield2014-11-181-2/+3
| | | | | | | | | | | | | | It's now in the 'ruby' stratum, so the import tool can ignore it. The build-dependency-whitelist field is now empty, and I'm not sure it's actually useful to have it but I won't remove the code yet.
| * omnibus: Recommend `--deployment` flag for `bundle install`Sam Thursfield2014-11-181-5/+7
|/ | | | | | | This avoids a situation where `bundle install` expects a bunch of stuff to exist in /usr or /home but you have since moved the repo around. Installing stuff in /usr is not recommended in Baserock because it gets lost on upgrades (and /usr will one day be read only, I expect).
* Fix error in stratum generationSam Thursfield2014-11-181-1/+1
| | | | | | | | | | | | This was caused by a mistake in: commit c8e156fe181c8e62fda9f9a999af1f0a0980a0ce Author: Sam Thursfield <sam.thursfield@codethink.co.uk> Date: Mon Nov 17 17:20:00 2014 +0000 Don't force the generated stratum through morphloader validation We should be able to trust it, since we literally just generated it.
* Merge branch 'sam/post-review-changes'Sam Thursfield2014-11-173-14/+8
|\ | | | | | | Thanks to Richard Maw for finding most of these issues.