Commit Graph

36 Commits

Author SHA1 Message Date
Sebastian Thiel
5165ff68df chore(wheezy-build): using docker
Allow building all dependencies using docker
2015-04-17 20:57:04 +02:00
Sebastian Thiel
acd42dfccc fix(make): dependencies are now per-program-type
Previously we put cli.py into the common lib folder, which caused the
API to be regenerated and rebuilt whenever we changed code that will
only affect the CLI, causing terrible turnaround times.

Now the dependency is fixed.
2015-04-12 09:55:17 +02:00
Sebastian Thiel
d1c97912cb feat(mkdocs): mkdocs generator works now
It can be selected for each type of program we want to build, and makes
sense for everything that is not a library.

We also tried to unify names and folders a bit more, even though there
certainly is more work to be done to be fully non-redundant.

Fixes #43
2015-03-24 18:11:12 +01:00
Sebastian Thiel
cefd606b53 feat(make): cli depends on API, generically
This allows us to build efficiently. CLI programs can now have their
own cmn.rs implementation, which we can test standalone with
`cargo test`.

The primary makefile currently just explicitly pulls in the type-*.yaml,
one day we could possibly put it into a loop.

Fixes #11
2015-03-24 12:56:24 +01:00
Sebastian Thiel
caaf62e51d chore(suffix):prepare dep generation to use suffix
That way, we can have multiple deps files, one per program 'type'
2015-03-24 11:57:12 +01:00
Sebastian Thiel
be7d8214c1 feat(api): api generation works once again
With the new structure, it should be easy to add CLI programs with
proper dependencies accordingly.
2015-03-24 09:38:14 +01:00
Sebastian Thiel
4bfdc9fd01 chore(publish): make publish
We will now keep marker files to remember which crates we have published
successfully. These files are checked in to make this information
persist.

NOTE: We still don't explicitly exclude pseudo-changes in json files,
which are no real change except for a changed revision number.

Fixes #41
2015-03-23 12:11:18 +01:00
Sebastian Thiel
63997910de fix(makefile): regenerate .api.deps less often
It took too long to do it, so the 'MAKO_LIB_FILES' dependency was
removed. It can be re-added if needed.
2015-03-17 16:32:51 +01:00
Florian Wilkens
876772cf22 fix(Makefile): force python2.7 in virtualenv
force the usage of python2.7 on systems where /usr/bin/python points to python3.x

fixes issue #12
2015-03-15 12:51:19 +01:00
Sebastian Thiel
5fd7cb5114 fix(travis): install virtualenv automatically
The only dependency we really have is python, and wget.
Pip is not needed !
2015-03-14 12:45:32 +01:00
Sebastian Thiel
dd0772f1d7 feat(travis): docs and tests of youtube3 on travis
This might already bring it close to 7 minutes runtime, which seems
like providing us with a buffer big enough for when it is
feature-complete.
2015-03-14 11:52:59 +01:00
Sebastian Thiel
c0a2476058 feat(deps): update-json using discovery API
Instead of depending on the google go client API repository, I now
use the original data source, namely the discovery API.

fixes #5
2015-03-13 17:06:48 +01:00
Sebastian Thiel
97b2649094 fix(make): make 'regen-apis' work
Thanks to changes in mako libraries, it won't work anymore without
the template directory set
2015-03-12 11:21:58 +01:00
Sebastian Thiel
f27fda8f34 feat(gh-pages): new github-pages target
For import of all docs to the github

fixes #1
2015-03-12 10:02:22 +01:00
Sebastian Thiel
0bc6d216c3 chore(docs): generate doc index
It contains links to all generated API docs, in a style similar to the
standard rust API docs. Thank you, shared CSS !
2015-03-12 09:33:55 +01:00
Sebastian Thiel
ff5cbb3bf4 fix(api-versions): ignore beta/alpha,assure latest
There were a few bugs in the generator program, which caused old
versions to be picked up, and alphas/betas
2015-03-10 15:12:26 +01:00
Sebastian Thiel
9377220c59 chore(data-merge): api-list is now in separte file
This file is completely generated, and allows us to easily bring in
new versions after each json update.

To make that work, we simple merge all data handed to mako-render,
inside of it. That way, we can put 'api/list' data in any yaml.
2015-03-10 15:00:43 +01:00
Sebastian Thiel
2d036b6623 feat(all-apis): build all apis, were possible
Now there is a blacklist feature, allowing to list apis we can't yet
handle for whichever reason.
2015-03-10 14:34:26 +01:00
Sebastian Thiel
7b81646f43 chore(make): update-json and all APIs
It's about time we finish up this part, to make it even easier to test
against more APIs, and keep them up-to-date
2015-03-10 10:34:19 +01:00
Sebastian Thiel
874cfb6f68 chore(cargo): cargo calls for any API
That way, it's so much easier to parallelize doc and test generation,
just to be sure it's truly working.
2015-03-10 10:04:47 +01:00
Sebastian Thiel
74aa7bba2d docs(lib): library overview as far as possible
Everything we have, feature wise, is now documented in a first version
at least.

