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

2018 release strategy #123

Open
jayvdb opened this issue Jul 11, 2018 · 1 comment
Open

2018 release strategy #123

jayvdb opened this issue Jul 11, 2018 · 1 comment

Comments

@jayvdb
Copy link
Member

jayvdb commented Jul 11, 2018

cliffs notes: The path to getting back to continuous delivery:

  1. all repos use git+...master for each coala dependency
  2. do a manual pre-release of each repo, to get the ball rolling again.
  3. the docker repo is fixed again & CD scripts rewritten
  4. all repos do an automated pre-release using CD, starting with libraries and then core and bears and quickstart, and then the docker
  5. all repos do a real release, starting with libraries and then core and bears and quickstart, and then the docker

Backstory:

There hasnt been a release of coala since https://github.com/coala/coala/releases/tag/0.11.0 May 2017.

We discontinued use of rultor in very late 2017 / very early 2018, which stopped our continuous deployment of pre-releases. Manual pre-releases didnt start happening.

coala/coala#5157 is about creating a 0.12 release, which is milestone https://github.com/coala/coala/milestone/16 , but that didnt quite happen and lost momentum. (but see below; it had unsolvable blockers)

Then at some point in early 2018, the core and bears repositories got out of sync ; bears stopped working on the master of core.

In addition, core rather urgently needs the most recent fixes in https://gitlab.com/coala/package_manager , due to critical issue coala/coala#3983 for 0.12 . package_manager got a bit stuck due to legal paperwork required to relicense it from APGL to MIT.

