Code Monkey home page Code Monkey logo

jonah's People

Contributors

chris-elgato avatar winsmith avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

winsmith

jonah's Issues

Improve Help output

When you run the Jonah command without any arguments, it prints out a list of commands. These should be improved:

  • a sensible order instead of being ordered alphabetically
  • grouped by intent (development, deployment, etc)

Example:

Project Management
initialize Initialize a new jonah project in the current directory
build Build the image.

Development
cleanbuild Build the image from scratch instead of relying on cached layers.
develop Run dev server
reload Reload Django process on dev server
shell Get a shell on the dev server
stop Stop a previously running development server
test Build and run Unit Tests
compilemessages Compile internationalization Strings

Deployment
tag Add git and docker tags
stage Deploy to staging
deploy Deploy to production. This command will ask you for a tag before pushing anything to the server
direct_deploy Deploy as tag "master" on production server, without warning and without asking for confirmation

Administration
clean Delete exited containers, dangling images, and volumes. Good to clean up hard drive space.

Provide an Example Project

Right now it's pretty hard to explain to new users how the project layout should be. An example project would help here.

Spinup.sh not Executed

In supervisord.conf l5, we try to run /code/deployment/spinup.sh. This results in an error. The line should instead contain /code/jonah/spinup.sh

Unclear error message when creating new project

We had a rare issue where a OSError or FileSystemError occurred during initialize. Right now, we always print out a "the directory already exists" error message when that happens, but obviously this is too course grained. Instead, we should print out the exception message directly.

Improve Supervisord Config

Server 'unix_http_server' running without any HTTP authentication checking

This error message should not occur. In fact, with our config, supervisord's unix_http_server should be completely disabled

Supervisor running as root (no user in config file)

Investigate running supervisor as any other user than root.

Make requirements files optional

Right now, any operation crashes when the following files are not present:

  • python_requirements.txt
  • system_requirements.txt
  • system_initialization.sh

This is contrary to the idea of jonah being easy to install, and the Python idea of DRY. Instead, the system should fall back gracefully if any of the files are not present and just assume they are empty.

Live Display of Docker Output

Right now, capture the output of any Docker command, and display it once it's done running. This is annoying for long-running commands, so we'd like to print that output as it's happening.

Python3 import error

Traceback (most recent call last):
  File "setup.py", line 12, in <module>
    from jonah.version import __version__
  File "/Users/danieljilg/Repositories/jonah/jonah/__init__.py", line 1, in <module>
    from .jonah import Deployer
  File "/Users/danieljilg/Repositories/jonah/jonah/jonah.py", line 10, in <module>
    import version
ImportError: No module named 'version'

Add new 'init' Command

Once we have our example project ( see #1 ), we create an init command that automatically creates a new empty project at a specified location.

Unhelpful error message if Docker is not installed

When Docker is not installed on a machine, jonah initialize complains about not being able to create a directory. This is misleading. Instead, the error message should advise users to install Docker and make sure the docker executable is in the PATH.

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.