Giter VIP home page Giter VIP logo

chaki's Introduction

chaki

Description

Install project dependencies from Chaki repository "http://chaki.io/packages/"

Usage

  • cd to project root with app.json and run chaki install
  • specify app root chaki install --app /path/to/app/

Testing

git clone [email protected]:starsinmypockets/chaki-test-app.git /path/to/chaki/test/testApp
/path/to/chaki/nodeunit test

chaki's People

Contributors

starsinmypockets avatar themightychris avatar

Stargazers

 avatar  avatar  avatar

Watchers

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

chaki's Issues

use strip-comments for comment stripping

Chaki is pulling in strip-comments but not using it, and is instead still using a regexp for stripping comments before parsing app.json. Some versions of sencha/cmd generate an app.json that also contains some inline (// ...) comments that chaki chokes on currently.

Switch to using strip-comments instead of the homebrew regexp and verify that lines commented out with // get stripped before parsing

Error on package deletion

Deleting a package causes a missing template error:

Unhandled Exception: Exception

Message

Could not find template match for "packageDeleted.tpl", checked paths:

html-templates/packages/jarvus-ext-records-tree/delete/packageDeleted.tpl
html-templates/packages/jarvus-ext-records-tree/packageDeleted.tpl
html-templates/packages/packageDeleted.tpl
html-templates/packageDeleted.tpl

LINT source code

Validate all the source code with a linter such that things like this extraneous semicolon leaking globals vars gets eliminated: https://github.com/JarvusInnovations/chaki/blob/master/chaki.js#L9

All the internal functions at the bottom being assigned to undefined variables need to be fixed too. My preference is to just use normal function declarations for those (e.g. function _internalFunction() {}). There is no benefit here to using function expressions over declarations, but the expressions open up the risk of race conditions because their function bodies don't get hoisted to the top of the script like you're probably expecting. See https://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/

Hook into app build process

When running chaki install on an app, add a target hook into the app's build.xml to have it check for package updates or missing packages before each build

test

Hello all - just testing this works

Auto-select branch based on app's framework

when grabbing a repo, chaki should look at all the available remote branches and if a framework and/or version-specific branch is available clone that instead of master

For example, if an app is touch 2.4.1.527, chaki would pick the first branch found of:

  • touch/2.4.1.527
  • touch/2.4.1
  • touch/2.4
  • touch/2
  • touch
  • master

Install single app - confirm assumptions and implement

I'm guessing the behavior here is to check the chaki.io api for the package and then download as normal. to the current project, or the --app specified project.

Should we add --save flag to add to project's app.json?

Send hash of app id in header when fetching package details from chaki.io

app.json contains a randomly generated GUID that's unique to each app. When making the GET request against chaki.io before grabbing a dependent package, pass a SHA1 hash of the GUID in a header somewhere. Might make sense to put that in the User-Agent header.

We will use this header server-side to identify how many distinct applications have pulled each package and provide popularity statistics.

Review package dependencies

nodegit was left in package.json and doesn't appear to be needed, and i found that some required packages weren't present. Please audit every library that is required in the app and ensure package.json's dependency list is up to date and have appropriate version restrictions

Recursively resolve dependencies

The package data returned from chaki.io includes each packages sub-dependencies, crawl through all these recursively to build a complete list of packages before cloning

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.