Background
Long story short, CPP Driver has had a complicated story of library's naming (omitting lib prefix and .so/.a suffix for brevity):
- DataStax CPP Driver yielded
cassandra.
- ScyllaDB CPP Driver (our fork) yielded
scylla-cpp-driver + a symlink cassandra.
- CPP RS Driver currently builds
scylla_cpp_driver (note the underscores, not hyphens; this is because Cargo normalizes hyphens to underscores and there's no robust workaround for this) and then renames it to scylla-cpp-driver. There's also no longer the symlink cassandra.
Problem
Now the problem is, the rename that is done by replacing underscores with hyphens affects Windows builds (#452).
Solution
I'm considering changing the library's name once again, this time hopefully the last time, to avoid both hyphens and underscores altogether. The name could be scylla (as Rust Driver's crate) or scylladb (the preferred newer naming), for consistence with cassandra.
Doubts
- Is such name change of a library acceptable in the C/C++ libs world?
- Can I do such change without bumping the major? After all, the API/ABI is unaffected, just the build system needs to be migrated.
Optional bonus
Add cassandra symlink back, to make migration from the Apache CPP Driver easier.
Implementation steps
- Change the lib name in the build system to
scylladb (I choose this name).
- Change the
.SONAME to scylladb.1. Let's not leave there the legacy name (libscylla-cpp-driver.so.1)
- Remove the no longer needed copy/rename step from the build system.
- Remember to be very verbose in the release notes about the name change. Warn that build workflows need to be updated.
- Optional: add
cassandra symlink.
Background
Long story short, CPP Driver has had a complicated story of library's naming (omitting
libprefix and.so/.asuffix for brevity):cassandra.scylla-cpp-driver+ a symlinkcassandra.scylla_cpp_driver(note the underscores, not hyphens; this is because Cargo normalizes hyphens to underscores and there's no robust workaround for this) and then renames it toscylla-cpp-driver. There's also no longer the symlinkcassandra.Problem
Now the problem is, the rename that is done by replacing underscores with hyphens affects Windows builds (#452).
Solution
I'm considering changing the library's name once again, this time hopefully the last time, to avoid both hyphens and underscores altogether. The name could be
scylla(as Rust Driver's crate) orscylladb(the preferred newer naming), for consistence withcassandra.Doubts
Optional bonus
Add
cassandrasymlink back, to make migration from the Apache CPP Driver easier.Implementation steps
scylladb(I choose this name)..SONAMEtoscylladb.1. Let's not leave there the legacy name (libscylla-cpp-driver.so.1)cassandrasymlink.