Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release 7.1.0 #1428

Merged
merged 152 commits into from
Jul 23, 2024
Merged

release 7.1.0 #1428

merged 152 commits into from
Jul 23, 2024

Conversation

JoernBerkefeld
Copy link
Contributor

@JoernBerkefeld JoernBerkefeld commented Jul 8, 2024

Release details

Checklist

Before merge

  • Wiki updated with info in ticket listed under Documentation
  • ran npm audit fix
  • ran npm run lint-ts
  • ran npm run lint:fix
  • ran npm run version:major/minor/patch
  • updated bug template to include the new version
  • updated .mcdevrc for tests to the new version

After merge

  • merged all dependabot PRs to main branch
  • moved version tag to merge commit & pushed to remote
  • closed GitHub milestone
  • created new GitHub Release

Documentation

#1428 (comment)

#1428 (comment)

publish: #1428 (comment)
execute: #1428 (comment)
pause: #1428 (comment)
schedule: #1428 (comment)

buildTemplate: #1428 (comment)
build: #1428 (comment)

done.

#1428 (comment)

Issues

@JoernBerkefeld JoernBerkefeld added the enhancement New feature or request; requires increasing the minor version of mcdev. Jira issue-type "Story" label Jul 8, 2024
@JoernBerkefeld JoernBerkefeld added this to the 7.1.0 milestone Jul 8, 2024
@JoernBerkefeld JoernBerkefeld self-assigned this Jul 8, 2024
Copy link

github-actions bot commented Jul 8, 2024

Coverage Report

Commit:61317fc
Base: main@182011d

Type Base This PR
Total Statements Coverage  69.2%  70.56%  (+1.36%)
Total Branches Coverage  67.71%  69.38%  (+1.67%)
Total Functions Coverage  80.85%  82.37%  (+1.52%)
Total Lines Coverage  69.2%  70.56%  (+1.36%)
Details (changed files):
File Statements Branches Functions Lines

JoernBerkefeld and others added 22 commits July 8, 2024 23:45
…urney-version

Feature/1148 publish journey version
…port-to-execute-pause-publish-fixkeys-replacecbreference

