API: libcrmcluster: New pcmk_get_cluster_layer()
Refactor: various: Use pcmk_get_cluster_layer()
API: libcrmcluster: Deprecate get_cluster_type()
API: libcrmcluster: Deprecate enum cluster_type_e and all its values
Refactor: various: Drop is_corosync_cluster() internally
API: libcrmcluster: Deprecate is_corosync_cluster()
API: libcrmcluster: New pcmk_cluster_t
API: libcrmcluster: Deprecate crm_cluster_t
API: libcrmcluster: New pcmk_cluster_set_destroy_fn()
API: libcrmcluster: New pcmk_cpg_set_deliver_fn()
API: libcrmcluster: New pcmk_cpg_set_confchg_fn()
API: libcrmcluster: Deprecate crm_cluster_s and all its members
API: libcrmcluster: Deprecate crm_join_phase_str()
For 3.0.0 (T793)... For , we can replace all deprecated struct members except and with a member that can be used internally for a new internal struct containing the deprecated members.
Refactor: libcrmcluster: New pcmk__cpg_connect()
API: libcrmcluster: Deprecate cluster_connect_cpg()
Refactor: libcrmcluster: pcmk__corosync_connect() returns standard code
API: libcrmcluster: New pcmk_cluster_connect()
API: libcrmcluster: Deprecate crm_cluster_connect()
Refactor: libcrmcluster: New pcmk__cpg_disconnect()
API: libcrmcluster: Deprecate cluster_disconnect_cpg()
API: libcrmcluster: New pcmk_cluster_disconnect()
API: libcrmcluster: Deprecate crm_cluster_disconnect()
Refactor: libcrmcluster: New pcmk__cluster_num_remote_nodes()
API: libcrmcluster: Deprecate crm_remote_node_cache_size()
Refactor: libcrmcluster: New refresh_remote_nodes()
API: libcrmcluster: Deprecate crm_remote_peer_cache_refresh()
Refactor: libcrmcluster: New pcmk__cluster_lookup_remote_node()
API: libcrmcluster: Deprecate crm_remote_peer_get()
Refactor: libcrmcluster: New pcmk__cluster_forget_remote_node()
API: libcrmcluster: Deprecate crm_remote_peer_cache_remove()
Refactor: libcrmcluster: New pcmk__cluster_is_node_active()
Refactor: libcrmcluster: New pcmk__cluster_num_active_nodes()
API: libcrmcluster: Deprecate crm_is_peer_active()
API: libcrmcluster: Deprecate crm_active_peers()
Refactor: libcrmcluster: crm_reap_dead_member() best practices
Refactor: libcrmcluster: New pcmk__cluster_forget_cluster_node()
API: libcrmcluster: Deprecate reap_crm_member()
Refactor: libcrmcommon: New pcmk__xe_copy_attrs()
API: libcrmcommon: Deprecate copy_in_properties()
Refactor: libcrmcommon: New enum pcmk__xa_flags
Refactor: libcrmcommon: New flags arg for pcmk__xe_copy_attrs()
Refactor: attrd: Drop attrd_copy_xml_attributes()
Refactor: libcrmcommon: New pcmk__xe_set_score()
Refactor: libcrmcommon: New pcmk__xaf_score_update flag
API: libcrmcommon: Deprecate expand_plus_plus()
Refactor: libcrmcommon: Some best practices in pcmk__xml_update()
Refactor: libcrmcommon: pcmk__xe_copy_attrs() checks score_update flag
Refactor: libcrmcommon: flags argument for pcmk__xml_update()
Refactor: libcrmcommon: flags argument for pcmk__xe_update_match()
Doc: libcrmcommon: Mark as_diff arg of pcmk__xml_update() deprecated
Test: cts-cli: Add tests for ++/+= syntax in cibadmin and crm_attribute
Low: libcrmcommon: Ensure crm_schema_init() initializes only once
Test: libcrmcommon: Clean up pcmk__xe_copy_attrs() unit tests
Refactor: libcrmcommon: Return EINVAL from pcmk__xe_copy_attrs()
Refactor: libcrmcommon: pcmk__{cib -> xml}_test_setup_group
Low: libcib: Fix handling of return values in CIB attr update/delete
Test: libcrmcommon: Add more unit tests for pcmk__xe_copy_attrs()
Low: tools: Fix cibadmin sync call return code logic
API: libcib: New cib_score_update cib_call_options value
Test: libcrmcommon: Avoid memory leak in pcmk__xe_set_score() unit tests
Test: libcrmcommon: Check rc in pcmk__xe_set_score() unit tests
Low: tools: Unset crm_attribute promotion_score if attr name is given
Feature: tools: --score option for cibadmin and crm_attribute
Test: cts-cli: Update tests for --score options
Refactor: libcrmcommon: PCMK__{XA -> XE}_CIB_UPDATE_DIFF
Feature: tools: Deprecate score expansion by default in cibadmin
Feature: tools: Deprecate score expansion by default in crm_attribute
From , sbd uses and but only if
From the GitHub discussion:
deprecate (via doxygen comments)
On that note, considering that Corosync has been the only supported cluster type for a long time now, I wonder to what extent this stuff even needs to be public. We can always add public API functions again after branching to 3.0.0. Might even make some naming issues easier in the interim, if we can work with things internally without introducing new public names yet.
: deprecate this name and create an equivalent (the enum value names are fine and do not need to be deprecated)
One of the next things on my agenda is to do mass, quick-and-dirty deprecations -- with public wrapper, no best practices or refactors otherwise, to ensure we get as much deprecated as possible in time.
Fix: libcrmcommon: Avoid use-after-free in mark_xml_changes()
Low: libcrmcommon: Mark parents dirty in pcmk__mark_xml_created()
Test: cts-cli: Update for marking dirty in pcmk__xml_mark_created()
API: libcib: Deprecate `<failed>` element in CIB create reply
Refactor: libcrmcommon: Make pcmk__xe_remove_attr() usable with foreach
Refactor: libcib: Drop update_cib_object()
Test: cts-cli: Update test outputs for later ACL denial detection
Doc: libcrmcommon: Drop duplicate log level doxygen from header file
Refactor: libcrmcommon: New pcmk__output_fencing_params()
Refactor: libcrmcommon: New pcmk__opt_fencing enum value
Refactor: libcrmcommon, fencer: Use pcmk__daemon_metadata() for fencer
Doc: libcrmcommon: Mark pcmk__opt_DAEMON flags as deprecated
Refactor: libpacemaker: New pcmk__list_fencing_params()
API: libpacemaker: New pcmk_list_fencing_params()
Low: schemas: Copy schema in preparation for changes
API: schemas: Allow options in crm_resource output
Test: cts-cli: Add tests for crm_resource --list-options=fencing
Feature: crm_resource: New --list-options=fencing option
API: fencer: Deprecate metadata CLI option
Test: cts-cli: Reorder a couple of crm_attribute --list-options tests