bugmark / exchange

Bugmark Exchange - Software Issue Marketplace
https://bugmark.github.io/website
Other
13 stars 9 forks source link

Streamline Developer Provisioning #85

Open andyl opened 6 years ago

andyl commented 6 years ago

It it difficult to get a developer started with a local copy of Bugmark Exchange.

Goals:

Approaches:

[ci1] https://circleci.com/blog/how-to-build-immutable-infrastructure-with-packer-and-circleci-workflows/ [lin1] https://www.karlahlers.com/using-vagrant-linode-create-vps-minutes/ [lin2] https://www.linode.com/docs/applications/configuration-management/vagrant-linode-environments/ [lin3] https://github.com/displague/vagrant-linode

andyl commented 6 years ago

I'm considering another approach: distribute the exchange in a docker container. (or series of containers) In the past I was anti-Docker because immature technology, but had another look today and now Docker is looking good. Probably we'd distribute the exchange using Docker-compose, with minimum three containers: 1) the exchange, 2) a postgresql instance, 3) a nats instance.

For this to work, the exchange needs a solid GraphQL layer ( see #87 ). Anyone interested in taking this on?

GeorgLink commented 6 years ago

​I think this can work.

andyl commented 6 years ago

After some study - I think we can containerize the exchange and support our current development practices w/o GraphQL. Stay tuned! :-)

GeorgLink commented 6 years ago

I look forward to your exploration findings :-)

andyl commented 6 years ago

Update: I came to believe that biting the GraphQL bullet now will be most efficient. Have started the implementation. The development sequence is to 1) add GraphQL to the exchange, 2) rewrite the CLI to use GraphQL, 3) rewrite the test_bench UI's to interact via GraphQL, 4) containerize everything. When this is done we can A) write Bugmark bots, webapps and phone apps in any language and B) install a local development environment on mac/linux/windows in less than five minutes and C) delete a lot of old code: RESTFUL API, language bindings, Exchange UI's will all be removed.