Feature/1433 add metadata support to execute, schedule, pause and publish
Bumps [inquirer](https://github.com/SBoudrias/Inquirer.js) from 9.2.6 to 10.0.1.
- [Release notes](https://github.com/SBoudrias/Inquirer.js/releases)
- [Commits](https://github.com/SBoudrias/Inquirer.js/compare/inquirer@9.2.6...inquirer@10.0.1)

---
updated-dependencies:
- dependency-name: inquirer
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…op/inquirer-10.0.1

Bump inquirer from 9.2.6 to 10.0.1
Bumps [prettier-plugin-sql](https://github.com/un-ts/prettier) from 0.18.0 to 0.18.1.
- [Release notes](https://github.com/un-ts/prettier/releases)
- [Changelog](https://github.com/un-ts/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/un-ts/prettier/compare/prettier-plugin-sql@0.18.0...prettier-plugin-sql@0.18.1)

---
updated-dependencies:
- dependency-name: prettier-plugin-sql
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…op/prettier-plugin-sql-0.18.1

Bump prettier-plugin-sql from 0.18.0 to 0.18.1
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.9 to 20.14.10.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…op/types/node-20.14.10

Bump @types/node from 20.14.9 to 20.14.10
Bumps [p-limit](https://github.com/sindresorhus/p-limit) from 5.0.0 to 6.1.0.
- [Release notes](https://github.com/sindresorhus/p-limit/releases)
- [Commits](sindresorhus/p-limit@v5.0.0...v6.1.0)

---
updated-dependencies:
- dependency-name: p-limit
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…op/p-limit-6.1.0

Bump p-limit from 5.0.0 to 6.1.0
dependabot bot and others added 22 commits July 22, 2024 22:30
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.1.2 to 5.2.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](prettier/eslint-plugin-prettier@v5.1.2...v5.2.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…op/eslint-plugin-prettier-5.2.1

Bump eslint-plugin-prettier from 5.1.2 to 5.2.1
Bumps [mocha](https://github.com/mochajs/mocha) from 10.6.0 to 10.7.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)
- [Commits](mochajs/mocha@v10.6.0...v10.7.0)

---
updated-dependencies:
- dependency-name: mocha
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…op/mocha-10.7.0

Bump mocha from 10.6.0 to 10.7.0
…-folder-over-shared-folder-id-during-deployment

Bug/1487 prefer picking local folder over shared folder id during deployment
Bumps [semver](https://github.com/npm/node-semver) from 7.6.0 to 7.6.3.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](npm/node-semver@v7.6.0...v7.6.3)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…op/semver-7.6.3

Bump semver from 7.6.0 to 7.6.3
…ce-data-entry-events-for-journeys

Feature/1478 support salesforce data entry events for journeys
@JoernBerkefeld JoernBerkefeld merged commit 100813f into main Jul 23, 2024
16 checks passed
@JoernBerkefeld
Copy link
Contributor Author

Documentation

deploy

Command: mcdev deploy [business unit] [metadata type] [metadata key] [--metadata] [--fromRetrieve] [--refresh] [--keySuffix] [--noMidSuffix] [--changeKeyValue=yourNewKey] [--changeKeyField=otherFieldInJson] [--execute] [--schedule] [--fixShared] [--noUpdate] [--publish] [--skipStatusCheck]

...

deploy with --noUpdate

If you want to ensure that your deployment does not override existing metadata but instead is limited to creating new elements, then add the --noUpdate option to your call.

mcdev deploy cred/bu --noUpdate

deploy with --publish (and --skipStatusCheck)

By adding the --publish flag, you tell deploy to run mcdev publish for supported types as a post-deployment step. See publish method for more details

mcdev deploy cred/bu journey --publish 
mcdev deploy cred/bu journey --publish --skipStatusCheck

publish

Command: mcdev publish <business unit> [metadata type] [metadata key] [--like] [--skipStatusCheck] [--metadata]

You can publish a draft journey using this command. This is the same as clicking on Publish in the web interface. If you don't care about the publishing result, you can skip that check (it might be useful in CI/CD environments). Generally, we recommend against using—-skipStatusCheck because it happens often that something is blocking the publishing, and without that check, you would not know about the problem.

mcdev publish cred/bu journey myJourneyKey
mcdev publish cred/bu journey id:myJourneyId
mcdev publish cred/bu -m journey:myJourneyKey -m journey:id:myJourneyId
mcdev publish cred/bu journey myJourneyKey --skipStatusCheck

@JoernBerkefeld
Copy link
Contributor Author

JoernBerkefeld commented Jul 31, 2024

Documentation

execute

Command: mcdev execute <business unit> [type] [key] [--like] [--schedule] [--metadata]

Alias: mcdev exec / mcdev start

This command lets you start / run / execute metadata of a given type and key.

Currently supported types:

Name CLI Argument Effect
Automation automation RunOnce or Schedules automation according to already existing schedule
Query query Starts query execution

Example:

mcdev execute MyProject/DEV automation key1
mcdev execute MyProject/DEV automation "key1,key2,key3"

mcdev execute MyProject/DEV query keyA
mcdev execute MyProject/DEV query "keyB,keyC,keyD"

mcdev execute MyProject/DEV -m automation:key1 -m automation:key2 -m query:keyA
mcdev execute MyProject/DEV -m automation:key1 automation:key2 query:keyB

@JoernBerkefeld
Copy link
Contributor Author

Documentation

pause

Command: mcdev pause <business unit> [type] [key] [--like] [--metadata]

Alias: mcdev p / mcdev stop

This command lets you pause metadata of a given type and key.

Currently supported types:

Name CLI Argument Effect
Automation automation pauses scheduled automation

Example:

mcdev pause MyProject/DEV automation key1
mcdev pause MyProject/DEV automation "key1,key2,key3"
mcdev pause MyProject/DEV -m automation:key1 -m automation:key2
mcdev pause MyProject/DEV -m automation:key1 automation:key2

@JoernBerkefeld
Copy link
Contributor Author

Documentation

schedule

Command: mcdev schedule <business unit> [type] [key] [--like] [--metadata]

Alias: mcdev sched

This command is a shortcut for mcdev execute --schedule.

Currently supported types:

Name CLI Argument Effect
Automation automation Schedules automation according to already existing (but paused) schedule

Example:

mcdev schedule MyProject/DEV automation key1
mcdev schedule MyProject/DEV automation "key1,key2,key3"
mcdev schedule MyProject/DEV -m automation:key1 -m automation:key2
mcdev schedule MyProject/DEV -m automation:key1 automation:key2

@JoernBerkefeld
Copy link
Contributor Author

JoernBerkefeld commented Jul 31, 2024

Documentation

buildTemplate

Command: mcdev buildTemplate <business unit> [type] [key] [market] [--metadata] [--market] [--dependencies] [--retrieve]

Alias: mcdev bt

The bt command uses previously retrieved metadata on your local computer and uses your market configuration in .mcdevrc.json to replace strings with variables. The result is then stored in your template/ folder. Please note that files stored here will keep their original name, despite this possibly containing market-specific suffixes or similar. Also note, that contrary to the deploy & retrieve folders, you will not see credential- or Business Unit-sub-folders here.

This command is a prerequisite for the buildDefintion command. Alternatively, you can copy-paste retrieved metadata from your retrieve/ folder to your template/ folder and update it manually - or even create it from scratch.

Note: Before using this command, you need to configure your markets first! Check out our guide on Market Configuration to understand how to use templating and prepare your market config.

Currently supported types: Check out Metadata Type Support.

Example:

mcdev bt MyProject/DEV dataExtension MyUserTable pilotMarketDEV1
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable

This will result in MyUserTable.dataExtension-meta.json being created in your template/ directory.

buildTemplate with --dependencies:

Using the --dependencies option you turn on the most powerful templating feature that allows you to find all related other metadata items across all types. This includes other items linked via r__ field ("r" means "relationship") in their JSON and assets loaded via AMPscript or SSJS using the functions ContentBlockByKey, ContentBlockByName and ContentBlockById. The logic works recursively, finding dependencies of dependencies on all levels.

Example:

mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --dependencies

buildTemplate with --retrieve:

When running buildTemplate you are solely using whats saved locally on your computer. If you want to get a fresh version from the server first, you can of course run mcdev retrieve yourself - or you include the --retrieve option here.
If used together with --dependencies, this will download all metadata types for the selected BU. If used without --dependencies option it will only retrieve the types you specified as part of your buildTemplate command.

Example:

mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --retrieve
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --dependencies --retrieve

@JoernBerkefeld
Copy link
Contributor Author

Documentation

build

Command: mcdev build <--fromBu> <--toBu> <--fromMarket> <--toMarket> <--metadata> [--bulk] [--dependencies] [--retrieve]

This combines the power of buildTemplate and buildDefinition in one command, making it easier if you continuously use both commands sequentially.

Example:

// before
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2
mcdev bd MyProject/QA --market pilotMarketQA1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2

// after
mcdev build --fromBu MyProject/DEV --toBu MyProject/QA --fromMarket pilotMarketDEV1 --toMarket pilotMarketQA1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2

And if you already have market lists set up and want to use buildDefinitionBulk instead all you need to do is append --bulk:

Example:

// before
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2
mcdev bdb pilotMarketsQA -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2

// after
mcdev build --fromBu MyProject/DEV --fromMarket pilotMarketDEV1 --toMarket pilotMarketsQA --bulk -m dataExtension:table1 -m dataExtension:table2 -m dataExtension:table3 -m query:sql1 -m query:sql2

Note how in this bulk-example the parameter --toBu MyProject/QA was omitted and that --toMarket pilotMarketsQA now holds the name of the market list that bdb needs to work.

build with --dependencies (and with --retrieve):

These two parameters are passed through to buildTemplate. Please see that commands documentation for details. The resulting list of types & keys of whatever buildTemplate will create are then handed over to buildDefinition(Bulk), making this a powerful solution.

@JoernBerkefeld
Copy link
Contributor Author

describeSoap

Command: mcdev describeSoap [soap object]

Alias: mcdev describe, mcdev soap

This is mainly aimed at contributors to get a quick overview on available fields for the various SOAP Web Service API Objects. While there is a (not always correct) overview on possible SOAP operations per object, there is no good page that shows which fields can be retrieved or deployed.

Example:

mcdev soap DataFolder

Response:

Name                        DataType       IsUpdatable  IsRetrievable  MaxLength  IsRequired
--------------------------  -------------  -----------  -------------  ---------  ----------
ID                          Int32          true         true                      true
Client.ID                   Int32          true         true                      true
ParentFolder.ID             Int32          true         true                      false
ParentFolder.CustomerKey    String         true         true           36         false
ParentFolder.ObjectID       Guid           true         true                      false
ParentFolder.Name           String         true         true           100        false
ParentFolder.Description    String         true         true           200        false
ParentFolder.ContentType    String         true         true           50         false
ParentFolder.IsActive       Boolean        false        true                      false
ParentFolder.IsEditable     Boolean        false        true                      false
ParentFolder.AllowChildren  Boolean        false        true                      false
Name                        String         true         true           100        true
Description                 String         true         true           200        true
ContentType                 String         true         true           50         true
IsActive                    Boolean        true         true                      false
IsEditable                  Boolean        true         true                      false
AllowChildren               Boolean        true         true                      false
CreatedDate                 DateTime       true         true                      true
ModifiedDate                DateTime       true         true                      true
Client.ModifiedBy           Int32          true         true                      true
ObjectID                    String         true         true                      false
CustomerKey                 String         true         true           36         false
Client.EnterpriseID         Int64          true         true                      false
Client.CreatedBy            Int32          true         true                      false
ParentFolder                DataFolder     true         false
Client                      ClientID       true         false
PartnerKey                  String         true         false
PartnerProperties           APIProperty[]  true         false
Owner                       Owner          true         false
CorrelationID               String         true         false
ObjectState                 String         true         false
IsPlatformObject            Boolean        true         false

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment