also remove dependency on `@microsoft/api-extractor` as we already move to
`dev-tool run extract-api` which calls api-extractor Api instead.
***NO_CI***
***NO_CI***
- replace version to "~5.6.2"
- rush update
- add `"skipLibCheck": true` for several packages that are affected by https://github.com/vitest-dev/vitest/issues/4688
- [formrecognizer] help TypeScript to understand with more explicit type
- [schema-registry-{avro,json}] skip lib check due to lru-cache issue with the Iterator TReturn change
https://github.com/isaacs/node-lru-cache/issues/348
- [eslint-plugin] github-source-headers rule should use "MIT License".
This change updates our linter rule and the whole repository to have consistent
license header.
***NO_CI***
- remove "All rights reserved." from header
- "MIT license" => "MIT License"
***NO_CI***
- add one flat config file for perf tests
- update NPM scripts of these packages to use that flat config for perf tests
As eslint v8 still not switched to flat config by default, this change
temporarily uses `cross-env` to set `ESLINT_USE_FLAT_CONFIG=true`
Once we moved to eslint v9 the env var can be removed.
which only extends from tsconfig.json. There might be more customization for
packages in the early days but not any more.
This PR removes it and updates packages to extends tsconfig.json directly
***NO_CI***
### Packages impacted by this PR
`@azure-tools/test-perf`
### Describe the problem that is addressed by this PR
Making perf package public for consumption outside this repo.
This marks the initial release of the `@azure-tools/test-perf` library
to npm, providing a robust test utility framework that assists with the
performance testing of Azure SDKs for JS/TS.
### Key Concepts
1. **Introduction of PerfTest**: A test utility designed to execute
performance and stress tests for Azure SDK for JavaScript packages.
2. **Test Execution**: Tests are run asynchronously, influenced by
parameters like duration, iterations, and parallelism.
3. **Command Line Parameters**: Utilizes `minimist` for parsing command
line options into a `PerfOptionDictionary<string>` for test
configuration.
4. **Default Options**: Includes standard parameters such as `help`,
`no-cleanups`, `parallel`, `duration`, `warmup`, `iterations`,
`no-cleanup`, and `milliseconds-to-log`.
5. **Test Lifecycle**: Tests run repeatedly within the specified
`duration` and `iterations`, with a `warmup` period for runtime
optimization.
6. **Setup and Cleanup**: Features `globalSetup`/`globalCleanup` methods
for CPU-level preparation and `setup`/`cleanup` methods for
instance-specific state management.
***NO_CI***
Latest versions of prettier now correctly formats `tsconfig.json`, which results
in differences with previous version of 3.1.1 in pnpm-lock.yaml. This is failing
the automated rush update pipeline because `check-format` fails with version
3.2.4.
This includes changes of
- bumping prettier version to ^3.2.4
- running `rush format`
***NO_CI***
- remove dev dependency `prettier` from non-tool packages when possible and
update them to run vendored prettier for `check-format` and `format` scripts
- upgrade rest of packages to prettier v3
- run `rush format` for all rush packages
This is a follow-up to https://github.com/Azure/azure-sdk-for-js/pull/28127 to
move the rest of repo to prettier v3.
### Packages impacted by this PR
- @azure/storage-blob
- @azure/storage-file-share
- @azure-rest/synapse-access-control
### Issues associated with this PR
### Describe the problem that is addressed by this PR
Removes UUID package in favor of core-util randomUUID
### What are the possible designs available to address the problem? If
there are more than one possible design, why was the one in this PR
chosen?
### Are there test cases added in this PR? _(If not, why?)_
### Provide a list of related PRs _(if any)_
### Command used to generate this PR:**_(Applicable only to SDK release
request PRs)_
### Checklists
- [ ] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so,
create an Issue in the
[Autorest/typescript](https://github.com/Azure/autorest.typescript)
repository and link it here)_
- [ ] Added a changelog (if necessary)
***NO_CI***
- update engine.node to >=16.0.0 in package.json
- update @types/node version to ^16.0.0
- update dev-tool sample's MIN_SUPPORTED_NODE_VERSION to 16
- update eslint-plugin's rules and tests related to engine.node version
- remove TextEncoder and TextDecoder stubs as they are now on global object
- fix tests compiler error due to better typings in v16
- update some README files to not reference version like 14.x.x
***NO_CI***
- string replace in package json: 12 => 14 for engines/node and for dependency @types/node
- eslint: update `json-engine-is-present` rule to 14.0.0 as LTS version
- identity: react to typing improvements for `readFile()`'s `options.encoding`
- trivial generated api.md file changes due to @types/node version bump
***NO_CI***
This is a follow-up to PR #21536 and PR #21537.
- upgrade typescript to 4.6.0 for communication packages
- upgrade typescript to 4.6 for test-utils and dev-tool
- upgrade typescript to 4.6
The perf framework previously did not support true multi-core operation. This PR provides an implementation of multicore support based on a message-passing model.
Two new options are added to the perf framework as part of this PR:
* `--cpus`/`-c`: number specifying the number of cores (CPUs) to use. Defaults to 1, set to 0 to match the number of cores on the machine.
* `--use-worker-threads`: boolean, defaults to false. Pass this flag to use `worker_threads` instead of `child_process` for multithreading (see Multithreading implementations, below)
* [storage-blob] Update samples to v2
* Use types instead of typings
* Some more fixes, regenerated samples
* Fixed broken paths to samples
* [storage-queue] Rework samples for v2
* [storage-queue] Fixup samples and regenerate
* [storage-blob] Fixup samples and regenerate
* [storage-blob-changefeed] Rework samples for v2
* [storage-queue] Fix some scripts in package.json
* [storage-file-share] Reworked samples for v2
* [storage-file-share] Regenerate samples
* [storage-file-datalake] Rework samples for v2
* Regenerate samples
* Fixed a small bug in storage-queue samples
* Fixed a lot of links
* typings -> types
* Accidentally a comma
* Fixed links
* Really fixed links
* Format code with new prettier
* Capitalize Corporation
* filesystem -> file system
* rush update
* Format files in storage-queue
* Format files in storage-internal-avro
* Format files in storage-file-share
* Format files in storage-file-datalake
* Format files in storage-blob-changefeed
* Format files in storage-blob
* Format files in perf-tests
* [Storage]Add support for encryption scope and permanent delete permission in SAS token. -STG79 (#17867)
* Add support for encryption scope and permanent delete permission in SAS token.
* Resolve a comments
* Add support for synccopy with encryption scope in destination. (#17864)
* Update blob and file-datalake version
* Resolve review comments
* Resolve comments
Reported in #18033.
Basically did a bulk find+replace everywhere. Things _seem_ to be working OK, but wouldn't be surprised if there's something somewhere I've missed, or somewhere where I've replaced something I shouldn't.
I've split the rename of PerfStress -> Perf and runAsync -> run into two commits for ease of review :)
- Update dependencies to latest non-beta source version
- Align tsconfig.json with storage-blob perf test
- "target: es5" fails with "TypeError: Class constructor PerfStressTest cannot be invoked without 'new'"
- Our convention now is to use `types`.
- Some packages output type definition files into `types` directory but the `clean` scripts still use `typings`.
* Add support for list deleted root blob With versions and list file v2
* Add support for immutable policy (#16203)
* [Storage] Add support for bearer authorization in copying source. (#16200)
* Add support for bearer authorization in copying source.
* Resolve comments.
* Update storage packages versions
* Update to the latest swagger spec for all storage packages. (#16328)
* Support parquet format in block blob querying (#16402)
* Upgrade to service version 2020-10-02
* Add support for parquet format in block blob quick querying.
* [dev-tool] Experimental samples publish command
* Updated template samples structure
* First generation of template samples
* Update to ts-node 9 and use transpilation mode for speed.
* Many improvements and fixes.
- Fixed several bugs with generation.
- Added environment variable analysis.
- Refactored modules for code organization.
- Added azsdk- JSDoc tags for weighting and ignoring samples.
- Made almost all illogical situations yield errors instead of warnings.
* Rework text analytics
* Fixed a bug in the README template saying something about the Template package
* Regenerate text analytics samples
* Consistency changes to dev-tool/register
* Updated TA and Template package.json
* Fixed a couple of file name rendering bugs in the template
* Added API ref link override and regenerated Template samples
* Format
* Fix broken link
* Made typescript version reflect dev-tool ts dependency
* Revert weird change to cosmosdb package.json
* Alpha sort template deps
* Added MIN_SUPPORTED_NODE_VERSION
* Tweaked default tsconfig.
* Use version 1.0.0 instead of 0.1.0
* Pull sample generation info types into their own module.
* Added resource creation link generation.
* Regenerate template samples
* Regenerate text analytics samples
* Regenerate text analytics samples
* Regenerate template samples
* Fix bug in TA samples
I confirmed with the TypeScript team that patch releases should not introduce breaking changes. This PR uses tilde in TypeScript version we use so get the latest patch releases for v4.1.
Currently, `rush lint` fails for our perf tests, see https://dev.azure.com/azure-sdk/playground/_build/results?buildId=787394&view=logs&j=58292cae-3c74-5729-4cfd-9ceee65fe129&t=3f037b94-2b49-5715-3208-309f8588a4cd&l=441
This PR fixes this by doing the following:
- adding `eslint` as a dependency for those packages.
- updating the npm lint script to not use the `.eslintrc.json` at the root and use a newly added one instead that does not use our azure sdk plugin for eslint.
- fix linting issues if any and make the lint script fail in the future when linting errors happen.
In addition to those fixes, this PR fixes linting issues in container registry so `rush lint` runs successfully.