- Apr 20, 2020
-
-
Georges Racinet authored
Some libraries have to be excluded from the `demandimport` mechanism, because the requests library has conditional imports and checks and them. There wasn't any problem with these in early tests, all conducted in HTTP context: probably gunicorn did an earlier, regular import. But through SSH, which spawns a `hg` subprocess directly, the problem is immediate.
-
- Apr 19, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
Some existing Heptapod instances will benefit from their configuration being compatible with 0.13
-
Georges Racinet authored
Up to now, we didn't have Python requirements instead of those that are precisely provided by the build. This series introduces a dependency onto request.
-
- Mar 10, 2020
-
-
Georges Racinet authored
This implements the `post-receive` hook by a direct HTTP call to the internal API endpoint. For this, two new config parameters in the `heptapod` section are introduced: - gitlab-internal-api-secret-file - gitlab-internal-api-url We're keeping the previous structure, with a `name` that's now almost useless and leads us to the complication of the `_hook_methods` dict. This keeps compatibility for the caller (also part of this package since Heptapod 0.12), allowing us to refactor in a separate step.
-
- Apr 20, 2020
-
-
Georges Racinet authored
The structure of the `phases` transaction attribute has changed. It's now a list of (key, value) pairs instead of a dict, and keys are lazy ranges (`xrange` in Python2) of revision numbers. The new unit test doesn't prove it really works for a given Mercurial version, only a separate run will do that, but it'll help developers work on both versions at once if they need to change the logic.
-
- Mar 27, 2020
-
-
Georges Racinet authored
In Mercurial 5.3, `source` and `base` are single valued, hence just a string, whereas in current default branch, future 5.4, they become lists. We could fix that by version introspection, but in that case, we're rebasing a topic with a single changeset, so that switching to the implicit form, or `rev`, which is already expected to be a list should work for both versions.
-
- Apr 20, 2020
-
-
Georges Racinet authored
-
- Apr 05, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
The content is intended to be identical to 0.12.0, but this will allow us to test scenarios with installation from PyPI and correct specific problems with that.
-
Georges Racinet authored
It'd been simply forgotten. In order to avoid that in case of future changes, we switch to the standard `find_packages()`. This has the side effect of including the various tests packages, but that isn't a problem for so small a project, and it might even be a good thing for repackagers (Linux distributions…) that need to launch the tests.
-
- Mar 30, 2020
-
-
Georges Racinet authored
We've just had a GitLab branch named `topic/something` (with no named branch) on foss.heptapod.net, and it blocked all pushes to the affected project. We should probably just prune it, but I feel like not adding any risk we can avoid these days.
-
- Mar 27, 2020
-
-
Georges Racinet authored
This is a new feature in `hg-evolve` 9.3.0. To clients that don't have the topic extension, topics look like multiple draft heads, and create much confusion.
-
- Apr 05, 2020
-
-
Georges Racinet authored
As reported in heptapod#226, repeatedly importing the same changeset rewrites it several time, which is the very definition of content divergence. With these changes, we avoid re-pulling a changeset that's already present, yet obsolete. In the stacked PR use-case, the end result is that the second topic is orphan, but that's a much more frequent and easier to solve condition. We actually already had something for a similar case in the form of `non_obsolete_revs()`, but at the time the scenario of stacked PRs had been thought of only a posteriori, at the time of writing the docstring for the corresponding `test_already_obsolete()`. We could have thinked a bit more here. In truth `non_obsolete_revs()` is probably useless with our solution which is to take obsolete changesets into account in the initial assessment of the pull to be made, and that reflects with it not filtering anything in our existing tests. Since we are on the eve of a major release, we still keep it out of caution, only adding a direct test to restore coverage
-
- Mar 30, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
This is identical to rc4 for this component, more in phase with package metadata (some of these had been added after the rc4 tag, yet are part of rc4 on PyPI)
-
- Mar 27, 2020
-
-
Georges Racinet authored
-
- Mar 16, 2020
-
-
Georges Racinet authored
also mentioned in the comment that we'll switch later on to a shared secret token.
-
- Mar 26, 2020
-
-
Georges Racinet authored
always feels a bit artificial, but here we go.
-
Georges Racinet authored
Necessary for PyPI, since that's Markdown (requires setuptools>=36.4.0 to add the correct field in PKG-INFO)
-
Georges Racinet authored
-
Georges Racinet authored
and also versioning. The point is to avoid people to believe this is to be used standalone
-
- Mar 25, 2020
-
-
Georges Racinet authored
dev.heptapod.net has become foss.heptapod.net
-
Georges Racinet authored
Included a copy of GPLv2 (although users may choose a later version), added SPDX metadata and missing per-file copyright notices and preambles.
-
Georges Racinet authored
-
- Mar 18, 2020
-
-
Georges Racinet authored
we're indeed doing identical releases in Heptapod components for clarity (at least avoid people thinking there's a typo when just one version would change)
-
Georges Racinet authored
-
- Mar 17, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
-
- Mar 16, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
- Mar 15, 2020
-
-
Georges Racinet authored
This `git.gitlab_mirror()` has become unnecessary. In `test_integration.py`, it's actually cleaner to to import from the test and use the class that we already have on hand.
-
Georges Racinet authored
it just makes more sense that way, we're already subclassing `__init__()` anyway.
-
Georges Racinet authored
We need the mirrorring to find the path to the Git repo of the shared repo. Shares will be useful to avoid concurrency problems in operations occurring on the server, such as merges from the Rails app.
-
Georges Racinet authored
The classmethod works from a path, wheread the instance method takes an existing wrapper, a common use-case in such tests.
-
- Mar 14, 2020
-
-
Georges Racinet authored
It will notably be useful for all cases where the server needs to use a working directory, so that concurrency can be supported.
-