a9d8d72550 | ||
---|---|---|
app | ||
legacyredirect | ||
.buildpacks | ||
.gitignore | ||
.travis.yml | ||
CODE_OF_CONDUCT.md | ||
Gruntfile.js | ||
LICENSE | ||
Procfile | ||
README.md | ||
contribute.json | ||
knownurls.txt | ||
package.json | ||
requirements.txt | ||
runtime.txt | ||
schema.json | ||
setup.cfg | ||
stackato.yml |
README.md
contribute.json
A JSON schema for open-source project contribution data.
This is currently a proposal and is not yet stable. Suggestions and pull-requests welcome.
This is the current draft. I'm presenting the schema as an example instance using mozilla/bedrock
as the subject. Previous discussion can be found in the comments of the original gist.
{
// required
"name": "Bedrock",
"description": "The app powering (most of) www.mozilla.org.",
"repository": {
"url": "https://github.com/mozilla/bedrock",
"license": "MPL2",
// optional
"type": "git",
"tests": "https://ci.mozilla.org/job/bedrock/",
"clone": "https://github.com/mozilla/bedrock.git"
},
// optional
"participate": {
"home": "https://wiki.mozilla.org/Mozilla.org",
"docs": "http://bedrock.readthedocs.org/",
// optional
"mailing-list": "https://www.mozilla.org/about/forums/#dev-mozilla-org",
"irc": "irc://irc.mozilla.org/#www",
"irc-contacts": [
"pmac",
"jgmize",
"malexis",
"cmore"
],
"chat": {
"url": "irc://irc.mozilla.org/#www",
"contacts": [
"pmac",
"jgmize",
"malexis",
"cmore"
]
}
},
"bugs": {
"list": "https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&product=www.mozilla.org",
"report": "https://bugzilla.mozilla.org/enter_bug.cgi?product=www.mozilla.org&component=Bedrock",
"mentored": "https://bugzilla.mozilla.org/buglist.cgi?f1=bug_mentor&o1=isnotempty&query_format=advanced&bug_status=NEW&product=www.mozilla.org&list_id=10866041"
},
"urls": {
"prod": "https://www.mozilla.org",
"stage": "https://www.allizom.org",
"dev": "https://www-dev.allizom.org",
"demo1": "https://www-demo1.allizom.org"
},
"keywords": [
"python",
"less-css",
"django",
"html5",
"jquery"
]
}
Validation
We're currently using the JSON Schema standard and we publish our schema at schema.json.
You can, for example, use the json-schema-validator
to validate your own contribute.json
against this schema.
Flask app
There's a server-side app that is currently available on https://www.contributejson.org
Running the Flask app locally
# clone from the main repo
git clone https://github.com/mozilla/contribute.json.git
# go into the directory
cd contribute.json
# using virtualenv wrapper, create a new virtual environment for the project.
mkvirtualenv contribute.json
# intall the requirements
pip install -r requirements.txt
# install the npm dependencies
npm install
# generate the CSS files (use `grunt watch` to work on the LESS files)
grunt less
# You can run the app with
DEBUG=true python app
open http://localhost:5000/
NB! Most of the functionality is built as an AngularJS app.
Sentry
To use Sentry you just need to create an environment variable called
SENTRY_DSN
and it will be used.