Commit Graph

562 Commits

Author SHA1 Message Date
Waldir Pimenta
f9834c4bc4
README: update installation instructions
- Add link to PyPI, which was overlooked in 1c14b8a22f
- Add link to Homebrew and remove the assertion that it's only for macOS
2021-01-13 14:54:46 +00:00
Michael Haggerty
55fa079e54
Merge pull request #180 from DilumAluthge/dpa/readme-homebrew
README: mention Homebrew as a possible installation method on macOS
2021-01-13 12:59:41 +01:00
Dilum Aluthge
d9a654c656
README: mention Homebrew as a possible installation method on macOS 2021-01-12 17:22:07 -05:00
Michael Haggerty
78a6709de7
Merge pull request #179 from timgates42/bugfix_typo_octopus
docs: fix simple typo, octipus -> octopus
2020-12-29 08:11:57 +01:00
Tim Gates
e8cbb85825
docs: fix simple typo, octipus -> octopus
There is a small typo in TODO.md.

Should read `octopus` rather than `octipus`.
2020-12-25 09:20:35 +11:00
Michael Haggerty
d1e8f36caf
Merge pull request #178 from jdufresne/new-pythons
Add trove classifiers for Python 3.8 and 3.9
2020-11-30 17:13:01 +01:00
Michael Haggerty
2b63403b9c
Merge pull request #176 from mhagger/handle-no-completions
If `completionsdir` is not configured, just skip installing completions
2020-11-30 17:10:43 +01:00
Jon Dufresne
cbf6e08b5f Add trove classifiers for Python 3.8 and 3.9
Python 3.9 was released November 28, 2020.

https://docs.python.org/dev/whatsnew/3.9.html
2020-11-28 05:19:58 -08:00
Michael Haggerty
e958f43ba6 Fix what is apparently a python3ism 2020-10-27 14:59:11 +01:00
Michael Haggerty
ae96ba61b3 If completionsdir is not configured, just skip installing completions
This was failing for some people who didn't have `bash-completion`
installed.
2020-10-27 14:39:33 +01:00
Michael Haggerty
3c5ab35445
Merge pull request #175 from pabs3/makefile
Move Makefile to the talk directory
2020-10-27 14:29:52 +01:00
Michael Haggerty
6e39224637
Merge pull request #174 from pabs3/https
Update links from http to https
2020-10-27 14:28:26 +01:00
Paul Wise
5f84eaf168
Add a clean target to the talk Makefile
So that it is easier to force a rebuild of the talk HTML.
2020-10-26 07:02:22 +08:00
Paul Wise
5c1b6f1552
Move Makefile to the talk directory
It is no longer needed outside this directory
since it has mostly been replaced by setup.py.

Always build the talk HTML, now that the Makefile is in a subdir,
since subdir builds only happen when explicitly requested.

Update the documentation to match the new build setup.
2020-10-26 06:59:42 +08:00
Paul Wise
b70eacc3d9
Update links from http to https
Reduces the chance of network attackers modifying the HTML.

Don't modify the embedded copy of the docutils small-white theme,
since rebuilding the talk HTML will also revert the changes,
if the theme is not yet present on disk.

