Skip to content
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

Declutter README and Doxygen landing pages #10157

Closed
30 tasks done
coryan opened this issue Nov 1, 2022 · 1 comment
Closed
30 tasks done

Declutter README and Doxygen landing pages #10157

coryan opened this issue Nov 1, 2022 · 1 comment
Assignees
Labels
type: docs Improvement to the documentation for an API. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.

Comments

@coryan
Copy link
Contributor

coryan commented Nov 1, 2022

The README and Doxygen landing pages are getting cluttered. I think we should reduce the amount of data in the main page and refactor it to other pages.

Now that I have done the work for a few libraries, it is clearer how I should break this down.

  • Manually fix spanner/README.md
  • Manually fix spanner/doc/spanner-main.dox
  • Remove the "Contributing Changes" section from all the */README.md files (for generated libs)
  • Remove the "License" section from all the */README.md files (for generated libs)
  • Create a common "install.md" page that goes into more length about the different ways to build, more about why you would chose each option.
  • Refactor the top-level README.md install section to reference this page, fix any links to README.md#building-and-installing too.
  • Remove the "Supported Platforms" section from all the */README.md files (for generated libs)
  • Remove the "installation" instructions at the end of the "Quickstart" from all the */README.md files
  • Move the documentation links from the top of the README file to a new section at the bottom and call it "More Information"
  • Add a link to the common "Build and Install" page from the "More Information" section
  • Make another pass on storage/README.md
  • Make another pass on pubsub/README.md
  • Make another pass on bigtable/README.md
  • Create a common .dox page showing how to build and install common libraries, similar to "install.md" (maybe the same if we can get the links to work)
  • Create a common .dox page showing how to handle errors
  • Create a common .dox page showing the environment variables related to logging
  • Remove all the "This library requires a C++14 compiler" paragraphs from all the */doc/main.dox files
  • Remove all the "Setting up your repo" sections from the */doc/main.dox files
  • Change all the @par Example: Quickstart to ## Quickstart
  • Create a new section called ## Next Steps at the end of the quickstart
    - [github-link] [github-readme] and [github-quickstart] links to this section
    - clean the up too
  • Split the '## Retry, Backoff, and Idempotency Policies to a @page, still in the same main.dox file.
    * Link this mate from ## Next Steps
  • Split the ## Override the authentication configuration section to a @page, still in the same main.dox file, and reference it from the ## Next Steps
  • Ditto for the ## Override the default endpoint section
  • Remove the ## Error Handling page and just reference the common page for that purpose
  • Remove the logging environment variables and just reference the common page for that purpose
  • Split the ## Environment Variables section to a page in the same main.dox file.
  • Make another pass on storage/doc/storage-main.dox
  • Make another pass on spanner/doc/spanner-main.dox
  • Make another pass on pubsub/doc/pubsub-main.dox
  • Make another pass on bigtable/doc/bigtable-main.dox

For example, the README for something like KMS should read:


Cloud Key Management Service (KMS) API C++ Client Library

This directory contains an idiomatic C++ client library for
Cloud Key Management Service (KMS), a service that manages
keys and performs cryptographic operations in a central cloud service, for
direct use by other cloud resources and applications.

While this library is GA, please note that the Google Cloud C++ client libraries do not follow
Semantic Versioning.

Quickstart

The quickstart/ directory contains a minimal environment
to get started using this client library in a larger project. The following
"Hello World" program is used in this quickstart, and should give you a taste of
this library.

#include "google/cloud/kms/key_management_client.h"
#include "google/cloud/project.h"
#include <iostream>

int main(int argc, char* argv[]) try {
  if (argc != 3) {
    std::cerr << "Usage: " << argv[0] << " project-id location-id\n";
    return 1;
  }

  namespace kms = ::google::cloud::kms;
  auto client = kms::KeyManagementServiceClient(
      kms::MakeKeyManagementServiceConnection());

  auto const parent =
      std::string{"projects/"} + argv[1] + "/locations/" + argv[2];
  for (auto r : client.ListKeyRings(parent)) {
    if (!r) throw std::move(r).status();
    std::cout << r->DebugString() << "\n";
  }

  return 0;
} catch (google::cloud::Status const& status) {
  std::cerr << "google::cloud::Status thrown: " << status << "\n";
  return 1;
}

Next Steps

  • [/README.md#support] for details about the supported platforms, compilers, build systems, etc.
  • Library Reference for this library's reference guide.
  • Cloud Key Management Service (KMS) API for details about the service, including tutorials and quickstart guides.
  • For information to install the library in /usr/local, /opt, or a similar location consult the
    packaging guide. Package maintainers may find this useful too.
  • The quickstart guide for the library includes more details about how to use the library in a CMake or Bazel project.
  • See CONTRIBUTING.md for details on how to contribute to this project.
  • This library is licensed under the Apache 2.0 License. See LICENSE for details.

Likewise, the Doxygen landing page should move the sections covering environment variables, how to perform error handling, how to override defaults to separate sections, and just link them from the landing page.

@coryan
Copy link
Contributor Author

coryan commented Jun 23, 2023

This is done now.

@coryan coryan closed this as completed Jun 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: docs Improvement to the documentation for an API. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.
Projects
None yet
Development

No branches or pull requests

1 participant