We shall keep this uptodate with what we are implementing, which also
helps figuring out a good api.
2015-03-03 12:53:38 +01:00
Sebastian Thiel
e164cf7366 feat(docs): Traits now show up as part of lib
Previously, they were in an extra, oddly named crate.
Now we just make it a part of our generated codebase.

That way, traits, and common code, shows up as part of the library.
Fair enough.

This also means that the types ar not reusable.
Maybe a mixed-mode can be used if that is desired.
2015-03-03 10:02:40 +01:00
Sebastian Thiel
c1eeee0591 feat(traits): add marker traits to schema types
Based on their involvement in activities.
It nearly works perfectly.
2015-03-03 09:25:42 +01:00
Sebastian Thiel
fc15a7030f feat(license): improved license information
... and readme, and looks of author listing.
Slowly getting into the flow, possibilities seem thrilling.
2015-03-02 15:23:41 +01:00
Sebastian Thiel
3670e4f6c9 feat(mako): LICENSE + README.md
Readme is very initial, but the architecture is set to evolve it to
something no less than beatiful.
2015-03-02 14:58:18 +01:00
Sebastian Thiel
4e5f2c05d9 feat(mako): mako-render generates output dirs
That way, the makefile doesn't need to know that much anymore, and
gets simpler/less verbose.

\# Also
* Added filters for rust doc string
* fixed .PHONY
2015-03-02 13:45:57 +01:00
Sebastian Thiel
e3b6aee6d6 feat(make): apis target - make all apis 2015-03-02 11:56:32 +01:00
Sebastian Thiel
2298601165 feat(mako): can now use custom libraries in pycode
Namespaces can exclusively be used during rendering, which is fine if
you remind yourself of the newline rules.
However, I also need some utiltiies that convert input data. These
are now within their own libraries, which can be used from python blocks
like the ordinary python functions they are.

Quite neat.
In future, most of the functionality will be in separate namespaces,
the top-level will just assemble the main library file, usnig the
provided %defs. That way, the main file is kept clean.
2015-03-02 11:52:15 +01:00
Sebastian Thiel
087a0762ac feat(mako-render): multiple input-outputs per call
That way, we read the data files only once, but produce all the outputs
we need. Together with a powerful makefile, we have a multi-invocation
with proper depedency tracking.
Everything will be regenerated though, even though just a single input
template file changed.

The alternative would be to have one dependency and invocation per
input dependency, but that will read the entire json each time.

Let's see what's faster/more useful during development.
2015-03-01 17:44:02 +01:00
Sebastian Thiel
30041e9c7d feat(mako): api deps generation works
It's very pleasant to use, and worth the slightly greater effort.
2015-03-01 16:28:57 +01:00
Sebastian Thiel
20410adb78 feat(mako): mako autosetup and improved executable
Now we can write mako templates, with a similar feature set as
pyratemp. Except that its syntax is nicer, allows to do everything
and that there is syntax highlight support.

Let's see how it fares
2015-03-01 16:01:46 +01:00
Sebastian Thiel
c0bfeabbc3 feat(pyratemp): successfully generating make deps
After minor modifications to pyratemp, it certainly does the job.

What it **does NOT** do:

* multiple outputs per template/command invocation
* NICE embedding of code (like GSL can)

It will do the job nonetheless, but mako might be worth a look
2015-03-01 15:08:37 +01:00
Sebastian Thiel
e06738a7bd fix(template-engine): removed gsl, added pyratemp
As GSL failed in my first attempt to get the example program going,
it might be better to try something else before too much time is spend.

Fortunately, pyratemp **seems** to be something usable, and even if not,
it might be possible to make it usable as it's just a 'simple'
python script that I might be able to understand, if need be.
2015-03-01 13:24:01 +01:00
Sebastian Thiel
f2ca8c3fb7 fix(make): fixed dependencies
The make deps generator should only care about the shared xml
2015-03-01 11:54:44 +01:00
Sebastian Thiel
0812068c90 feat(gsl): my first gsl program ...
And it crashes on linux and on osx.
What am I doing wrong ?
2015-03-01 11:45:00 +01:00
Sebastian Thiel
0c2f149b1e feat(make): unified make based build system
Added all prerequisite programs in binary for easier use.
Make is now implemented top-level, and is not expected to do too much
work actually. It will, however, keep track of all required
gsl invocation and make sure calls are efficient by not having
to rebuild everything every time. That's what make does, anyway ;)
2015-03-01 11:21:41 +01:00