Giter Club home page Giter Club logo

hem's People

Contributors

andytson avatar andytson-inviqa avatar bicpi avatar daveherbert avatar mikesimons avatar shanethehat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ctasca mikesimons

hem's Issues

Obscure PR creation error message

Mike says:

I got a rather obscure 422 validation error stating that I was missing head_sha and base_sha from my PR because I forgot to push my branch first

The PR task should support better error handling with clearer error messages.

Vagrant version host check out of date

Vagrant host check only looks for >= 1.3.5. We should bump this to >= 1.5.0

We should also take the opportunity to make sure other host checks aren't outdated.

Magento patch functionality bugged on 1.10

Mage::getEdition does not exist on 1.10 (and presumably earlier) so the PHP version inspection fails.

It can be worked around by setting the :magento_edition key in tools/hobo/config.yaml but ideally this would not be required.

S3 asset tasks sit there doing nothing if no push perms

We have seen a couple of problems for users are not in project groups but are in the Inviqa AWS group (such that they have read but not write access to a bucket) where hobo asset tasks just sit there on upload. There has also been an isolated case of this happening on download too.

If there are perm errors then they need to be flagged immediately.

Assets tasks assume you're running from project root

The assets task do not prepend the project root to the asset directory thus are not location independent.

We should probably take this opportunity to also allow configuring the asset path per-project instead of hard coding to tools/assets/development.

Hobo allows invalid hostnames which are later failed by Vagrant

I wanted to create a Magento 2 using hobo + seed, but I get this error when running hobo vm start:

Starting vagrant VM
  Bringing machine 'default' up with 'virtualbox' provider...
  There are errors in the configuration of this machine. Please fix
  the following errors and try again:

  vm:
  * The hostname set for the VM should only contain letters, numbers,
  hyphens or dots. It cannot start with a hyphen or dot.

What I did and what happened:

  • First, I ran hobo seed plant magento2_hobo, which creates magento2_hobo as a folder (you can imagine where this leads to).
  • The above command creates a hobo config file (tools/hobo/config.yaml) which contains :hostname: magento2_hobo.dev. So is the case with the config.vm.hostname config in the resulting Vagrantfile - which is the file that Vagrant checks.
  • The above Vagrantfile config is validated by Vagrant and fails. No underscores allowed.

Maybe such folder names shouldn't be allowed by hobo in the first place.

Cookbooks are vendored in relative directories

Hobo will automatically detect and install cookbook dependencies in Berksfiles throughout the project. It installs them into a local cookbooks directory instead of using the system shelf, and currently this local directory is created relative to the location of the discovered Berksfile.

By default the project Berksfile lives in tools/chef, and so vendored cookbooks will be stored in tools/chef/cookbooks. If a project's site cookbooks also contain a Berksfile (for localised cookbook testing), then Hobo will also discover these and create additional cookbook directories inside each site cookbook. This is not ideal because it is likely that in most cases the project cookbooks will be declaring dependencies on the same cookbook versions as the main project Berksfile, and so there will be unnecessary duplication.

Hobo should identify a central 'shelf' that it will use for every Berksfile in the project.

.bundle directories mess with hobo

/usr/local/var/rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/bundler-1.7.6/lib/bundler/resolver.rb:227:in resolve_for_conflict': Could not find gem 'slop (~> 3.4.7) ruby', which is required by gem 'hobo-inviqa (>= 0) ruby', in any of the sources. (Bundler::VersionConflict)`

.bundle directories cause errors like this except the gem that is "missing" is clearly installed.

This is due to bundler using the .bundle directory to load hobo-inviqa deps. There may be issues where rubygems-bundler is installed and is already loading the .bundle deps but one solution may be to cd to a safe dir (a fresh tmp dir for instance) in order to setup the bundler isolation.

Magento patch functionality has strange errors

  PATCH_SUPEE-1533_EE_1.10.0.x_v1.sh: 14: PATCH_SUPEE-1533_EE_1.10.0.x_v1.sh:   127: not found
  PATCH_SUPEE-1533_EE_1.10.0.x_v1.sh: 14: PATCH_SUPEE-1533_EE_1.10.0.x_v1.sh: 127: not found
  PATCH_SUPEE-1533_EE_1.10.0.x_v1.sh: 25: PATCH_SUPEE-1533_EE_1.10.0.x_v1.sh:   0: not found

