kurocha / teapot Goto Github PK
View Code? Open in Web Editor NEWTeapot is a tool for managing complex cross-platform builds.
Teapot is a tool for managing complex cross-platform builds.
@teapot are you an active github user?
sudo gem install teapot
`Building native extensions. This could take a while...
ERROR: Error installing teapot:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.2/ext
/usr/bin/ruby2.3 mkrf_conf.rb
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.2/ext
/usr/bin/ruby2.3 -rubygems /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake RUBYARCHDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.2 RUBYLIBDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.2`
Ubuntu 16.04
Individual packages will be built into discrete directories:
teapot/#{platform}/libpng-#{checksum}/include/png.h
teapot/#{platform}/libpng-#{checksum}/lib/libpng.a
When fetching for a project with very old dependencies, I could only get new dependencies by running clean first.
If a package adds a new dependency, but was otherwise up to date, the new dependency won't be fetched until executing the fetch a 2nd time.
e.g. when updating kurocha/logger@c79aebe it failed to fetch package time
.
I just installed teapot on my Ubuntu 13.10 box with gem install teapot.
Now when I try to follow the docs I get this:
$ teapot create "My Project" https://github.com/dream-framework/ project
/var/lib/gems/1.9.1/gems/teapot-0.9.9/bin/teapot:119:in `ensure in
track_time': undefined method `color' for "Elapsed Time: 0.000s":String
(NoMethodError)
from /var/lib/gems/1.9.1/gems/teapot-0.9.9/bin/teapot:119:in
`track_time'
from /var/lib/gems/1.9.1/gems/teapot-0.9.9/bin/teapot:132:in
`<top (required)>'
from /usr/local/bin/teapot:23:in `load'
from /usr/local/bin/teapot:23:in `<main>'
I have never tried to read or write ruby code before.
In the build gem, the Rule#eql?
needs more specs.
The homepage link is not relevant for this project.
A lot of the internals of teapot directly invoke the git command line which is a pretty basic way of interacting with the repositories. Using Rugged provides structured interface to git. It makes it easier to implement more advanced commands without needing to parse the output of git commands.
The unit-test package was updated, to include streams
as a dependency, but it must be fetched twice to get to a fixed point:
^_^ > teapot fetch --update
Processing clones platforms from http://github.com/kurocha/platforms...
Updating package at path async/teapot/packages/development/platforms...
Processing clones build-files from http://github.com/kurocha/build-files...
Updating package at path async/teapot/packages/development/build-files...
Processing clones unit-test from http://github.com/kurocha/unit-test...
Updating package at path async/teapot/packages/development/unit-test...
Updating lockfile for package unit-test: 73aa1c21098fbe4ee28abf5d9d1fceb77d64ed07...
Processing clones generate-travis from http://github.com/kurocha/generate-travis...
Updating package at path async/teapot/packages/development/generate-travis...
Processing clones generate-project from http://github.com/kurocha/generate-project...
Updating package at path async/teapot/packages/development/generate-project...
Processing clones generate-cpp-class from http://github.com/kurocha/generate-cpp-class...
Updating package at path async/teapot/packages/development/generate-cpp-class...
Processing clones concurrent from http://github.com/kurocha/concurrent...
Updating package at path async/teapot/packages/development/concurrent...
Updating lockfile for package concurrent: d78f217f6f01656a503ebee11bab1e1a6435a3da...
Processing clones time from http://github.com/kurocha/time...
Updating package at path async/teapot/packages/development/time...
Processing clones memory from http://github.com/kurocha/memory...
Updating package at path async/teapot/packages/development/memory...
Processing clones variants from http://github.com/kurocha/variants...
Updating package at path async/teapot/packages/development/variants...
Processing clones platform-darwin-osx from http://github.com/kurocha/platform-darwin-osx...
Updating package at path async/teapot/packages/development/platform-darwin-osx...
Processing clones platform-darwin-ios from http://github.com/kurocha/platform-darwin-ios...
Updating package at path async/teapot/packages/development/platform-darwin-ios...
Processing clones build-clang from http://github.com/kurocha/build-clang...
Updating package at path async/teapot/packages/development/build-clang...
Processing clones build-darwin from http://github.com/kurocha/build-darwin...
Updating package at path async/teapot/packages/development/build-darwin...
Processing clones generate-template from http://github.com/kurocha/generate-template...
Updating package at path async/teapot/packages/development/generate-template...
Completed fetch successfully.
Elapsed Time: 20.654s
^_^ > teapot fetch --update
Processing clones platforms from http://github.com/kurocha/platforms...
Updating package at path async/teapot/packages/development/platforms...
Processing clones build-files from http://github.com/kurocha/build-files...
Updating package at path async/teapot/packages/development/build-files...
Processing clones unit-test from http://github.com/kurocha/unit-test...
Updating package at path async/teapot/packages/development/unit-test...
Processing clones generate-travis from http://github.com/kurocha/generate-travis...
Updating package at path async/teapot/packages/development/generate-travis...
Processing clones generate-project from http://github.com/kurocha/generate-project...
Updating package at path async/teapot/packages/development/generate-project...
Processing clones generate-cpp-class from http://github.com/kurocha/generate-cpp-class...
Updating package at path async/teapot/packages/development/generate-cpp-class...
Processing clones concurrent from http://github.com/kurocha/concurrent...
Updating package at path async/teapot/packages/development/concurrent...
Processing clones time from http://github.com/kurocha/time...
Updating package at path async/teapot/packages/development/time...
Processing clones memory from http://github.com/kurocha/memory...
Updating package at path async/teapot/packages/development/memory...
Processing clones variants from http://github.com/kurocha/variants...
Updating package at path async/teapot/packages/development/variants...
Processing clones platform-darwin-osx from http://github.com/kurocha/platform-darwin-osx...
Updating package at path async/teapot/packages/development/platform-darwin-osx...
Processing clones platform-darwin-ios from http://github.com/kurocha/platform-darwin-ios...
Updating package at path async/teapot/packages/development/platform-darwin-ios...
Processing clones build-clang from http://github.com/kurocha/build-clang...
Updating package at path async/teapot/packages/development/build-clang...
Processing clones build-darwin from http://github.com/kurocha/build-darwin...
Updating package at path async/teapot/packages/development/build-darwin...
Processing clones streams from http://github.com/kurocha/streams...
Cloning package at path async/teapot/packages/development/streams...
Updating lockfile for package streams: 05b488f43f01f4a0c483a89c178f673c8e818e22...
Processing clones generate-template from http://github.com/kurocha/generate-template...
Updating package at path async/teapot/packages/development/generate-template...
Completed fetch successfully.
Elapsed Time: 19.052s
^_^ >
The suggested fix would be to reload the teapot.rb file if the package was updated.
Changing the Generate/Travis
test target name caused the merge to drop the last line.
Teapot has not got a lot of unit tests. While most of the gems which were extracted from teapot are well tested, teapot itself is not. It would be good to add unit tests for all commands. As part of this, Teapot::Controller
was removed and all commands refactored into Samovar::Command
.
Trying to fetch dependencies for a project, teapot keeps looping over dependencies for an hour until git timesout.
Recent timeout:
Package locked to commit: master/4d95d75cbb3df6a20defefcdbdcf8f5f103ba9ea
Updating package at path (filtered)/build-darwin...
Processing clones platform-darwin-osx from https://github.com/kurocha/platform-darwin-osx...
Package locked to commit: master/d352ae8d26a35585bc74b83c5fbace3c317f7bb7
Updating package at path (filtered)/platform-darwin-osx...
Processing clones build-darwin from https://github.com/kurocha/build-darwin...
Package locked to commit: master/4d95d75cbb3df6a20defefcdbdcf8f5f103ba9ea
Updating package at path (filtered)/build-darwin...
Processing clones platform-darwin-osx from https://github.com/kurocha/platform-darwin-osx...
Package locked to commit: master/d352ae8d26a35585bc74b83c5fbace3c317f7bb7
Updating package at path (filtered)/platform-darwin-osx...
Elapsed Time: 5105.826s
curl error: Connection timed out after 2087426 milliseconds
(filtered).gem/ruby/2.2.5/gems/rugged-0.26.0/lib/rugged/repository.rb:215:in `fetch'
(filtered).gem/ruby/2.2.5/gems/rugged-0.26.0/lib/rugged/repository.rb:215:in `fetch'
(filtered).gem/ruby/2.2.5/gems/teapot-2.2.0/lib/teapot/command/fetch.rb:153:in `clone_or_pull_package'
(filtered).gem/ruby/2.2.5/gems/teapot-2.2.0/lib/teapot/command/fetch.rb:198:in `fetch_package'
(filtered).gem/ruby/2.2.5/gems/teapot-2.2.0/lib/teapot/command/fetch.rb:67:in `block in invoke'
(filtered).rubies/ruby-2.2.5/lib/ruby/2.2.0/set.rb:283:in `each_key'
(filtered).rubies/ruby-2.2.5/lib/ruby/2.2.0/set.rb:283:in `each'
(filtered).gem/ruby/2.2.5/gems/teapot-2.2.0/lib/teapot/command/fetch.rb:66:in `invoke'
(filtered).gem/ruby/2.2.5/gems/teapot-2.2.0/lib/teapot/command.rb:112:in `block in invoke'
(filtered).gem/ruby/2.2.5/gems/samovar-1.7.0/lib/samovar/command/track_time.rb:28:in `track_time'
(filtered).gem/ruby/2.2.5/gems/teapot-2.2.0/lib/teapot/command.rb:111:in `invoke'
(filtered).gem/ruby/2.2.5/gems/teapot-2.2.0/bin/teapot:28:in `<top (required)>'
(filtered).gem/ruby/2.2.5/bin/teapot:23:in `load'
(filtered).gem/ruby/2.2.5/bin/teapot:23:in `<top (required)>'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `load'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `kernel_load'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:28:in `run'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/cli.rb:463:in `exec'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/cli.rb:27:in `dispatch'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/cli.rb:18:in `start'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/exe/bundle:30:in `block in <top (required)>'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
(filtered).gem/ruby/2.2.5/gems/bundler-1.17.3/exe/bundle:22:in `<top (required)>'
(filtered).gem/ruby/2.2.5/bin/bundle:23:in `load'
(filtered).gem/ruby/2.2.5/bin/bundle:23:in `<main>'
IF two build rules have the same name, the order will affect which one is selected (first one has priority?).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.