0.11 wasnt widely adopted because of that bug, so some systems are still using 0.10 , or are doing dodgy workarounds (like our own webservices , which isnt on continuous delivery because of this bug and we're checking in the sqlite database manually).

And in addition coala-quickstart needs to sit on top of coala & coala-bears, the docker script is not ready for a release (broken by upstream, and new bears not added).

As many repos need to be co-ordinated to do CD, and we suck at merging an identical script in every repo (scale problems), let alone keeping CD systems of every repo using similar scripts with frequently improvements to the CD system, the options (or path) were:

  1. mobanise everything #117 - mobanise the CD, and everything else, or
  2. build a tool which does the CD, and do releases of that tool, which all repos get automatically upgrades of
  3. build an external system (like rultor) which does the CD.

Step 2 becomes incredibly complicated when the CD system needs to update the CI scripts which kick of the CD. Hence either option 1 or option 3 is still needed to effectively do option 2.

Suggested path is do them in order.

Option 1 allows flexible and incremental delivery of new stuff to the repos.

Option 2 can create a tool using the stuff built in Option 1.

Option 3 can run the tool created in Option 2.

@jayvdb jayvdb mentioned this issue Jul 11, 2018
4 tasks
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 14, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 14, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 14, 2018
pytest-reqs has problems with VCS requirements and versions.
The simplest solution at the moment is to skip these requirements.

Related to coala/meta#123
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 16, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 16, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 16, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 16, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 17, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 17, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 19, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 19, 2018
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 19, 2018
pytest-reqs has problems with VCS requirements and versions.
The simplest solution at the moment is to skip these requirements.

Related to coala/meta#123
jayvdb added a commit to jayvdb/coala that referenced this issue Jul 28, 2018
setuptools can verify that an appropriate version was
installed from the VCS, when the VCS link provides
a version in the egg name.

Related to coala/meta#123
Naveenaidu pushed a commit to Naveenaidu/coala that referenced this issue Aug 4, 2018
setuptools can verify that an appropriate version was
installed from the VCS, when the VCS link provides
a version in the egg name.

Related to coala/meta#123
Naveenaidu added a commit to Naveenaidu/coala that referenced this issue Aug 4, 2018
# The first commit's message is:

# This is a combination of 12 commits.
# The first commit's message is:
# This is a combination of 5 commits.
# The first commit's message is:
# This is a combination of 2 commits.
# The first commit's message is:

# This is a combination of 3 commits.
# The first commit's message is:
__main__.py: Invokes coala as module

This allow coala to be invoked as a module by
using the -m tag.

Closes coala#5667

# This is the 2nd commit message:

ConfigurationGathering.py: Document functions

Documents get_all_bears and get_filtered_bears
stating their unsorted nature of result.

Closes coala#5654

# This is the 3rd commit message:

Collectors.py: Document functions

Documents collect_bears, collect_bear_by_aspects,
get_all_bears, get_all_bears_names and
collect_all_bears_from_sections stating their
unsorted nature of result.

Closes coala#5654

# This is the 2nd commit message:

languages: Add missing language imports

This adds missing language imports to `__init__.py` of
`languages`.

# This is the 2nd commit message:

aspects: Default languages=all when using aspects

This ensures that there is no need to pass `languages` argument
for bears supporting all languages by using a tuple containing
all language instances as default for bears when they are run
via aspects or both aspects and settings.

Closes coala#5655

# This is the 3rd commit message:

coalaTest: Remove unnecessary second patch

This may have been necessary when autocompletion
was first added, but it is not needed any longer,
and the function being patches needs to be
removed.

Closes coala#5671
Related to coala#5664

# This is the 4th commit message:

DefaultArgParser: Restructure argcomplete support

Use a global symbol for the import, to avoid
multiple invocations of `import` and so that
the optional import can be tested, adding
coverage of that scenario using a mock import.

Also avoid the lambda in order to have coverage
of that line.

Delay loading of coalib.collecting.Collectors
as default_arg_parser is called from setup.py,
and coala-utils may not be installed yet.

Add test cases which exercise the possibilities
of unavailable imports.

Related to coala#4166
Related to coala#5664

# This is the 5th commit message:

Constants: Move USER_DATA_DIR to CachingUtilities

USER_DATA_DIR depends on library appdirs, which must not be
imported during argument parsing otherwise the manpage builder
can not load the argparser during setup.

It is only used from CachingUtilities, so it has been moved
there.
However for backwards compatibility, CachingUtilities sets
USER_DATA_DIR when it loads.

Fixes coala#5664

# This is the 2nd commit message:

Debug_bears.rst: Add Debugger Settings docs

Related to coala#1101

# This is the 3rd commit message:

VisualBasic: Add `max_line_length`

Some langauges have language specific line length restriction.
This adds `max_line_length` restriction for VB.

# This is the 4th commit message:

setup.py: Sync

# This is the 5th commit message:

.circleci/: Install test-requirements.txt first

test-requirements.txt contains overrides needed to ensure
pip installs suitable versions of dependencies, especially
of pip.

Also move pytest before installing dependencies of coala-ci.

# This is the 6th commit message:

requirements.txt: Add versions to VCS egg names

setuptools can verify that an appropriate version was
installed from the VCS, when the VCS link provides
a version in the egg name.

Related to coala/meta#123

# This is the 7th commit message:

setup.cfg: Use template

Also use template for tests/conftest.py

# This is the 8th commit message:

Meta-review.rst: Add meta-review docs

Closes coala#5513

# This is the 9th commit message:

CacheUtilities.py: Remove unused variables

Closes coala#5642

# This is the 10th commit message:

.coafile: Modify circleci config file location

This fixes the location and changes it from
circle.yml to ./.circleci/config.yml.

Closes coala#5375

# This is the 11th commit message:

Bear: Remove debugger from init

Fix the API breakage problem because of
`debugger` flag in bear base class.

Related to coala#5676

# This is the 12th commit message:

LocalBearTestHelper: Modify for `aspects` testing

This modifies `LocalBearTestHelper` to make it compatible
for testing `aspects` in coala-bears.

Closes coala#5637

# This is the 2nd commit message:

Added __main__.py, so that the package coalib.py
can be started from that file
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The default `install:` phase of Travis CI does
`pip install -r requirements.txt`, which was
duplicated by the custom `before_script:` block.

Place `coala-bears` at the top of requirements.txt
to ensure that its pins are respected.

Closes coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The default `install:` phase of Travis CI does
`pip install -r requirements.txt`, which was
duplicated by the custom `before_script:` block.

Place `coala-bears` at the top of requirements.txt
to ensure that its pins are respected.

Closes coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
coala-bears master does not support Python 3.7 yet
due to a bear which does compile on Python 3.7 yet.

Related to coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The Dockerfile automatically started using Python 3.7
when Alpine starting using that has its default python
image.

coala-bears master does not support Python 3.7 yet.

Also a new bear depends on libbrotli, which requires
stdc++.

Related to coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The Dockerfile automatically started using Python 3.7
when Alpine starting using that has its default python
image.

coala-bears master does not support Python 3.7 yet.

Also a new bear depends on libbrotli, which requires
stdc++.

Related to coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The Dockerfile automatically started using Python 3.7
when Alpine starting using that has its default python
image.

coala-bears master does not support Python 3.7 yet.

Also a new bear depends on libbrotli, which requires
stdc++.

Related to coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The Dockerfile automatically started using Python 3.7
when Alpine starting using that has its default python
image.

coala-bears master does not support Python 3.7 yet.

Also a new bear depends on brotli.

Related to coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The Dockerfile automatically started using Python 3.7
when Alpine starting using that has its default python
image.

coala-bears master does not support Python 3.7 yet.

Also a new bear depends on brotli.

Related to coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The Dockerfile automatically started using Python 3.7
when Alpine starting using that has its default python
image.

coala-bears master does not support Python 3.7 yet.

Also a new bear depends on brotli.

Related to coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The default `install:` phase of Travis CI does
`pip install -r requirements.txt`, which was
duplicated by the custom `before_script:` block.

Place `coala-bears` at the top of requirements.txt
to ensure that its pins are respected.

Closes coala#496
Related to coala/meta#123
jayvdb added a commit to jayvdb/corobo that referenced this issue Aug 13, 2018
The default `install:` phase of Travis CI does
`pip install -r requirements.txt`, which was
duplicated by the custom `before_script:` block.

Place `coala-bears` at the top of requirements.txt
to ensure that its pins are respected, and use
coala bears master.

Remove hack for GitCommitBear which is no longer
necessary.

Closes coala#496
Related to coala/meta#123
@jayvdb
Copy link
Member Author

jayvdb commented Feb 6, 2019

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

No branches or pull requests

1 participant