I believe it's because type -t is a bashism (the -t specifically) and although the shebang says #!/bin/bash it's manually invoked with sh here: https://github.com/inviqa/hobo-gem/blob/master/lib/hobo/tasks/magento.rb#L179

Out of date composer.phar can cause issues

Hobo tools:composer task does no version check and does not attempt a self-update if an existing composer.phar is detected.

This means that older projects that are returned to get run with ancient versions of composer which can cause problems (in this specific case git zipball url pattern changed thus causing a 404 when installing deps).

Hobo should either do a version check or trigger a self-update when an existing phar is found.

Add support for Composer Github tokens

The problem

When a project has private Git repositories added to composer.json, then it needs a Github token in order to access and download the code. Currently hem vm up fails because of missing token setup.

The solution

hem config command should ask for entering the Github token (just like it's done with AWS keys) and run composer config -g github-oauth.github.com <oauthtoken> after VM start, but before provision.

Conflict with Bundler

When I run hobo seed plant my-super-project, I get following error:
/Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler/definition.rb:271:in rescue in lock': There was an error while trying to write to Gemfile.lock. It is likely that (Bundler::InstallError)
you need to allow write permissions for the file at path:
/Library/Ruby/Gems/2.0.0/gems/hobo-inviqa-0.0.15/Gemfile.lock
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler/definition.rb:245:in lock' from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler/environment.rb:34:in lock'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler/runtime.rb:44:in setup' from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler.rb:129:in setup'
from /Library/Ruby/Gems/2.0.0/gems/hobo-inviqa-0.0.15/lib/hobo/bundler.rb:56:in block in isolate' from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler.rb:245:in block in with_clean_env'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler.rb:232:in with_original_env' from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.6/lib/bundler.rb:238:in with_clean_env'
from /Library/Ruby/Gems/2.0.0/gems/hobo-inviqa-0.0.15/lib/hobo/bundler.rb:41:in isolate' from /Library/Ruby/Gems/2.0.0/gems/hobo-inviqa-0.0.15/bin/hobo:98:in <top (required)>'
from /usr/bin/hobo:23:in load' from /usr/bin/hobo:23:in

'`

System is OS X.
Ruby version ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
Installed gems with version:
aws-sdk (2.1.18, 1.34.1) aws-sdk-core (2.1.18) aws-sdk-resources (2.1.18) bigdecimal (1.2.7, 1.2.0) blockenspiel (0.4.5) bundler (1.10.6, 1.9.5) CFPropertyList (2.3.1, 2.2.8) chunky_png (1.3.4) coderay (1.1.0) compass (1.0.3, 0.12.6) compass-core (1.0.3) compass-import-once (1.0.5) deepstruct (0.0.7) ffi (1.9.10, 1.9.8) foundation (1.0.4) fssm (0.2.10) hashie (3.4.2) highline (1.7.3, 1.6.21) hobo-inviqa (0.0.15) io-console (0.4.2) jmespath (1.0.2) json (1.8.3, 1.7.7) libxml-ruby (2.8.0, 2.6.0) method_source (0.8.2) mini_portile (0.6.2) minitest (5.8.0, 4.3.2) multi_json (1.11.2, 1.11.0) net-scp (1.2.1) net-ssh (2.9.2) net-ssh-simple (1.6.10) nokogiri (1.6.6.2, 1.5.6) power_assert (0.2.4) pry (0.10.1, 0.9.12.6) psych (2.0.15, 2.0.0) rake (10.4.2, 10.1.1, 0.9.6) rake-hooks (1.2.3) rb-fsevent (0.9.6, 0.9.5, 0.9.4) rb-inotify (0.9.5) rdoc (4.2.0, 4.0.0) ruby-progressbar (1.7.5, 1.4.2) sass (3.4.18, 3.4.16, 3.4.13, 3.2.19) sass-globbing (1.1.1) semantic (1.4.1, 1.3.1) slop (4.2.0, 3.4.7) sqlite3 (1.3.10, 1.3.7) teerb (0.0.1) test-unit (3.1.3, 2.0.0.0) thor (0.19.1) uuidtools (2.1.5) zurb-foundation (4.3.2)

Idea : Use host composer or composer cache

Just thinking of ways to speed up composer on our projects and I realised when we do hobo vm up on a new project or hobo vm rebuild we're regenerating the cache and hitting packagist each time.

So just thought I would float the idea of some how retaining or using the host for composer. Any thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.