The SONAME currently written to shared libraries is unversioned, e.g. libazure-core.so. The SDK's ABI is unstable, so replacing these .so files with newer versions will immediately break any consumers. Setting the VERSION property results in libazure-core.so being a symlink that is used at build time to point to the versioned library, e.g. libazure-core.so.1.14.0. Consumers point directly to the versioned library and continue to work against the older version when the library is upgraded. Once rebuilt, they then point to the newer version instead. It is more common to use an ABI version that is separate to the library version, but it makes sense to use the latter when the ABI is unstable. The Boost libraries do exactly this. This change has no effect on static libraries, which is the more common use case. See the CMake documentation for its wider effects. https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html |
||
|---|---|---|
| .. | ||
| inc | ||
| src | ||
| test | ||
| vcpkg | ||
| cgmanifest.json | ||
| CHANGELOG.md | ||
| CMakeLists.txt | ||
| NOTICE.txt | ||
| README.md | ||
| vcpkg.json | ||
Azure Template Package client library for C++
Azure Template Package client library for C++ (azure-template) matches necessary patterns that the development team has established to create a unified SDK written in the C++ programming language. These libraries follow the Azure SDK Design Guidelines for C++.
The library allows client libraries to expose common functionality in a consistent fashion. Once you learn how to use these APIs in one client library, you will know how to use them in other client libraries.
Getting started
For a rich example of a well formatted readme, please check here. In addition, this is an example readme that should be emulated. Note that the top-level sections in this template align with that of the template.
Key concepts
Bullet point list of your library's main concepts.
Examples
Examples of some of the key concepts for your library.
Troubleshooting
Running into issues? This section should contain details as to what to do there.
Next steps
More sample code should go here, along with links out to the appropriate example tests.
Contributing
For details on contributing to this repository, see the contributing guide.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Additional Helpful Links for Contributors
Many people all over the world have helped make this project better. You'll want to check out:
- What are some good first issues for new contributors to the repo?
- How to build and test your change
- How you can make a change happen!
- Frequently Asked Questions (FAQ) and Conceptual Topics in the detailed Azure SDK for C++ wiki.
Reporting security issues and security bugs
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
License
Azure SDK for C++ is licensed under the MIT license.