googleapis / google-cloud-cpp

C++ Client Libraries for Google Cloud Services
https://cloud.google.com/
Apache License 2.0
554 stars 373 forks source link

Declutter README and Doxygen landing pages #10157

Closed coryan closed 1 year ago

coryan commented 2 years ago

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.

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


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 commented 1 year ago

This is done now.