The rules to determine if the release version identifier X.Y is raised or not, are as follows:

  • the major number X increments whenever a backwards incompatible change is made
  • the minor number Y increments whenever any other change is made; it is reset to 0 when major number increments
  • either the major number X or the minor number Y increases at most once per release

Interface Version Matrix

This table shows all interface versions to date and the particular monotone releases which implemented them:

interface versions 0.0 0.1 0.2 1.0 1.1 2.0 2.1 2.2 3.0 3.1 4.0 4.1 4.3 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 12.1 13.0 13.1
monotone releases 0.17 0.18 0.19 0.20-0.23 0.24-0.25 0.26 0.27 0.28 0.29 0.30 0.31-0.33 0.34 0.35 0.36 0.37-0.38 0.39-0.40 0.41 0.42-0.43 0.44 0.45 0.46-0.47 0.48-0.991 0.99.1, 1.0 1.1

The following table gives you an overview at which time certain functionalities have been added or altered in monotone's automation interface:

interface versions 0.0 0.1 0.2 1.0 1.1 2.0 2.1 2.2 3.0 3.1 4.0 4.1 4.3 5.0 6.0 7.0 2 8.0 9.0 10.0 11.0 12.0 12.1 13.0 3 13.1
ancestors A
ancestry_difference A
branches A
cert A
certs A C
checkout A
children A
common_ancestors A
content_diff B
descendents A
drop_attribute A
drop_db_variables A
drop_public_key A
erase_ancestors A
erase_descendants A
file_merge A
generate_key C C C
get_attributes A C C B
get_base_revision_id A
get_content_changed A
get_corresponding_path A
get_current_revision A
get_current_revision_id A
get_db_variables A C
get_extended_manifest_of A
get_file A
get_file_of A
get_file_size A
get_manifest_of A
get_option A
get_public_key A
get_revision A C
get_workspace_root A
graph A
heads A
identify A
interface_version A
inventory A C C C
keys A C C
leaves A
log A
lua A
packet_for_fdata A
packet_for_fdelta A
packet_for_rdata A
packets_for_certs A
parents A
pull A C
push A C
put_file A
put_public_key A
put_revision A
read_packets A
remote A
remote_stdio A
roots A
select A
set_attribute A
set_db_variable A C
show_conflicts A C
stdio A B C
sync A C
tags A C
toposort A
update A

Legend

A = Addition, B = Backwards-compatible change, C = Backwards-incompatible change

Notes

1 monotone 0.99 wrongly reports 12.1 as interface version, while it should report 13.0, just as 0.99.1 where this issue has been fixed.

2 While the format of several command has not been changed between 0.39 and 0.40, the output of the commands (f.e. automate inventory) may differ because the interpretation of the --depth option changed in 0.40 (previously: 0 = the node + its immediate children, now: 0 = only this node).

3 After the options rework in 0.99 many automate commands gained additional options which allow the negation of flags just like their non-automate counterparts, which aren't all accounted here. Furthermore some more "exotic" options are no longer part of the public API and have thus been hidden, like --min-netsync-version and --max-netsync-version. Netsync automate commands accept just as their non-automate counterparts the new URI syntax and issue a warning if the old calling syntax (separate server and branch include / exclude pattern) is used.

If you like to get more information about certain command / format changes, please consult monotone's Automation documentation.