Suggested-by: check-all-the-things
2020-10-25 16:12:17 +08:00
Michael Haggerty
fd3dbfc431
Merge pull request #173 from pabs3/description
Synchronise description from the README to setup.py
2020-10-22 16:24:24 +02:00
Paul Wise
b7ae8020f8
Synchronise description from the README to setup.py 2020-10-08 12:59:22 +08:00
Michael Haggerty
0c1c05f631
Merge pull request #169 from mhagger/polymorphic-frontiers
Make the `MergeFrontier` class polymorphic
2020-09-26 10:40:05 +02:00
Michael Haggerty
d5d18a6c0d ManualMergeFrontier: new MergeFrontier class to implement --manual
Rip some code out of `BlockwiseMergeFrontier` that used to handle
`--manual`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
6b723e4d8f Block.auto_fill(): inline method into BlockwiseMergeFrontier.auto_expand()
It still has to consider manual merges though.
2020-09-20 16:10:02 +02:00
Michael Haggerty
07a670099a map_frontier(): move method from Block to MergeState 2020-09-20 16:10:02 +02:00
Michael Haggerty
12ddea036d FullMergeFrontier: new class for handling goal "full"
Add a second concrete implementation of `MergeFrontier`, and use it
for goal "full". The interface still isn't entirely nailed down but it
works.
2020-09-20 16:10:02 +02:00
Michael Haggerty
f90f22954c MergeState.auto_complete_frontier(): always call save()
Always call `save()` after `frontier.auto_expand()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
ebc97ef497 Move some code from try to else blocks 2020-09-20 16:10:02 +02:00
Michael Haggerty
3493587767 Block.auto_fill_micromerge(): allow (i1, i2) to be specified 2020-09-20 16:10:02 +02:00
Michael Haggerty
e2d741fcad BlockwiseMergeFrontier.auto_fill(): inline into initiate_merge()
This also means that it is easier to regenerate the merge frontier
exactly when necessary, so do so.
2020-09-20 16:10:02 +02:00
Michael Haggerty
940f9ae658 BlockwiseMergeFrontier.auto_fill(): iterate rather than recurse
Because `BlockwiseMergeFrontier.auto_fill()` always processed blocks
from the front (i.e., left side) of the list of blocks, the old code
never in fact had to iterate over the "left" side of the partition. So
change it to iterate over the blocks in order rather than to recurse.
2020-09-20 16:10:02 +02:00
Michael Haggerty
1acdd1d8f7 BlockwiseMergeFrontier.initiate_merge(): call auto_fill() internally
Change `BlockwiseMergeFrontier.initiate_merge` to auto_fill() the
initial blocks (including any necessary refinements due to unexpected
failures) and also to return a fresh merge_frontier that really
reflects the state after autofilling.
2020-09-20 16:10:02 +02:00
Michael Haggerty
5bd6ba79c2 BlockwiseMergeFrontier.auto_fill(): make work for an empty frontier
If the frontier starts out empty, just return False. Then we can
remove the analogous check from `Block.auto_fill()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
f7d0c50b5a BlockwiseMergeFrontier.auto_fill(): fix the choice of best_block
Since the blocks always go back to the upper-left corner,
`block.get_original_indexes(0, 0)` is always referring to the same
merge, so the `max` wasn't doing anything. Actually, it was always
picking the first block, which is what we happen to want, but that is
because of the order that blocks are iterated over and implementation
details of `max`. So fix the logic so that the code works as intended.
2020-09-20 16:10:02 +02:00
Michael Haggerty
f7c792c05c BlockwiseMergeFrontier.partition(): convert into an iterator
And don't include zero-length or zero-width frontiers in the output.
2020-09-20 16:10:02 +02:00
Michael Haggerty
898584cda3 BlockwiseMergeFrontier.__bool__(): fix docstring 2020-09-20 16:10:02 +02:00
Michael Haggerty
52f168df6a Rename BlockwiseMergeFrontier.compute_by_bisection() to initiate_merge() 2020-09-20 16:10:02 +02:00
Michael Haggerty
1c5744cb1d BlockwiseMergeFrontier.incorporate_merge(): new method
...extracted from `MergeState.incorporate_user_merge()`. Other
MergeFrontier classes will have to implement this differently.
2020-09-20 16:10:02 +02:00
Michael Haggerty
d62db71a2b MergeState.map_frontier(): new method
For now it always returns a `BlockwiseMergeFrontier`, but in the
future the return value will depend on the type of merge being done.
2020-09-20 16:10:02 +02:00
Michael Haggerty
ac699fa474 BlockwiseMergeFrontier: new class derived from MergeFrontier
As the next step towards making `MergeFrontier` polymorphic, move all
of the methods having to do with blockwise filling of an incremental
merge into a derived class, `BlockwiseMergeFrontier`. Change all
callers to use the derived class for now.
2020-09-20 16:10:02 +02:00
Michael Haggerty
2969b261ca Block.auto_outline_frontier(): inline method
Inline `Block.auto_outline_frontier()` into
`Block.auto_expand_frontier()`, and rename the latter to
`auto_fill()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
2144bdb14c MergeFrontier.auto_outline(): use iteration, not recursion
The recursion could, theoretically, overflow the stack.
2020-09-20 16:10:02 +02:00
Michael Haggerty
d1fafa83e5 MergeFrontier.auto_fill(): new method
Extract a new method, `MergeFrontier.auto_fill()`, from
`Block.auto_outline_frontier()`. (The latter might soon be
disappearing entirely.)

To support more than one strategy for completing a merge, it will be
helpful to make `MergeFrontier` take over more of the smarts. Then it
can be made polymorphic.
2020-09-20 16:10:02 +02:00
Michael Haggerty
88cf1c636f MergeFrontier.iter_boundary_blocks(): new method
Extracted from `iter_blocker_blocks()`.
2020-09-20 16:10:02 +02:00
Michael Haggerty
c3fbcae3c1 Bump the version number for release 1.2.0 2020-09-20 15:28:25 +02:00
Michael Haggerty
f10a7d71ae
Merge pull request #168 from mhagger/markdown
Convert the README and TODO to markdown
2020-09-19 18:18:16 +02:00
Michael Haggerty
c83841a198 Convert the TODO to markdown 2020-09-19 18:16:10 +02:00
Michael Haggerty
6c33bc543b Convert the README to markdown 2020-09-19 18:16:10 +02:00
Michael Haggerty
4554378dff
Merge pull request #167 from mhagger/tests-plus-plus
Add some more tests, and improve the existing ones
2020-09-19 16:53:39 +02:00
Michael Haggerty
7a2e5c314e MANIFEST.in: add t/test-really-conflicted 2020-09-19 16:40:25 +02:00
Michael Haggerty
f5b7142e5f tests: delete some obsolete comments and tidy up set commands 2020-09-19 16:32:42 +02:00
Michael Haggerty
aac5e99c8d test-conflicted: test conflicts at various places 2020-09-19 16:27:34 +02:00
Michael Haggerty
998c6aaff8 test-flip-flop: exhaustively test more variations on the theme 2020-09-19 16:27:31 +02:00
Michael Haggerty
275657a2bd If micromerge 1-1 in a block unexpectedly fails, record it as a blocker 2020-09-19 15:11:55 +02:00