Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design DX for contentascode adoption #15

Open
jmatsushita opened this issue Feb 18, 2016 · 2 comments
Open

Design DX for contentascode adoption #15

jmatsushita opened this issue Feb 18, 2016 · 2 comments

Comments

@jmatsushita
Copy link
Member

Part of #7

My thoughts on this would be to focus on allowing user to start from a project scaffold:

  • a Blog (Jekyll compatible) with added "Contribute to this page" links.
  • a Wiki (Gollum compatible)
  • a Resource website
  • a Software documentation site

We could create repos (contentascode-blog, contentascode-wiki, contentascode-website, contentascode-doc) that are ready to clone with some sensible defaults.

The default pipelines would have a travis.yml that push to a gh-pages branch.

We could also look into Grunt-init or Yeoman Project Scaffolding tools to allow configuration of various options such as:

  • Choice of templating language and other frontend framework choices
  • Choice of integration backend (Jekyll/Metalsmith/...)
  • Choice of a theme (Bootstrap and variants, Foundation, GH Pages themes...)
  • Adoption of metadata schemas (SPAR, Provenance, DigiSec Taxonomy).
  • Configuration of tools like Prose with good usable defaults.
  • Enabling of other CI backends (Gitlab CI, Jenkins, Thoughtworks Go,...)
  • Configuration, integration and deployment (Heroku button style) of micro-services (like commenting, stats,...)

We also need to think about migration and various options to use integrations to facilitate a progressive transition process.

Reference Implementation Matrix

Name Description Repo Editor Generator Build Hosting Services
scaffold-github-pages Fork and play. Github Prose Jekyll Github Pages Github
scaffold-github-jekyll-travis With Jekyll and Travis CI Github Prose Jekyll Travis Github
scaffold-github-metalsmith-travis With Metalsmith and Travis CI Github Prose Metalsmith Travis Github
scaffold-jekyll-jenkins Open souce stack Gitlab Hosted Prose Jekyll Jenkins Self-Hosted
scaffold-metalsmith-gitlabci Open souce stack with metalsmith Gitlab Hosted Prose Jekyll Gitlab CI Self-Hosted
infra-heroku Push to deploy micro-service infra Gitlab Hosted Prose Jekyll Jenkins Heroku Single container
infra-docker Docker single server micro-service infra Multi-container
infra-ansible Distributed micro-service infra Multi-server
@jmatsushita
Copy link
Member Author

This should also grow to include criteria (and later test tools) to determine if an implementation is following the content as code principles.

@jmatsushita
Copy link
Member Author

This repo is currently an implementation of the stack-github-pages approach. Not sure it can be made completely fork and play as it might always require to activate Pages on the github repo.

Moving to the stack-github-jekyll-travis approach will add the following features:

From a DX standpoint, moving to this stack should be as simple as changing branches and merging (and configuring travis). Will open a new issue to track this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant