From d6aae136e4eb7ee3b99452b6e8365758093c5e7f Mon Sep 17 00:00:00 2001 From: Florian Chazal Date: Fri, 14 Jan 2022 17:10:48 +0100 Subject: [PATCH 1/3] chore: run e2e tests on demand (#441) Co-authored-by: Andrea Amorosi Co-authored-by: ijemmy Co-authored-by: Sara Gerion <47529391+saragerion@users.noreply.github.com> --- .github/workflows/on-merge-to-main.yml | 1 - .github/workflows/run-e2e-tests.yml | 30 +++++++ CONTRIBUTING.md | 90 +++++++++++++++++++ package.json | 1 + packages/commons/package.json | 4 +- packages/logger/jest.config.js | 1 + packages/logger/package-lock.json | 21 +++++ packages/logger/package.json | 5 +- packages/logger/tests/unit/Logger.test.ts | 6 ++ .../EnvironmentVariablesService.test.ts | 6 ++ .../formatter/PowertoolLogFormatter.test.ts | 6 ++ packages/logger/tests/unit/helpers.test.ts | 6 ++ .../tests/unit/middleware/middy.test.ts | 6 ++ packages/metrics/package.json | 3 +- .../tests/e2e/decorator.test.MyFunction.ts | 2 +- packages/metrics/tests/e2e/decorator.test.ts | 78 +++++++--------- .../tests/e2e/standardFunctions.test.ts | 60 +++++-------- packages/tracing/package.json | 3 +- packages/tracing/tests/e2e/tracer.test.ts | 16 ++-- packages/tracing/tests/helpers/tracesUtils.ts | 4 +- 20 files changed, 250 insertions(+), 99 deletions(-) create mode 100644 .github/workflows/run-e2e-tests.yml diff --git a/.github/workflows/on-merge-to-main.yml b/.github/workflows/on-merge-to-main.yml index b18306cb54..a22a8f1c45 100644 --- a/.github/workflows/on-merge-to-main.yml +++ b/.github/workflows/on-merge-to-main.yml @@ -7,7 +7,6 @@ on: jobs: publish: runs-on: ubuntu-latest - steps: - name: "Checkout" uses: actions/checkout@v2 diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml new file mode 100644 index 0000000000..6a8b862a4a --- /dev/null +++ b/.github/workflows/run-e2e-tests.yml @@ -0,0 +1,30 @@ +name: run-e2e-tests +on: + workflow_dispatch: {} +jobs: + run: + runs-on: ubuntu-latest + permissions: + id-token: write # needed to interact with GitHub's OIDC Token endpoint. + contents: read + steps: + - name: "Checkout" + uses: actions/checkout@v2 + ######################### + # Release new version + ######################### + - name: "Use NodeJS 14" + uses: actions/setup-node@v2 + with: + node-version: '14' + - name: Install packages + run: | + npm ci + npm run lerna-ci + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1.6.0 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN_TO_ASSUME }} + aws-region: eu-west-1 + - name: Run integration tests + run: npm run lerna-test:e2e diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c13607c3db..818afe2b66 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -59,6 +59,96 @@ You can build and start a local docs website by running these two commands. * `npm run docs-buildDockerImage` OR `docker build -t squidfunk/mkdocs-material ./docs/` * `npm run docs-runLocalDocker` OR `docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material` +### Tests + +Tests are under `tests` folder of each modules and split into two categories: unit tests and e2e (end-to-end) tests. + +You can run each group separately or all together thanks to [jest-runner-groups](https://www.npmjs.com/package/jest-runner-groups). + +Unit tests, under `tests/unit` folder are standard [Jest](https://jestjs.io) tests. + +End-to-end tests, under `tests/e2e` folder, will test the module features by deploying AWS Lambda functions into your AWS Account. We use [aws-cdk](https://docs.aws.amazon.com/cdk/v1/guide/getting_started.html) v1 library (not v2 due to [this cdk issue](https://github.com/aws/aws-cdk/issues/18211)) for Typescript for creating infrastructure, and [aws-sdk-js v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) for invoking the functions and assert on the expected behaviors. All steps are also executed by Jest. + + +Running end-to-end tests will deploy AWS resources. You will need an AWS account and the tests might incur costs. The cost from **some services** are covered by the [AWS Free Tier](https://aws.amazon.com/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all) but not all of them. If you don't have an AWS Account follow [these instructions to create one](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/). + +When contributing to this repository, these end-to-end tests are run by the maintainers before merging a PR. + + +**Unit tests** + +**Write** + +As mentioned before, tests are split into groups thanks to [jest-runner-groups](https://www.npmjs.com/package/jest-runner-groups) and therefore each test needs to be tagged properly by adding the following comments in the header of your unit test file: + +```typescript +/** + * Tests metrics + * + * @group unit// + */ +``` + +**Run** + +To run unit tests you can either use +* npm task `lerna-test:unit` (`npm run lerna-test:unit`) in root folder to run them all +* npm task `test:e2e` (`npm run test:unit`) in module folder (for example: `packages/metrics`) to run the module specific one +* jest directly `npx jest --group=unit` in module folder to run the module specific one (You can run selective tests by restricting the group to the one you want. For instance `npx jest --group=unit/metrics/class`) + +**e2e tests** + +**Write** + +As mentioned in the previous section, tests are split into groups thanks to [jest-runner-groups](https://www.npmjs.com/package/jest-runner-groups) and therefore each test needs to be tagged properly by adding the following comments in the header of your unit test file: + +```typescript +/** + * Tests data lake catalog + * + * @group e2e// + */ +``` + + See `metrics/tests/e2e/decorator.test.ts` as an example. + + +**Run** + +To run e2e tests you can either use +* npm task `lerna-test:e2e` (`npm run lerna-test:e2e`) in root folder +* npm task `test:e2e` (`npm run test:e2e`) in module folder (for example: `packages/metrics`) to run the module specific one +* jest directly `npx jest --group=e2e` in module folder. (You can run selective tests by restricting the group to the one you want. For instance `npx jest --group=e2e/metrics/decorator`) + +Two important env variable can be used: +* `AWS_PROFILE` to use the right AWS credentials +* `DISABLE_TEARDOWN` if you don't want your stack to be destroyed at the end of the test (useful in dev mode when iterating over your code). + +Example: `DISABLE_TEARDOWN=true AWS_PROFILE=dev-account npx jest --group=e2e/metrics/decorator` + +**Automate** + +You can run the end-to-end tests automatically on your forked project by following these steps: +1. Create an IAM role in your target AWS account, with the least amount of privilege. + + As mentioned above in this page, we are leveraging CDK to deploy and consequently clean-up resources on AWS. Therefore to run those tests through Github actions you will need to grant specific permissions to your workflow. + + We recommend following [Amazon IAM best practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) for the AWS credentials used in GitHub Actions workflows, including: + * Do not store credentials in your repository's code. + * [Grant least privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) to the credentials used in GitHub Actions workflows. Grant only the permissions required to perform the actions in your GitHub Actions workflows. + * [Monitor the activity](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#keep-a-log) of the credentials used in GitHub Actions workflows. + + For an example of how to create a role in CDK, you can look at [@pahud/cdk-github-oidc](https://constructs.dev/packages/@pahud/cdk-github-oidc) construct. + + More information about: + + - [Github OpenID Connect](https://github.blog/changelog/2021-10-27-github-actions-secure-cloud-deployments-with-openid-connect/ + - ["Configure AWS Credentials" Action For GitHub Actions](https://github.com/aws-actions/configure-aws-credentials/) +2. Add your new role into your [Github fork secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with name `AWS_ROLE_ARN_TO_ASSUME`. +3. In your forked repository, go to the "Actions" tabs, select the `run-e2e-tests` workflow. +4. In the run-e2e-tests workflow page, select "Run workflow" and run it on the desired branch. + +> :warning: **Don't automatically run end-to-end tests on branch push or PRs**. A malicious attacker can submit a pull request to attack your AWS account. Ideally, use a blank account without any important workload/data, and limit `AWS_ROLE_ARN_TO_ASSUME` permission to least minimum privilege. ### Conventions Category | Convention diff --git a/package.json b/package.json index b7e68afdb6..0cad9332d6 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "package": "npm run package", "lerna-ci": "lerna exec -- npm ci", "lerna-test": "lerna exec -- npm run test", + "lerna-test:e2e": "lerna exec -- npm run test:e2e", "lerna-package": "lerna exec -- npm run package", "lerna-build": "lerna exec -- tsc", "lerna-lint": "lerna exec -- eslint \"./{src,tests}/**/*.ts ./src/*.ts\"", diff --git a/packages/commons/package.json b/packages/commons/package.json index 2debcbc1d8..fe570f38a5 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -11,7 +11,9 @@ }, "scripts": { "commit": "commit", - "test": "jest --detectOpenHandles --coverage --verbose", + "test": "npm run test:unit", + "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", + "test:e2e": "echo 'Not Applicable'", "watch": "jest --watch", "build": "tsc", "lint": "eslint --ext .ts --fix --no-error-on-unmatched-pattern src tests", diff --git a/packages/logger/jest.config.js b/packages/logger/jest.config.js index f71eb10433..8ed8012be5 100644 --- a/packages/logger/jest.config.js +++ b/packages/logger/jest.config.js @@ -3,6 +3,7 @@ module.exports = { name: 'AWS Lambda Powertools utility: LOGGER', color: 'cyan', }, + 'runner': 'groups', 'preset': 'ts-jest', 'transform': { '^.+\\.ts?$': 'ts-jest', diff --git a/packages/logger/package-lock.json b/packages/logger/package-lock.json index 79ba654026..1e5843fa76 100644 --- a/packages/logger/package-lock.json +++ b/packages/logger/package-lock.json @@ -29,6 +29,7 @@ "eslint-import-resolver-typescript": "^2.5.0", "eslint-plugin-import": "^2.25.3", "jest": "^27.0.4", + "jest-runner-groups": "^2.1.0", "ts-jest": "^27.0.3", "ts-node": "^10.0.0", "typescript": "^4.1.3" @@ -4149,6 +4150,19 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-runner-groups": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/jest-runner-groups/-/jest-runner-groups-2.1.0.tgz", + "integrity": "sha512-iHBIJ38yEW7qkPTW3tSulq/5kjgIiVtZjuYimBT1PltBYwsb1B1gPWGFMDdEfy9O3+6cyfe5MmVgMHafi69MUw==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "jest-docblock": ">= 24", + "jest-runner": ">= 24" + } + }, "node_modules/jest-runtime": { "version": "27.4.6", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz", @@ -9127,6 +9141,13 @@ "throat": "^6.0.1" } }, + "jest-runner-groups": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/jest-runner-groups/-/jest-runner-groups-2.1.0.tgz", + "integrity": "sha512-iHBIJ38yEW7qkPTW3tSulq/5kjgIiVtZjuYimBT1PltBYwsb1B1gPWGFMDdEfy9O3+6cyfe5MmVgMHafi69MUw==", + "dev": true, + "requires": {} + }, "jest-runtime": { "version": "27.4.6", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz", diff --git a/packages/logger/package.json b/packages/logger/package.json index a998a55397..1cd32cf7b7 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -11,7 +11,9 @@ }, "scripts": { "commit": "commit", - "test": "jest --detectOpenHandles --coverage --verbose", + "test": "npm run test:unit", + "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", + "test:e2e": "jest --group=e2e", "watch": "jest --watch", "build": "tsc", "lint": "eslint --ext .ts --fix --no-error-on-unmatched-pattern src tests", @@ -53,6 +55,7 @@ "eslint-import-resolver-typescript": "^2.5.0", "eslint-plugin-import": "^2.25.3", "jest": "^27.0.4", + "jest-runner-groups": "^2.1.0", "ts-jest": "^27.0.3", "ts-node": "^10.0.0", "typescript": "^4.1.3" diff --git a/packages/logger/tests/unit/Logger.test.ts b/packages/logger/tests/unit/Logger.test.ts index 8e29686563..93ed91b95c 100644 --- a/packages/logger/tests/unit/Logger.test.ts +++ b/packages/logger/tests/unit/Logger.test.ts @@ -1,3 +1,9 @@ +/** + * Test Logger class + * + * @group unit/logger/all + */ + import { context as dummyContext } from '../../../../tests/resources/contexts/hello-world'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore diff --git a/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts b/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts index eb10b55ba8..ab810089c8 100644 --- a/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts +++ b/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts @@ -1,3 +1,9 @@ +/** + * Test Logger EnvironmentVariablesService class + * + * @group unit/logger/all + */ + import { EnvironmentVariablesService } from '../../../src/config'; describe('Class: EnvironmentVariablesService', () => { diff --git a/packages/logger/tests/unit/formatter/PowertoolLogFormatter.test.ts b/packages/logger/tests/unit/formatter/PowertoolLogFormatter.test.ts index 0f7ae288e3..466699d550 100644 --- a/packages/logger/tests/unit/formatter/PowertoolLogFormatter.test.ts +++ b/packages/logger/tests/unit/formatter/PowertoolLogFormatter.test.ts @@ -1,3 +1,9 @@ +/** + * Test Logger formatter + * + * @group unit/logger/all + */ + import { AssertionError, strictEqual } from 'assert'; import { PowertoolLogFormatter } from '../../../src/formatter'; import { UnformattedAttributes } from '../../../src/types'; diff --git a/packages/logger/tests/unit/helpers.test.ts b/packages/logger/tests/unit/helpers.test.ts index 676568a428..5ef8db8f6a 100644 --- a/packages/logger/tests/unit/helpers.test.ts +++ b/packages/logger/tests/unit/helpers.test.ts @@ -1,3 +1,9 @@ +/** + * Test Logger helpers + * + * @group unit/logger/all + */ + import { ConfigServiceInterface, EnvironmentVariablesService } from '../../src/config'; import { LogFormatter, PowertoolLogFormatter } from '../../src/formatter'; import { LoggerOptions } from '../../src/types'; diff --git a/packages/logger/tests/unit/middleware/middy.test.ts b/packages/logger/tests/unit/middleware/middy.test.ts index 125fcad0e3..4472b45527 100644 --- a/packages/logger/tests/unit/middleware/middy.test.ts +++ b/packages/logger/tests/unit/middleware/middy.test.ts @@ -1,3 +1,9 @@ +/** + * Test Logger middleware + * + * @group unit/logger/all + */ + import { EnvironmentVariablesService } from '../../../src/config'; import { injectLambdaContext } from '../../../src/middleware/middy'; import { Logger } from './../../../src'; diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 09a9779fa8..9d68016998 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -11,7 +11,8 @@ }, "scripts": { "commit": "commit", - "test": "jest --group=unit --detectOpenHandles --coverage --verbose", + "test": "npm run test:unit", + "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e": "jest --group=e2e", "watch": "jest --group=unit --watch ", "build": "tsc", diff --git a/packages/metrics/tests/e2e/decorator.test.MyFunction.ts b/packages/metrics/tests/e2e/decorator.test.MyFunction.ts index 61f1720017..1c8fe06209 100644 --- a/packages/metrics/tests/e2e/decorator.test.MyFunction.ts +++ b/packages/metrics/tests/e2e/decorator.test.MyFunction.ts @@ -14,7 +14,7 @@ const singleMetricName = process.env.EXPECTED_SINGLE_METRIC_NAME ?? 'MySingleMet const singleMetricUnit = (process.env.EXPECTED_SINGLE_METRIC_UNIT as MetricUnits) ?? MetricUnits.Percent; const singleMetricValue = process.env.EXPECTED_SINGLE_METRIC_VALUE ?? '2'; -const metrics = new Metrics({ namespace: namespace, service: serviceName }); +const metrics = new Metrics({ namespace: namespace, serviceName: serviceName }); class Lambda implements LambdaInterface { diff --git a/packages/metrics/tests/e2e/decorator.test.ts b/packages/metrics/tests/e2e/decorator.test.ts index 47394d2981..eca5988752 100644 --- a/packages/metrics/tests/e2e/decorator.test.ts +++ b/packages/metrics/tests/e2e/decorator.test.ts @@ -23,6 +23,7 @@ const integTestApp = new App(); const stack = new Stack(integTestApp, 'MetricsE2EDecoratorStack'); // GIVEN +const invocationCount = 2; const startTime = new Date(); const expectedNamespace = randomUUID(); // to easily find metrics back at assert phase const expectedServiceName = 'decoratorService'; @@ -67,28 +68,29 @@ describe('happy cases', () => { // lambda function is deployed await cloudFormation.deployStack({ stack: stackArtifact, + quiet: true, }); - }, 200000); - it('capture ColdStart Metric', async () => { - // WHEN - // invoked - await lambdaClient - .invoke({ - FunctionName: functionName, - }) - .promise(); - // twice - await lambdaClient - .invoke({ - FunctionName: functionName, - }) - .promise(); + // and invoked + for (let i = 0; i < invocationCount; i++) { + await lambdaClient + .invoke({ + FunctionName: functionName, + }) + .promise(); + } // THEN // sleep to allow metrics to be collected - await new Promise((resolve) => setTimeout(resolve, 10000)); + await new Promise((resolve) => setTimeout(resolve, 15000)); + }, 200000); + it('capture ColdStart Metric', async () => { + const expectedDimensions = [ + { Name: 'service', Value: expectedServiceName }, + { Name: 'function_name', Value: functionName }, + { Name: Object.keys(expectedDefaultDimensions)[0], Value: expectedDefaultDimensions.MyDimension }, + ]; // Check coldstart metric dimensions const coldStartMetrics = await cloudwatchClient .listMetrics({ @@ -98,24 +100,19 @@ describe('happy cases', () => { .promise(); expect(coldStartMetrics.Metrics?.length).toBe(1); const coldStartMetric = coldStartMetrics.Metrics?.[0]; - expect(coldStartMetric?.Dimensions).toStrictEqual([ - { Name: 'service', Value: expectedServiceName }, - { Name: 'function_name', Value: functionName }, - { Name: Object.keys(expectedDefaultDimensions)[0], Value: expectedDefaultDimensions.MyDimension }, - ]); + expect(coldStartMetric?.Dimensions).toStrictEqual(expectedDimensions); // Check coldstart metric value + const adjustedStartTime = new Date(startTime.getTime() - 60 * 1000); + const endTime = new Date(new Date().getTime() + 60 * 1000); + console.log(`Manual command: aws cloudwatch get-metric-statistics --namespace ${expectedNamespace} --metric-name ColdStart --start-time ${Math.floor(adjustedStartTime.getTime()/1000)} --end-time ${Math.floor(endTime.getTime()/1000)} --statistics 'Sum' --period 60 --dimensions '${JSON.stringify(expectedDimensions)}'`); const coldStartMetricStat = await cloudwatchClient .getMetricStatistics( { Namespace: expectedNamespace, - StartTime: new Date(startTime.getTime() - 60 * 1000), // minus 1 minute, - Dimensions: [ - { Name: 'service', Value: expectedServiceName }, - { Name: 'function_name', Value: functionName }, - { Name: Object.keys(expectedDefaultDimensions)[0], Value: expectedDefaultDimensions.MyDimension }, - ], - EndTime: new Date(new Date().getTime() + 60 * 1000), + StartTime: adjustedStartTime, + Dimensions: expectedDimensions, + EndTime: endTime, Period: 60, MetricName: 'ColdStart', Statistics: ['Sum'], @@ -126,27 +123,10 @@ describe('happy cases', () => { // Despite lambda has been called twice, coldstart metric sum should only be 1 const singleDataPoint = coldStartMetricStat.Datapoints ? coldStartMetricStat.Datapoints[0] : {}; - expect(singleDataPoint.Sum).toBe(1); + expect(singleDataPoint?.Sum).toBe(1); }, 15000); it('produce added Metric with the default and extra one dimensions', async () => { - // GIVEN - const invocationCount = 2; - - // WHEN - // invoked - for (let i = 0; i < invocationCount; i++) { - await lambdaClient - .invoke({ - FunctionName: functionName, - }) - .promise(); - } - - // THEN - // sleep to allow metrics to be collected - await new Promise((resolve) => setTimeout(resolve, 10000)); - // Check metric dimensions const metrics = await cloudwatchClient .listMetrics({ @@ -164,6 +144,9 @@ describe('happy cases', () => { expect(metric?.Dimensions).toStrictEqual(expectedDimensions); // Check coldstart metric value + const adjustedStartTime = new Date(startTime.getTime() - 60 * 1000); + const endTime = new Date(new Date().getTime() + 60 * 1000); + console.log(`Manual command: aws cloudwatch get-metric-statistics --namespace ${expectedNamespace} --metric-name ${expectedMetricName} --start-time ${Math.floor(adjustedStartTime.getTime()/1000)} --end-time ${Math.floor(endTime.getTime()/1000)} --statistics 'Sum' --period 60 --dimensions '${JSON.stringify(expectedDimensions)}'`); const metricStat = await cloudwatchClient .getMetricStatistics( { @@ -181,7 +164,7 @@ describe('happy cases', () => { // Since lambda has been called twice in this test and potentially more in others, metric sum should be at least of expectedMetricValue * invocationCount const singleDataPoint = metricStat.Datapoints ? metricStat.Datapoints[0] : {}; - expect(singleDataPoint.Sum).toBeGreaterThanOrEqual(parseInt(expectedMetricValue) * invocationCount); + expect(singleDataPoint?.Sum).toBeGreaterThanOrEqual(parseInt(expectedMetricValue) * invocationCount); }, 15000); afterAll(async () => { @@ -195,6 +178,7 @@ describe('happy cases', () => { await cloudFormation.destroyStack({ stack: stackArtifact, + quiet: true, }); } }, 200000); diff --git a/packages/metrics/tests/e2e/standardFunctions.test.ts b/packages/metrics/tests/e2e/standardFunctions.test.ts index ba6cc448db..cf970277f6 100644 --- a/packages/metrics/tests/e2e/standardFunctions.test.ts +++ b/packages/metrics/tests/e2e/standardFunctions.test.ts @@ -11,7 +11,6 @@ import { randomUUID } from 'crypto'; import * as lambda from '@aws-cdk/aws-lambda-nodejs'; import { Tracing } from '@aws-cdk/aws-lambda'; import { App, Stack } from '@aws-cdk/core'; -import { Tracing } from '@aws-cdk/aws-lambda'; import { SdkProvider } from 'aws-cdk/lib/api/aws-auth'; import { CloudFormationDeployments } from 'aws-cdk/lib/api/cloudformation-deployments'; import * as AWS from 'aws-sdk'; @@ -24,6 +23,7 @@ const integTestApp = new App(); const stack = new Stack(integTestApp, 'MetricsE2EStandardFunctionsStack'); // GIVEN +const invocationCount = 2; const startTime = new Date(); const expectedNamespace = randomUUID(); // to easily find metrics back at assert phase const expectedServiceName = 'MyFunctionWithStandardHandler'; @@ -68,28 +68,24 @@ describe('happy cases', () => { // lambda function is deployed await cloudFormation.deployStack({ stack: stackArtifact, + quiet: true, }); - }, 200000); - it('capture ColdStart Metric', async () => { - // WHEN - // invoked - await lambdaClient - .invoke({ - FunctionName: functionName, - }) - .promise(); - // twice - await lambdaClient - .invoke({ - FunctionName: functionName, - }) - .promise(); + // and invoked + for (let i = 0; i < invocationCount; i++) { + await lambdaClient + .invoke({ + FunctionName: functionName, + }) + .promise(); + } // THEN // sleep to allow metrics to be collected - await new Promise((resolve) => setTimeout(resolve, 10000)); + await new Promise((resolve) => setTimeout(resolve, 15000)); + }, 200000); + it('capture ColdStart Metric', async () => { // Check coldstart metric dimensions const coldStartMetrics = await cloudwatchClient .listMetrics({ @@ -102,13 +98,16 @@ describe('happy cases', () => { expect(coldStartMetric?.Dimensions).toStrictEqual([{ Name: 'service', Value: expectedServiceName }]); // Check coldstart metric value + const adjustedStartTime = new Date(startTime.getTime() - 60 * 1000); + const endTime = new Date(new Date().getTime() + 60 * 1000); + console.log(`Manual command: aws cloudwatch get-metric-statistics --namespace ${expectedNamespace} --metric-name ColdStart --start-time ${Math.floor(adjustedStartTime.getTime()/1000)} --end-time ${Math.floor(endTime.getTime()/1000)} --statistics 'Sum' --period 60 --dimensions '${JSON.stringify([{ Name: 'service', Value: expectedServiceName }])}'`); const coldStartMetricStat = await cloudwatchClient .getMetricStatistics( { Namespace: expectedNamespace, - StartTime: new Date(startTime.getTime() - 60 * 1000), // minus 1 minute, + StartTime: adjustedStartTime, Dimensions: [{ Name: 'service', Value: expectedServiceName }], - EndTime: new Date(new Date().getTime() + 60 * 1000), + EndTime: endTime, Period: 60, MetricName: 'ColdStart', Statistics: ['Sum'], @@ -119,27 +118,10 @@ describe('happy cases', () => { // Despite lambda has been called twice, coldstart metric sum should only be 1 const singleDataPoint = coldStartMetricStat.Datapoints ? coldStartMetricStat.Datapoints[0] : {}; - expect(singleDataPoint.Sum).toBe(1); + expect(singleDataPoint?.Sum).toBe(1); }, 15000); it('produce added Metric with the default and extra one dimensions', async () => { - // GIVEN - const invocationCount = 2; - - // WHEN - // invoked - for (let i = 0; i < invocationCount; i++) { - await lambdaClient - .invoke({ - FunctionName: functionName, - }) - .promise(); - } - - // THEN - // sleep to allow metrics to be collected - await new Promise((resolve) => setTimeout(resolve, 10000)); - // Check metric dimensions const metrics = await cloudwatchClient .listMetrics({ @@ -157,6 +139,9 @@ describe('happy cases', () => { expect(metric?.Dimensions).toStrictEqual(expectedDimensions); // Check coldstart metric value + const adjustedStartTime = new Date(startTime.getTime() - 60 * 1000); + const endTime = new Date(new Date().getTime() + 60 * 1000); + console.log(`Manual command: aws cloudwatch get-metric-statistics --namespace ${expectedNamespace} --metric-name ${expectedMetricName} --start-time ${Math.floor(adjustedStartTime.getTime()/1000)} --end-time ${Math.floor(endTime.getTime()/1000)} --statistics 'Sum' --period 60 --dimensions '${JSON.stringify(expectedDimensions)}'`); const metricStat = await cloudwatchClient .getMetricStatistics( { @@ -188,6 +173,7 @@ describe('happy cases', () => { await cloudFormation.destroyStack({ stack: stackArtifact, + quiet: true, }); } }, 200000); diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 046c20ff5d..1e27324f13 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -11,7 +11,8 @@ }, "scripts": { "commit": "commit", - "test": "jest --group=unit --detectOpenHandles --coverage --verbose", + "test": "npm run test:unit", + "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e": "jest --group=e2e", "watch": "jest --watch", "build": "tsc", diff --git a/packages/tracing/tests/e2e/tracer.test.ts b/packages/tracing/tests/e2e/tracer.test.ts index a5210fded9..89270308f1 100644 --- a/packages/tracing/tests/e2e/tracer.test.ts +++ b/packages/tracing/tests/e2e/tracer.test.ts @@ -17,6 +17,7 @@ import type { ParsedDocument } from '../helpers/tracesUtils'; const xray = new AWS.XRay(); const lambdaClient = new AWS.Lambda(); +const stsClient = new AWS.STS(); describe('Tracer integration tests', () => { @@ -37,15 +38,12 @@ describe('Tracer integration tests', () => { // Prepare integTestApp = new App(); - const account = process.env.CDK_DEPLOY_ACCOUNT || process.env.CDK_DEFAULT_ACCOUNT; - const region = process.env.CDK_DEPLOY_REGION || process.env.CDK_DEFAULT_REGION; - stack = new Stack(integTestApp, 'TracerIntegTest', { - env: { - account, - region - } - }); + stack = new Stack(integTestApp, 'TracerIntegTest'); + const identity = await stsClient.getCallerIdentity().promise(); + const account = identity.Account; + const region = process.env.AWS_REGION; + const functions = [ 'Manual', 'Middleware', @@ -92,6 +90,7 @@ describe('Tracer integration tests', () => { const cloudFormation = new CloudFormationDeployments({ sdkProvider }); await cloudFormation.deployStack({ stack: stackArtifact, + quiet: true, }); // Act @@ -125,6 +124,7 @@ describe('Tracer integration tests', () => { await cloudFormation.destroyStack({ stack: stackArtifact, + quiet: true, }); } diff --git a/packages/tracing/tests/helpers/tracesUtils.ts b/packages/tracing/tests/helpers/tracesUtils.ts index 54de198f8c..0633a485c9 100644 --- a/packages/tracing/tests/helpers/tracesUtils.ts +++ b/packages/tracing/tests/helpers/tracesUtils.ts @@ -58,10 +58,12 @@ interface ParsedTrace { } const getTraces = async (xrayClient: XRay, startTime: Date, resourceArn: string, expectedTraces: number): Promise => { + const endTime = new Date(); + console.log(`Manual query: aws xray get-trace-summaries --start-time ${Math.floor(startTime.getTime()/1000)} --end-time ${Math.floor(endTime.getTime()/1000)} --filter-expression 'resource.arn = "${resourceArn}"'`); const traces = await xrayClient .getTraceSummaries({ StartTime: startTime, - EndTime: new Date(), + EndTime: endTime, FilterExpression: `resource.arn = "${resourceArn}"`, }) .promise(); From 2c3df9378ac191f6da6cb5f458f6227d6466cafa Mon Sep 17 00:00:00 2001 From: Florian Chazal Date: Fri, 14 Jan 2022 19:07:21 +0100 Subject: [PATCH 2/3] fix(all): fix latest release broken by change of npm pack result on common (#470) * Revert "fix(build): Update contributing.md and fix npm ci (#417)" This reverts commit 279ad984f71d5b157a13cffeab52602f2c09c1f8. * revert commons version --- CONTRIBUTING.md | 10 ++++------ packages/commons/tsconfig.json | 1 - packages/logger/package-lock.json | 4 ++-- packages/logger/package.json | 2 +- packages/logger/tsconfig.json | 5 ----- packages/metrics/package-lock.json | 4 ++-- packages/metrics/package.json | 2 +- packages/metrics/tsconfig.json | 5 ----- packages/tracing/package-lock.json | 4 ++-- packages/tracing/package.json | 2 +- packages/tracing/tsconfig.json | 5 ----- 11 files changed, 13 insertions(+), 31 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 818afe2b66..7b82681f54 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,6 @@ Please read through this document before submitting any issues or pull requests information to effectively respond to your bug report or contribution. ## Security issue notifications - If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public GitHub issue. ## Reporting Bugs/Feature Requests @@ -36,7 +35,7 @@ Contributions via pull requests are much appreciated. Before sending us a pull r To send us a pull request, please follow these steps: 1. Fork the repository. -2. Install dependencies: `npm ci` +2. Install dependencies: `npm install` 3. Prepare utilities like commit hooks: `npm run init-environment` 4. Create a new branch to focus on the specific change you are contributing e.g. `git checkout -b improv/logger-debug-sampling` 5. Run all tests, and code baseline checks: `npm run test` @@ -55,9 +54,8 @@ You might find useful to run both the documentation website and the API referenc * **Docs website**: You can build and start a local docs website by running these two commands. - -* `npm run docs-buildDockerImage` OR `docker build -t squidfunk/mkdocs-material ./docs/` -* `npm run docs-runLocalDocker` OR `docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material` + - `npm run docs-buildDockerImage` OR `docker build -t squidfunk/mkdocs-material ./docs/` + - `npm run docs-runLocalDocker` OR `docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material` ### Tests @@ -181,4 +179,4 @@ TODO See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. -We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. +We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. \ No newline at end of file diff --git a/packages/commons/tsconfig.json b/packages/commons/tsconfig.json index 460e4ec937..cbd9922f32 100644 --- a/packages/commons/tsconfig.json +++ b/packages/commons/tsconfig.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "composite": true, "experimentalDecorators": true, "noImplicitAny": true, "target": "ES2020", diff --git a/packages/logger/package-lock.json b/packages/logger/package-lock.json index 1e5843fa76..7cbe1f93aa 100644 --- a/packages/logger/package-lock.json +++ b/packages/logger/package-lock.json @@ -6,10 +6,10 @@ "packages": { "": { "name": "@aws-lambda-powertools/logger", - "version": "0.2.0", + "version": "0.3.0", "license": "MIT", "dependencies": { - "@aws-lambda-powertools/commons": "0.2.0", + "@aws-lambda-powertools/commons": "^0.2.0", "@middy/core": "^2.5.3", "@types/aws-lambda": "^8.10.72", "lodash.clonedeep": "^4.5.0", diff --git a/packages/logger/package.json b/packages/logger/package.json index 1cd32cf7b7..e8860cac7e 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -71,7 +71,7 @@ "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^0.3.0", + "@aws-lambda-powertools/commons": "^0.2.0", "@middy/core": "^2.5.3", "@types/aws-lambda": "^8.10.72", "lodash.clonedeep": "^4.5.0", diff --git a/packages/logger/tsconfig.json b/packages/logger/tsconfig.json index 8c88af047a..20da6e39a9 100644 --- a/packages/logger/tsconfig.json +++ b/packages/logger/tsconfig.json @@ -26,10 +26,5 @@ "types": [ "jest", "node" - ], - "references": [ - { - "path": "../commons" - } ] } \ No newline at end of file diff --git a/packages/metrics/package-lock.json b/packages/metrics/package-lock.json index bb7b7716dd..db096118c9 100644 --- a/packages/metrics/package-lock.json +++ b/packages/metrics/package-lock.json @@ -6,10 +6,10 @@ "packages": { "": { "name": "@aws-lambda-powertools/metrics", - "version": "0.2.0", + "version": "0.3.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "0.2.0", + "@aws-lambda-powertools/commons": "^0.2.0", "@types/aws-lambda": "^8.10.72" }, "devDependencies": { diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 9d68016998..d18c9f7a22 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -84,7 +84,7 @@ "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^0.3.0", + "@aws-lambda-powertools/commons": "^0.2.0", "@types/aws-lambda": "^8.10.72" } } diff --git a/packages/metrics/tsconfig.json b/packages/metrics/tsconfig.json index de7412a5c3..582618277f 100644 --- a/packages/metrics/tsconfig.json +++ b/packages/metrics/tsconfig.json @@ -28,10 +28,5 @@ "types": [ "jest", "node" - ], - "references": [ - { - "path": "../commons" - } ] } \ No newline at end of file diff --git a/packages/tracing/package-lock.json b/packages/tracing/package-lock.json index 7093167d80..f7a3c60054 100644 --- a/packages/tracing/package-lock.json +++ b/packages/tracing/package-lock.json @@ -6,10 +6,10 @@ "packages": { "": { "name": "@aws-lambda-powertools/tracer", - "version": "0.2.0", + "version": "0.3.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "0.2.0", + "@aws-lambda-powertools/commons": "^0.2.0", "@middy/core": "^2.5.3", "aws-xray-sdk-core": "^3.3.3" }, diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 1e27324f13..cc3d897347 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -62,7 +62,7 @@ "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^0.3.0", + "@aws-lambda-powertools/commons": "^0.2.0", "@middy/core": "^2.5.3", "aws-xray-sdk-core": "^3.3.3" } diff --git a/packages/tracing/tsconfig.json b/packages/tracing/tsconfig.json index 723ebdaf7e..8b93f8c299 100644 --- a/packages/tracing/tsconfig.json +++ b/packages/tracing/tsconfig.json @@ -28,10 +28,5 @@ "types": [ "jest", "node" - ], - "references": [ - { - "path": "../commons" - } ] } \ No newline at end of file From cf435681b01fee5aec40162e3434ab29adf61313 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 14 Jan 2022 18:23:01 +0000 Subject: [PATCH 3/3] chore(release): v0.3.1 [skip ci] --- CHANGELOG.md | 11 +++++++++++ lerna.json | 2 +- packages/commons/CHANGELOG.md | 11 +++++++++++ packages/commons/package-lock.json | 2 +- packages/commons/package.json | 2 +- packages/logger/CHANGELOG.md | 11 +++++++++++ packages/logger/package-lock.json | 2 +- packages/logger/package.json | 2 +- packages/metrics/CHANGELOG.md | 11 +++++++++++ packages/metrics/package-lock.json | 2 +- packages/metrics/package.json | 2 +- packages/tracing/CHANGELOG.md | 11 +++++++++++ packages/tracing/package-lock.json | 2 +- packages/tracing/package.json | 2 +- 14 files changed, 64 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cdc603282..b055574bb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.1](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.3.0...v0.3.1) (2022-01-14) + + +### Bug Fixes + +* **all:** fix latest release broken by change of npm pack result on common ([#470](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/470)) ([2c3df93](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/2c3df9378ac191f6da6cb5f458f6227d6466cafa)), closes [#417](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/417) + + + + + # [0.3.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.2.0...v0.3.0) (2022-01-14) diff --git a/lerna.json b/lerna.json index 16eb7ef913..5ce03a4662 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "packages": [ "packages/*" ], - "version": "0.3.0", + "version": "0.3.1", "npmClient": "npm", "message": "chore(release): %s [skip ci]" } diff --git a/packages/commons/CHANGELOG.md b/packages/commons/CHANGELOG.md index 5ad73697f2..ebe74904c8 100644 --- a/packages/commons/CHANGELOG.md +++ b/packages/commons/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.1](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.3.0...v0.3.1) (2022-01-14) + + +### Bug Fixes + +* **all:** fix latest release broken by change of npm pack result on common ([#470](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/470)) ([2c3df93](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/2c3df9378ac191f6da6cb5f458f6227d6466cafa)), closes [#417](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/417) + + + + + # [0.3.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.2.0...v0.3.0) (2022-01-14) diff --git a/packages/commons/package-lock.json b/packages/commons/package-lock.json index 0892fdf3ad..52d641572c 100644 --- a/packages/commons/package-lock.json +++ b/packages/commons/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/commons", - "version": "0.3.0", + "version": "0.3.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/commons/package.json b/packages/commons/package.json index fe570f38a5..162f21243d 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/commons", - "version": "0.3.0", + "version": "0.3.1", "description": "A shared utility package for AWS Lambda powertools (TypeScript) libraries", "author": { "name": "Amazon Web Services", diff --git a/packages/logger/CHANGELOG.md b/packages/logger/CHANGELOG.md index 86285ddb57..ac48ccafbb 100644 --- a/packages/logger/CHANGELOG.md +++ b/packages/logger/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.1](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.3.0...v0.3.1) (2022-01-14) + + +### Bug Fixes + +* **all:** fix latest release broken by change of npm pack result on common ([#470](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/470)) ([2c3df93](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/2c3df9378ac191f6da6cb5f458f6227d6466cafa)), closes [#417](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/417) + + + + + # [0.3.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.2.0...v0.3.0) (2022-01-14) diff --git a/packages/logger/package-lock.json b/packages/logger/package-lock.json index 7cbe1f93aa..e2ab0dd93d 100644 --- a/packages/logger/package-lock.json +++ b/packages/logger/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/logger", - "version": "0.3.0", + "version": "0.3.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/logger/package.json b/packages/logger/package.json index e8860cac7e..9b4891db27 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/logger", - "version": "0.3.0", + "version": "0.3.1", "description": "The logging package for the AWS Lambda powertools (TypeScript) library", "author": { "name": "Amazon Web Services", diff --git a/packages/metrics/CHANGELOG.md b/packages/metrics/CHANGELOG.md index b63a73f71f..d40b1bb0d6 100644 --- a/packages/metrics/CHANGELOG.md +++ b/packages/metrics/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.1](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.3.0...v0.3.1) (2022-01-14) + + +### Bug Fixes + +* **all:** fix latest release broken by change of npm pack result on common ([#470](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/470)) ([2c3df93](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/2c3df9378ac191f6da6cb5f458f6227d6466cafa)), closes [#417](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/417) + + + + + # [0.3.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.2.0...v0.3.0) (2022-01-14) diff --git a/packages/metrics/package-lock.json b/packages/metrics/package-lock.json index db096118c9..b3be8a93d8 100644 --- a/packages/metrics/package-lock.json +++ b/packages/metrics/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/metrics", - "version": "0.3.0", + "version": "0.3.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/metrics/package.json b/packages/metrics/package.json index d18c9f7a22..0ca0116eed 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/metrics", - "version": "0.3.0", + "version": "0.3.1", "description": "The metrics package for the AWS Lambda powertools (TypeScript) library", "author": { "name": "Amazon Web Services", diff --git a/packages/tracing/CHANGELOG.md b/packages/tracing/CHANGELOG.md index 5983b16ebf..8a7ddfb6a4 100644 --- a/packages/tracing/CHANGELOG.md +++ b/packages/tracing/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.1](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.3.0...v0.3.1) (2022-01-14) + + +### Bug Fixes + +* **all:** fix latest release broken by change of npm pack result on common ([#470](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/470)) ([2c3df93](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/2c3df9378ac191f6da6cb5f458f6227d6466cafa)), closes [#417](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/417) + + + + + # [0.3.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.2.0...v0.3.0) (2022-01-14) diff --git a/packages/tracing/package-lock.json b/packages/tracing/package-lock.json index f7a3c60054..61d7e6a8b3 100644 --- a/packages/tracing/package-lock.json +++ b/packages/tracing/package-lock.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/tracer", - "version": "0.3.0", + "version": "0.3.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/tracing/package.json b/packages/tracing/package.json index cc3d897347..3df8e364c9 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/tracer", - "version": "0.3.0", + "version": "0.3.1", "description": "The tracer package for the AWS Lambda powertools (TypeScript) library", "author": { "name": "Amazon Web Services",