Skip to content

Commit

Permalink
Merge pull request #2 from andymckay/more-push-detail
Browse files Browse the repository at this point in the history
more push detail
  • Loading branch information
Andy McKay committed Sep 17, 2015
2 parents 57e553c + 0dd6cf5 commit de0cdde
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 3 deletions.
4 changes: 4 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,3 +294,7 @@

# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False

linkcheck_ignore = [
'https://www.google.com/calendar.*',
]
2 changes: 2 additions & 0 deletions docs/projects/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ Contents:

amo-v3.rst
go-faster.rst
js-validator.rst
signing.rst
submission-api.rst
web-extensions-api.rst
6 changes: 6 additions & 0 deletions docs/projects/js-validator.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
JS Validator
============

The JS Validator allows the validation to be done in JavaScript. The goal is to run it within Firefox and on the server using the same validator code.

Repository: `addons-validator <https://github.com/mozilla/addons-validator>`_
68 changes: 68 additions & 0 deletions docs/projects/submission-api.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
Submission API
==============

Currently there is no API to submit new add-ons or add in new versions.

API requirements
----------------

Main goals:
* Create an add-on and create a new version through APIs
* Ability to poll an API for status
* (optional) Ability to receive notification when complete
* Ability to access signed file, if signing completes

All the standard API stuff:
* Appropriate auth (no need for anonymous)
* Clear API versioning
* REST and JSON
* Accepts form data
* Clear errors
* Fast
* Well documented
* No surprises

Scope
-----

We need to focus on the submission flow to assist the signing queue. The AMO api
can theoretically covers everything in the developer hub, e.g.: validation, editing
etc.

Until we have a clearer idea of the rewrite and back-end we should probably
think about it more.

Examples
--------

Create addon by a POST with file::

curl -H "Auth-Token: ...." --file some.v0.xpi http://a.m.o/api/v3/addon/

Poll for status::

curl -H "Auth-Token: ...." http://a.m.o/api/v3/status/some-addon/

Upload new version with file::

curl -X POST -H "Auth-Token: ...." --file some.v1.xpi http://a.m.o/api/v3/version/some-addon/

Note: Decent URLs are hard.

Key clients
-----------

We are going to have some key clients that we are needing to target for this API. For example:

* TravisCI: each time a build passes, upload a new version of the add-on
* cURL: it should be possible to do an upload, with something as simple as cURL (ideally we won't need to write a full client library like npm or setuptools)
* (optional) Firefox Developer tools: enuf' said

Rewrite
-------

We need to rewrite the back-end and we'll be proceeding with that in amo-v3. The
API interface *should not change*, it should remain consistent as much as possible.

By having a consistent API we can swap out the back end as the newer one becomes
available.
21 changes: 18 additions & 3 deletions docs/server/push-duty.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,25 @@ The pushing of the server rotates each week to another developer. Current rotati
* kumar
* magopian
* muffinresearch
* nolski
* tofumatt

Check out the `Add-ons calendar <https://www.google.com/calendar/embed?src=mozilla.com_lr5jsh38i6dmr72uu4d1nv7dcc%40group.calendar.google.com>`_ for a list of events.

Before the push
---------------

The code that will go in production on thursday is tagged on tuesday. It's
usually the master branch that is tagged::
Tag the repos
+++++++++++++

The code that will go in production on Thursday is tagged on Tuesday. The
following repositories are tagged:

* `olympia <https://github.com/mozilla/olympia/>`_

Tags are of the format: YYYY.MM.DD

It's usually the master branch that is tagged::

$ git checkout master
$ git pull
Expand All @@ -37,14 +49,17 @@ You can use this handy template:

.. literalinclude:: /server/push_etherpad.tpl

Push to stage
+++++++++++++

Once the tag is done, it needs to be pushed to the staging server, using the
ops jenkins: click on "build with parameters", and enter the tag (eg
2015.09.10). Jason can help with that if needed.

Push
----

The tag is pushed to production by Jason, once approved by Krupa, on thursdays.
The tag is pushed to production by Jason, once approved by Krupa, on Thursdays.
It is the responsibility of the push hero to follow-up with Krupa and Jason,
and be around during the push for any unexpected issues.

Expand Down

0 comments on commit de0cdde

Please sign in to comment.