-
Notifications
You must be signed in to change notification settings - Fork 13
Introduce docs from CPP Driver and adjust #357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
61a7435
to
b266a03
Compare
87570af
to
10a19ad
Compare
* ScyllaDB CPP Driver lessons - [part 1](https://university.scylladb.com/courses/using-scylla-drivers/lessons/cpp-driver-part-1/) | ||
and [part 2](https://university.scylladb.com/courses/using-scylla-drivers/lessons/cpp-driver-part-2-prepared-statements/) at Scylla University. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Those lessons will need to be updated as well, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. But I'm not going to do this as part of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, how do they need to be updated? They mostly refer to the driver's API and basic working, so no special adjustments are needed IMO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't look at the lessons, but don't they describe how to install the driver? This section will probably need to be updated (but of course not in this PR)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't they describe how to install the driver
No. They say:
To learn how to install it, see here.
So we need to update the link, that's it.
`${name}` is not a valid metavariable in the spec file - it was not substituted. Instead, it should be `%{name}`.
This is to align with the convention of using "contents" as the main table of contents file in documentation projects, as in the Rust Driver.
In its place, real documentation will be added later.
Let's name the Rust driver with its full name for clarity.
The `Doxyfile.in` file, which is used by the documentation generation workflow, has been added to the project straight from the cpp-driver. It's yet to be adjusted.
The `Doxyfile.in` file, which is used by the documentation generation workflow, has been adjusted for this project.
Ancient Cassandra versions are not supported by the driver, so it makes no sense to mention them in documentation and code.
docs/schema: fix typo client-side-timestamps: fix typo docs/schema_metadata: fix typo
We're not supporting DSE Cloud.
We don't support DSE.
When 7 years ago the default timestamp generator was changed from server-side to client-side, the documentation was improperly updated to reflect that change. This commit corrects the documentation.
...and warn about possible pitfalls of not setting a serial consistency before executing a Lightweight Transaction (LWT).
The implementation of CPP-Rust Driver has a limitation that callbacks must not block, otherwise the driver will panic. This commit documents this limitation in the documentation of futures, mentioning the notable exception of calling (otherwise blocking) future functions on futures that are guaranteed to be ready.
I believe the new name fits better.
The new name better reflects the semantics of this category.
This commit removes the Windows build instructions from the documentation. The Windows build process is no longer verified and maintained, and therefore the instructions are removed to avoid confusion.
zlib is not a dependency of the CPP Rust driver, as the underlying Rust Driver has its own static dependencies.
As zlib is not used in the CPP-Rust Driver at all (it was used in CPP Driver for DataStax Cloud functionalities), this commit removes all references to zlib from the build system.
The driver does not support Kerberos authentication anymore, so the documentation has been updated to remove references to Kerberos and its installation instructions.
The embedded_ads code is related to Kerberos authentication to DSE clusters, which is no longer supported in the CPP-Rust Driver.
As Kerberos is not used in the CPP-Rust Driver at all (it was used in CPP Driver for custom authentication), this commit removes all references to Kerberos from the build system.
libuv is used by the CPP-Rust Driver only for tests and some of the examples, so let's state that clearly. Also, let's remove exact build instructions for libuv, as they are prone to change with new releases and it's better for the user to refer to the libuv documentation.
sphinx is configured to build the docs. doxygen is used to generate API documentation. The code is taken from the C++ Driver repo.
Doxygen outputs XML files to docs/source/api, and Sphinx converts them to RST files in docs/api during the build. Both directories should be ignored by git.
5aeb383
to
c5ac0bb
Compare
Changes:
Ready for re-review. @dgarcia360 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, one minor comment
All links in the docs are updated to point to ScyllaDB docs, not DataStax. With this, we can remove the replacements-based workaround in conf.py.
The docs should: - list both `master` and at least the most recent stable tag; - properly highlight which version is the latest stable one; - highlight `master` as unstable. This commit achieves that, bringing the configuration in line with the Rust Driver's.
c5ac0bb
to
1114a17
Compare
Changes:
|
@dgarcia360 Could you take a look at this CI fail? https://github.com/scylladb/cpp-rust-driver/actions/runs/17674022220/job/50231868500 |
Based on: #359
Fixes: #351
Hello, Docs!
Base: CPP Driver
CPP Driver setup
eval-rst
command to transform those READMEs to sphinx-readable resource tree, similarly to what Rust Driver does.conf.py
to transform Doxygen-generated files to sphinx.Transfer
Topics
directory).README.md
->index.md
, asindex
is not displayed in the URL, which is desired (so it'sfutures/
instead offutures/README.md
).feature/index.md
singleton pattern withfeature.md
to reduce needless directory nesting.Further adjustments
Cleanup
zlib
dependency, as it was only used for DSE support in CPP Driver, and never used in ScyllaDB CPP Driver.embedded_ads
from Integration Tests, as it's related to DSE support using Kerberos.libuv
is a non-mandatory dependency, as it is not used by the core ScyllaDB CPP Driver, only by tests and examples.ccm
in a VM.Restructuring
Substantive changes
as it differs in some ways compared to the original DataStax CPP Driver.
Set up
sphinx
(the last few commits)conf.py
to mimic CPP Driver's. This has been reviewed by @dgarcia360.Bonus
Found a typo in the RPM-generation script, which made it contain
${name}
string instead of the actual name of the package. Fixed it in the process.Pre-review checklist
[ ] I have implemented Rust unit tests for the features/changes introduced.[ ] I have enabled appropriate tests inMakefile
in{SCYLLA,CASSANDRA}_(NO_VALGRIND_)TEST_FILTER
.Fixes:
annotations to PR description.