Skip to content

Release v0.7.0

Compare
Choose a tag to compare
@phlogistonjohn phlogistonjohn released this 08 Dec 17:30
· 730 commits to master since this release

The maintainers and contributors to go-ceph are pleased to announce the v0.7.0 release. This is another great step towards making it possible to use the power of the Ceph APIs in the Go language.

For this release we'd like to highlight the ability to quickly create thickly provisioned RBD images by using the WriteSame function call. By using WriteSame, the caller can fill an image with zeros without repeated write calls.

As this is a v0.x release we do not guarantee backwards compatibility with previous versions of the code. However, we aim not to disrupt existing consumers of the library and thus make an effort not to immediately implement breaking changes without very good justification. Please see the "Deprecations & Removals" section to get a sense of what you can expect to change in the future and prepare your code ahead of time. You may also want to view "Deprecations & Removals" of previous releases as they are not repeated here.

New Features

  • In the rados package
    • Add GetNamespace implementing rados_ioctx_get_namespace
    • Add constants mapping to those in librados prefixed by LIBRADOS_OP_FLAG
  • In the rbd package
    • Add ListMetadata implementing rbd_metadata_list
    • Add WriteSame implementing rbd_writesame
  • In the cephfs package
    • Add File method Truncate implementing ceph_ftruncate
    • Add Truncate implementing ceph_truncate
  • In the cephfs admin package
    • Add SubVolRmFlags type
    • Add RemoveSubVolumWithFlags function

Deprecations & Removals

As of go-ceph v0.5.0 support for Ceph "luminous" and "mimic" were officially deprecated. With v0.6.0 support for "luminous" was no longer maintained. With this release support for ceph "mimic" for building go-ceph will no longer be maintained. Do note that server-client version compatibility for go-ceph is the same as the native Ceph libraries, as these are what go-ceph builds upon. The above changes only alter what versions of Ceph go-ceph expects to successfully compile with.

In the cephfs admin package, functions for managing subvolumegroup snapshots have been removed. The APIs in ceph that are used to implement these functions were disabled in recent versions of nautilus and octopus. Since these functions were only added in go-ceph v0.6.0, and the cephfs admin api is not yet considered stable, they were removed without first going through a deprecation cycle.

Other

  • Improve function documentation
  • Changes to the CI test matrix
  • CI and workflow automation
  • Replace the use of unsafe.Pointer for callback management
    with C functions to avoid risk of dangling pointers.
  • Simplify the internal logic managing callback IDs
  • Other fixes and improvements