Software stack with latest Scrapy and updated deps.
Branches and tags
The repository includes a set of branches to maintain different stack versions depending on supported Python version and on Scrapy version included in the stack.
branch-1.0- Python 2 branch with Scrapy 1.0
branch-1.1- Python 2 branch with Scrapy 1.1
branch-1.1-py3- Python 3 branch with Scrapy 1.1
We use git tags to pin a stack version and release a stack image to Docker hub.
Versioning is done in the following manner:
major stack versions are marked with
Note: Lack of
-py3suffix means that a stack is built using Python 2.
each published version of the stack is marked with
<scrapy version>[-py3]-<release date>tag
It's highly recommended to use these versions (or major ones above) over others.
1.1-20160429refers to Python 2 based stack released at 2016-04-29 with
1.1-py3-20160804refers to Python 3 based stack released at 2016-08-04 with
latest version of the stack is matched with a branch name without
Warning: please do not use stacks marked as
1.1-py3-latestetc), they reflect latest changes in the corresponding branches and can be unstable.
there can be additional temporary tags to develop new features (you shouldn't rely on it)
1.1-py3-some-featureto develop, test a feature and drop it in the end
All stack versions are listed correspond to a Docker image listed at:
When you're going to release a new version of the stack, you should:
Do not forget to pull latest changes from branch you are going to release::
git pull origin <branch>
git pull origin branch-1.1-py3
Tag it with correct tags (see Versioning section above)::
git tag <tag>
git tag -f 1.1-py3
git tag 1.1-py3-20160804
1.1-py3-latestwill be built automatically from
branch-1.1-py3, no need to define a tag manually.
Push the changes and the tags to the repo::
git push -f origin <branch> <tag1> <tag2>
git push -f origin branch-1.1-py3 1.1-py3 1.1-py3-20160804
Tags should be pushed at the same time when pushing changes (or before it) because otherwise build will not be triggered and developer will be required to find the build in drone and trigger it manually again after tags are pushed.
After release it's necessary to check that tag is updated both in github and hub.docker.com:
Make sure that if you add a new feature to a stack version, it should be added to other stack versions as well to keep consistency. It has nothing to do with backward incompatible changes (for example, Python 3 vs Python 2), but true for all other cases.