Commit Graph

57 Commits

Author SHA1 Message Date
Larry Osterman
37e1952f71
Fixed Linux AMQP crash and many other fixes. (#5166)
* Return pointer to message rather than message; cleaned up API surface to remove uAMQP details

* ASAN configuration via CMAKE preset, not environment variable

* clang-tidy fixes
2023-11-14 23:45:24 +00:00
Larry Osterman
51c8955d85
Vendor AMQP at commit 52942afb1a4b48a1d8af7a3ac37d3211661e3423 (#5049)
* Vendored version of uamqp

* Exclude vendored modules from cspell

* Code coverage

* Code coverage improvements

* Removed more coverage exclusions
2023-10-25 11:19:20 -07:00
Rick Winter
b54d509c72
Use standard syntax for MIT license (#4786)
* Use standard syntax for MIT license

* Stop appending "All rights reserved"
2023-07-12 22:37:36 -07:00
Larry Osterman
68d051fe72
Merge AMQP functionality to main. (#4596)
# This pull request moves the core AMQP functionality to main. It is still very much a work in progress, but moving it to main will reduce the complexity associated with working in feature branches.



---------

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Konrad Jamrozik <kojamroz@microsoft.com>
Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
Co-authored-by: George Arama <50641385+gearama@users.noreply.github.com>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
2023-05-10 20:58:39 +00:00
Victor Vazquez
cad69e1a8c
Remove samples with docker.io (#3621)
* remove samples using docker.io

* removing docker files

* remove project
2022-06-02 19:49:32 +00:00
Larry Osterman
8ca08a1429
Initial implementation of OpenTelemetry APIs. (#3561)
* Start of tracing prototype

* Created initial implementation of azure-core-opentelemetry package

* New version of enabling MSVCRT Lib for static configs

* Attempt to add OpenTelemetry tests to build

* Take a dependency on OpenTelemetry version 1.3

* Added service API level tracing support

* API Review feedback
2022-05-23 16:44:22 -07:00
Anton Kolesnyk
7c34ab088e
Fix identity samples running in CI (#3632) 2022-05-10 21:08:40 -07:00
George Arama
c4678c9a10
Add smoketest MVP (#3440)
* initial setup

* smoke sample

* cleanup

* typo

* typo 2

* typo 3

* daniel's feedback
2022-03-17 12:20:15 -07:00
Larry Osterman
d2fd862ce1
Create Attestation SDK (#3228)
* Created Attestation


Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
2022-02-16 09:15:18 -08:00
Anton Kolesnyk
2aae6be7a3
Encapsulate getenv(), and make it work on UWP (#3275)
It all started with UWP. The [docs](https://docs.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps?view=msvc-170) say: "`Environment variables are not available to UWP apps.`". And it truly won't work, I tried: linker error, the function is simply not present.

So, for a year or so, we were `ifdef`ing everything enivoronment-related: console logger, environment credential, managed identity credential.

And then just recently we wanted to enable our CI for UWP, including tests and samples. And it required to do more ifdefs (in vcpkg, we don't build samples or tests, so that problem did not exist).

It just became more messy. Especially in samples - you can see how we would disable warning with `#pragma warning(disable : 4996)` or defining `_CRT_SECURE_NO_WARNINGS` already, but now came UWP, so we would have to add comment that `getenv()` is not available and make the sample compilation to either fail with clear message, or throw an exception. Plus we would have to detect that we are being compiled on UWP, which also adds visual clutter for reader. You can see how such an irrelevant (for a sample) thing as `getenv` was consuming more and more lines of sample code and reader's attention.

But then! I read docs on more APIs for UWP. And I noticed that on .NET you can read environment variables. So I went and checked Win32 API docs for [GetEnvironmentVariable()](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getenvironmentvariable) - it says: "`Minimum supported client: ... UWP apps`".

**GetEnvironmentVariable() works on UWP!**
And so does `SetEnvironmentVariable()` (our tests use it, which means we can make all of them work and execute for UWP).

That's good news, but now it would probably be more code: it usually takes more lines to invoke WinAPI, it is no more an one-liner to call `getenv()/setenv()`. So, I encapsulated that into `Azure::Core::_internal::Environment::GetVariable()` and `SetVariable()`. You can see how much less ifdefs is in our code now. Not to mention it works on UWP!

Per team request, that API is SDK-internal. Samples use their own mini-helper project, `get-env-helper` that makes is so that `getenv()` works naturally on Linux and macOS, compiles without warnings and works on Win32, and compiles and works on UWP (using `GetEnvironmentStringsA()`)

If it was for me, I would just make `Azure::Core::Environment::GetVariable()` public and simplify even further, I think it would be beneficial for sample readers (you can see that extra `get-env-helper` stuff adds just a little more visual clutter, compared to nothing). But I can see reasons against that, why team did not want to do it.
2022-01-29 08:22:33 +00:00
George Arama
88f234d976
build source identity (#3244)
* build source identity

* pipeline

* PR comments

* PR comments

* DFETCH cspell

* EOL
2022-01-21 13:13:15 -08:00
Victor Vazquez
c10de791cc
Build ci gates per service (#3260) 2022-01-20 18:09:06 +00:00
Daniel Jurek
fa0fa97155
Generate map files (#3181)
* Generate map files in build

* Add .map file artifact publishing

* Add Xlinker to spelling exceptions

* Remove PublishMapFiles from clang builds

* Generate the map file artifact name

* CXX_COMPILER_ID and some logging for Clang which might be linking using the GNU linker by default

* More logging

* Move logging out of conditional

* Logging up high, use OS to determine which link flags to set

* Use linker options specific to AppleClang's context, publish map files for all platforms
2022-01-03 13:56:41 -08:00
Victor Vazquez
f4e6390dff
Enable no-rtti (#2963)
* Enable no-rtti
2021-10-14 18:12:03 -07:00
George Arama
10a46b3132
fixup sample , add to build (#2808) 2021-09-01 18:04:20 -07:00
Anton Kolesnyk
00dfcc2beb
Doxygen comment updates (#2280) 2021-05-17 17:05:06 -07:00
Ahson Khan
fd9c3e5ebb
Fix true spelling errors across all source and header files within the SDK and add exceptions for false positives. (#2209)
Part of https://github.com/Azure/azure-sdk-for-cpp/issues/1277, checking what types of warnings the CI emits.

Verified all SDK product `.cpp`, `.hpp`, `.txt`, and `.md` files, primarily focused on azure-core. They are all clean now. There are some exceptions that needs to be added for keyvault and storage, but they are false positives, so not a concern.

> `cspell lint --config .vscode/cspell.json *.hpp */**/*.hpp`

CSpell: Files checked: 188, Issues found: 0 in 0 files

> `cspell lint --config .vscode/cspell.json *.cpp */**/*.cpp`

CSpell: Files checked: 186, Issues found: 88 in 15 files (keyvault and storage false positives, or tests)

> `cspell lint --config .vscode/cspell.json *.md */**/*.md`

CSpell: Files checked: 45, Issues found: 5 in 2 files (eng/common)

> `cspell lint --config .vscode/cspell.json *.txt */**/*.txt`

CSpell: Files checked: 44, Issues found: 0 in 0 files

> `cspell lint --config .vscode/cspell.json *.* */**/*`

CSpell: Files checked: 646, Issues found: 328 in 69 files (most of these are in eng\docs\api\assets\style.css or eng/common)

Deprioritize and ignored the errors from the test files (including test resource json files), and `eng/common` since those need to be centrally fixed.
2021-05-07 21:04:58 +00:00
Ahson Khan
2213991d52
Remove BUILD_ENV_LOGGER cmake option and always honor AZURE_LOG_LEVEL env var, if set. (#1827) 2021-03-09 23:05:00 -08:00
Anton Kolesnyk
622e8da4fe
API Review Feedback: Logging and DateTime updates (#1752) 2021-03-05 12:16:14 -08:00
Anton Kolesnyk
eeda7f1a13
Get static/dynamic CRT link options in sync (#1715)
* Get static/dynamic CRT link options in sync

* Update docs

* PR feedback

* en-us

* Another 'en-us' in a link

* MSVC_USE_STATIC_CRT

* Update README.md

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-23 09:38:24 -08:00
Victor Vazquez
b7de24483a
Rename and structure unit test and perf tests (#1706)
* Rename and structure unit test and perf tests
2021-02-23 05:55:12 +00:00
Anton Kolesnyk
281dd37945
Add simplified header test for Identity (#1625)
* Add simplified header test for Identity

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-08 13:01:44 -08:00
Anton Kolesnyk
b4c190b285
Remove vcpkg integration snippet duplication for the root cmakefile (#1612)
* Remove vcpkg integration for the root cmakefile

* az_vcpkg_integrate()

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-05 21:19:28 -08:00
Victor Vazquez
43aa7ff7ad
[Perf Framework] (#1528)
perf test infrastructure
2021-02-04 19:51:35 -08:00
Rick Winter
72253e0957
CMakeLists for each Service (#1524)
* Add service level CMakeLists
* Fix CMake minimum version
2021-01-29 21:53:16 -08:00
Victor Vazquez
60a4792a0f
Make cmake modules consistent names (#1498)
* AzureVersion

* Vcpkg

* coverage

* missing renames

* missing renames
2021-01-27 18:55:46 -08:00
Victor Vazquez
6c3aeed35c
Json unit tests (#1464)
Adding json unit tests
2021-01-27 10:07:12 -08:00
Victor Vazquez
80357ab69d
Feature/keyvault - GetKey + KeyVaultCommon (#1383)
* add cmake project for keyvault keys (#1081)
2021-01-15 16:50:44 -08:00
Victor Vazquez
78df96ab6c
removed e2e core tests (#1215) 2020-12-18 11:02:10 -08:00
Victor Vazquez
6a317e8b87
Move the default transport adapter assignation to the source (#1206)
fixes: #1169
2020-12-18 02:13:03 +00:00
Anton Kolesnyk
3eae7c130c
Add VcPkg support (#1013) 2020-12-11 11:53:37 -08:00
Anton Kolesnyk
828bb4098a
Make changes towards making libraries individually buildable (#1108) 2020-12-09 04:02:29 -08:00
Anton Kolesnyk
ce98087f7e
Don't use WINDOWS/POSIX/NOMINMAX macros defined in cmake, move them to source code instead (#1070) 2020-12-04 11:55:59 -08:00
Victor Vazquez
742e385350
Adding options for telemetry and transport policy (#889)
Fixes: https://github.com/Azure/azure-sdk-for-cpp/issues/819
2020-11-07 01:01:03 +00:00
Victor Vazquez
c764052e7c
Add Code coverage (#830)
* Add code coverage scripts
2020-10-27 15:35:15 -07:00
Victor Vazquez
f9e6acb358
Update Readme and Contribute to Oct07-2020 release instructions (#712)
* Update Readme and Contribute to Oct07-2020 release instructions
2020-10-14 22:00:34 -07:00
Anton Kolesnyk
a38de03e7b
Extract part of credentials to Identity module (#748) 2020-10-13 07:33:18 -07:00
Victor Vazquez
cd2a8a3812
cmake updates for building transport adapters (#706)
Adding CMake module to enable/disable transport adapters

TRANSPORT ADAPTER BUILD  
Default: If no option is explicitly added, curl will be used for POSIX and WIN HTTP for WIndows 
 Windows: Both CURL and WIN_HTTP can be build to be used.                                        
POSIX: Only CURL is acceptable. If WIN_HTTP is set, generate step will fail for user            

Defines `BUILD_WIN_HTTP_TRANSPORT_ADAPTER` and `BUILD_CURL_HTTP_TRANSPORT_ADAPTER` for source code
 
Fixes #350
2020-10-10 00:08:57 +00:00
Victor Vazquez
dc9d3b0595
update CMake min version to 3.15 (#710)
Storage is using CMake version 3.15 and it is currently required for generating without errors
2020-10-09 23:26:01 +00:00
Victor Vazquez
e75d8e1775
Do not compile performance fw since it is not ready/completed (#600) 2020-09-04 09:24:35 -07:00
Daniel Jurek
919610f429
Use version.hpp for package versions (#572)
* Add version.txt
* Add doc generation for template
* Add version.hpp parsing and update capabilities to cmake and engsys
* Get-SdkVersion -> Get-PkgVersion
* Move Update-PkgVersion.ps1 under eng/scripts
* Get-PackageVersion -> Get-PkgVersion
* Update paths, params, verbosity
* Couple fixes to output and make use of new SemVer version
* Add fallback support for verison.txt in cases where we still use it to unblock release artifact generation
* Use version information in release pipeline
* Add workaround to generate storage pipeline artifacts
* eng/scripts/
* Write warning
* Haven't released storage-file-shares yet according to releases on GitHub
* Set release date on changelog.md
* Update CHANGELOG.md to indicate this is a test release
* Remove fallback exception for storage
* Re-add Rick's suggestions
* Revert "Remove fallback exception for storage"
2020-09-02 18:53:46 -07:00
Victor Vazquez
e782efbb47
perf stress basic struct folder and no op herarchy structure (#390)
* perf stress basic struct folder and no op herarchy structure
2020-08-27 15:27:31 -07:00
Victor Vazquez
1f0da6fcc4
Clean routine (#530)
* adding cleaner routine
2020-08-26 16:51:24 -07:00
Victor Vazquez
70eeec5984
Connection pool for keep alive (#500)
* keep-alive. reuse same connection based on host
2020-08-21 15:41:45 -07:00
Jason Yang
a7f17cee5a
Change from CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR on top-level cmake list allow cmake reference from client side (#305) 2020-08-13 09:37:55 -07:00
Rick Winter
1a32179fec
Create template project (#443)
* Create template project
Support retrieving version from code
2020-08-12 15:08:46 -07:00
Victor Vazquez
c699888daa
Make sure Read will always start on body start. (#256)
* make stream use int64_t instead of uint64_t
2020-07-10 23:02:18 -07:00
Victor Vazquez
9fb4119ccb
Memory Stream - File Stream (win/lin) - HTTP Request / Response - Updates (#236)
* make stream use int64_t instead of uint64_t
2020-07-03 22:22:16 -07:00
Daniel Jurek
0cfcdca725
Unified Pipelines for storage (#184)
* Add ci.yml for storage

* OSVmImage

* Use correct name for storage

* Update ci.ymls

* Documentation generation

* Fix tabbing

* More tabbing

* Use correct service directory for storage ci.yml

* Add docs assets

* Use cpp for dropdown generation

* Use cmake to generate documentation

* Use CMake to generate doxygen docs

* BuildArgs -> GenerateArgs

* Correct template path

* More CURL options

* Install curl to satisfy minimum build requirements

* use dependency variable name

* Add VCPKG_DEFAULT_TRIPLET

* Always generate documentaion when -DBUILD_DOCUMENTATION=YES

* Build docs at top level

* Change variable names, simplify cmake-build.yml

* -DBUILD_DOCUMENTATION

* Try using MathJax for formula rendering instead of Latex

* Add version.txt for storage

* artifact.Name -> artifact.Path

* Build docs by target

* Remove Doxyfile

* Remove Doxyfile.template

* Remove generate_docs.py, we are using cmake

* Pass CtestRegex to archetype-sdk-client job template)
2020-06-26 10:42:48 -07:00
Kan Tang
a8a200ef26
Added convenience layer for datalake service (#178) 2020-06-20 19:55:41 -07:00