CTO, idea factory, tinkerer, cyclist, hiker, vegetarian, animal lover working remotely from my cottage in Port Stanley.
tforster / joy Goto Github PK
View Code? Open in Web Editor NEWThe Jake and trOY devops-y utility
The Jake and trOY devops-y utility
Apply docker compose
to the dockercompose.yml file in .joy/docker to start, stop and restart a docker stack. Stage specific variables would be extracted from .joy/config.json based on the stage identifier.
joy init --template {template-name}
templates/{template-name}
templates/default
I think stdout
is good for now, perhaps a flag or two down the road to export to a couple basic file types.
Originally posted by @webdivelement in #9
Deploys the current project to the named stage. Variables are retrieved from .joy/config.json based on the stage. The configuration also defines the type of deployment (e.g. S3, Ionic, etc)
That is, without other Joy dependencies so that it can be repurposed into a Lambda function
Apply docker build
to the image defined in .joy/docker and prefixed with name.
e.g. container build -n mysql
applies to .joy/docker/mysql.dockerfile
Thoughts so far:
npx yo
so we don't need to include Yeoman in our base build.This issue is being used to test git-ticket
Executes docker run {image} -d
against the dockerfile prefixed by name. Parameters such as port and volume mappings are obtained from .joy/config.json using the name and stage as reference points.
The C4 architectural model works in a descending hierarchy of context, containers, components and code. Following this we should be able to assign a namespace to a project consisting of multiple repositories where each repository is implementing containers. For a simplified example, a typical web app context would include the web app and the api containers. The api container, would include a NodeJs and MongoDb component.
By defining this relationship is some sort of meta language in config.json (or perhaps one level higher) we can simplify the command processor and developer experience (DX). E.g. If a developer is working in a container with a single component then there should be no need to specify the component in every joy build
command. joy build
would default to the only available component. Similarly we should be able to assign meaningful aliases to components making joy build spongebob
a valid command. There can even be reserved words to facilitate commands like joy build all
that would build all components across all contexts.
The original vision for the generator was to behave more like a transformer. E.g. Given a set of static HTML files and data, transform to the desired output. I realize now that this differs from a static site generator that relies on a lot more custom code.
In all fairness, the transformer would probably only work for simple sites, blogs, one-pagers, etc. But that's the sweet spot I wanted it to fill since those small projects often take up a large amount of time in that they have the same lengthy provisioning phase.
With a site transformer, anyone with basic HTML/CSS chops can whip up a decent looking site. Then, with the aid of a handful of custom HTML elements, data can be used to transform some of the site. The custom elements I had in mind would implement logical branching, looping and content replacement. Looping would work intra and inter page (e.g. create a repeating list inside a page, and create multiple pages).
The transformer would also take care of minification, concatenation, rewriting script references, adding cache busters, etc.
Let's discuss the merits of a transformer vs generator.
Not every project will require every plugin. We need a way to install a minimal set of plugins during init and then add additional plugins, automatically, only when they are first requested by the framework.
There maybe something in NPM that already does this. If not, maybe some interesting hackery of the require pipeline.
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.