From 334e865ce78f25bbbaa737cc914232e72d33ff45 Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Wed, 26 Nov 2025 08:43:06 +0100 Subject: [PATCH 1/6] Add docs on rules --- docs/configuration/rules/_category_.json | 4 + docs/configuration/rules/config.md | 288 +++++++++++++++++++++++ docs/configuration/rules/index.md | 249 ++++++++++++++++++++ docs/configuration/rules/matchRules.md | 216 +++++++++++++++++ docs/configuration/rules/name.md | 65 +++++ docs/configuration/rules/slug.md | 75 ++++++ 6 files changed, 897 insertions(+) create mode 100755 docs/configuration/rules/_category_.json create mode 100644 docs/configuration/rules/config.md create mode 100644 docs/configuration/rules/index.md create mode 100644 docs/configuration/rules/matchRules.md create mode 100644 docs/configuration/rules/name.md create mode 100644 docs/configuration/rules/slug.md diff --git a/docs/configuration/rules/_category_.json b/docs/configuration/rules/_category_.json new file mode 100755 index 0000000..cb1f862 --- /dev/null +++ b/docs/configuration/rules/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "rules", + "position": 1 +} diff --git a/docs/configuration/rules/config.md b/docs/configuration/rules/config.md new file mode 100644 index 0000000..97f8819 --- /dev/null +++ b/docs/configuration/rules/config.md @@ -0,0 +1,288 @@ +--- +title: "config" +--- + +## Configuration + +
__name__: config
+
__type__: object
+
__required__: no
+ +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Symfony packages", + "slug": "symfony-group", + "matchRules": [ + { + "type": "names", + "values": ["symfony/*"] + } + ], + // highlight-start + "config": { + "automerge": 1 + } + // highlight-end + } + ] + } + } +} +``` + +An optional configuration object that overrides the base Violinist configuration for packages matching this rule. + +## Explanation + +The `config` property allows you to specify different configuration settings for different groups of packages. Any Violinist configuration option can be set here, and it will override the base configuration (or default values) for packages that match the rule. + +This is particularly useful for: + +- Automerging certain packages but not others +- Applying different labels or assignees to different package groups +- Setting different update strategies for different package types +- Directing updates to different branches based on package importance + +## Available Configuration Options + +Any configuration option that can be set at the root level can also be set in a rule's config. Some commonly used options include: + +### Update Behavior +- `automerge` - Enable/disable automerge for matching packages +- `automerge_security` - Enable/disable automerge for security updates +- `automerge_method` - Set merge method (merge, rebase, squash) +- `automerge_method_security` - Set merge method for security updates +- `composer_outdated_flag` - Update level (major, minor, patch) +- `update_dev_dependencies` - Include/exclude dev dependencies +- `security_updates_only` - Only update security vulnerabilities + +### Pull Request Settings +- `labels` - Array of labels to add to pull requests +- `labels_security` - Array of labels for security update pull requests +- `assignees` - Array of usernames to assign to pull requests +- `default_branch` - Target branch for pull requests +- `default_branch_security` - Target branch for security update pull requests +- `one_pull_request_per_package` - Create separate PRs per package + +### Filtering +- `allow_list` - Explicitly allow specific packages +- `blocklist` - Block specific packages +- `check_only_direct_dependencies` - Only check direct dependencies + +### Scheduling +- `timeframe_disallowed` - Time window to avoid creating updates +- `timezone` - Timezone for scheduling + +### Other Options +- `branch_prefix` - Prefix for created branches +- `commit_message_convention` - Commit message format +- `bundled_packages` - Package bundling configuration + +For a complete list of all configuration options, see the [configuration documentation](/configuration). + +## Examples + +### Example 1: Automerge with Labels + +Automerge Symfony packages and add specific labels: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Symfony packages", + "matchRules": [ + { + "type": "names", + "values": ["symfony/*"] + } + ], + // highlight-start + "config": { + "automerge": 1, + "labels": ["symfony", "dependencies", "automerge"] + } + // highlight-end + } + ] + } + } +} +``` + +### Example 2: Different Branches for Different Packages + +Send core package updates to a staging branch: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Core Framework Packages", + "matchRules": [ + { + "type": "names", + "values": ["laravel/framework", "symfony/symfony"] + } + ], + // highlight-start + "config": { + "default_branch": "staging", + "assignees": ["tech-lead"] + } + // highlight-end + } + ] + } + } +} +``` + +### Example 3: Patch-only Updates for Production + +Only apply patch-level updates to Magento packages and automerge security fixes: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Magento Core", + "matchRules": [ + { + "type": "names", + "values": ["magento/*"] + } + ], + // highlight-start + "config": { + "composer_outdated_flag": "patch", + "automerge_security": 1, + "labels": ["magento", "production"] + } + // highlight-end + } + ] + } + } +} +``` + +### Example 4: Dev Dependencies Handling + +Automerge dev dependencies but not production ones: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "automerge": 0, + "rules": [ + { + "name": "Testing and Development Tools", + "matchRules": [ + { + "type": "names", + "values": [ + "phpunit/*", + "phpstan/*", + "laravel/telescope" + ] + } + ], + // highlight-start + "config": { + "automerge": 1, + "labels": ["dev-dependencies"] + } + // highlight-end + } + ] + } + } +} +``` + +### Example 5: Security Updates to Separate Branch + +Direct all security updates for critical packages to a security branch: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Critical Security Packages", + "matchRules": [ + { + "type": "names", + "values": [ + "guzzlehttp/*", + "symfony/security-*", + "firebase/*" + ] + } + ], + // highlight-start + "config": { + "default_branch_security": "security-patches", + "automerge_security": 1, + "labels_security": ["security", "high-priority"], + "assignees": ["security-team"] + } + // highlight-end + } + ] + } + } +} +``` + +## Configuration Merging + +When multiple rules match the same package, their configurations are merged. Later rules in the array will override settings from earlier rules if there are conflicts. + +For example: + +```json showLineNumbers +{ + "rules": [ + { + "name": "All Laravel Packages", + "matchRules": [{"type": "names", "values": ["laravel/*"]}], + "config": { + "labels": ["laravel"], + "automerge": 0 + } + }, + { + "name": "Laravel Development Packages", + "matchRules": [{"type": "names", "values": ["laravel/telescope", "laravel/horizon"]}], + "config": { + "labels": ["laravel-dev"], + "automerge": 1 + } + } + ] +} +``` + +In this example, `laravel/telescope` will match both rules. The final configuration will be: +- `labels`: `["laravel-dev"]` (overridden by second rule) +- `automerge`: `1` (overridden by second rule) diff --git a/docs/configuration/rules/index.md b/docs/configuration/rules/index.md new file mode 100644 index 0000000..36d233d --- /dev/null +++ b/docs/configuration/rules/index.md @@ -0,0 +1,249 @@ +--- +title: "rules" +--- + + +## Configuration + +
__name__: rules
+
__type__: array
+
__default__: []
+ +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + // highlight-next-line + "rules": [] + } + } +} +``` + +>This option is currently in __beta__. This means its options are considered stable (no backwards incompatible changes will be added), but that there are some stability and usability improvements expected. + +This option is used to group several packages together and apply different configuration settings to different groups of packages. The groups will be used to both differentiate the configuration and to group the updates together in a merge request. + +## Explanation + +If you want to group some packages together in a more flexible pattern than using [bundled_packages](/configuration/bundled_packages), then this option is for you. The main differences between them are: + +- [bundled_packages](/configuration/bundled_packages) will only update its bundled packages if the "parent" package has an update, while rules can update the group if any of the packages has an update. +- Rules make it possible to have different configurations per group. For example, if you wanted one group to be automerged but the rest of the updates not. +- Rules support pattern matching with wildcards and negation, making them much more flexible. + +## Rule Structure + +Each rule in the `rules` array is an object with the following properties: + +- **name** (required): A human-readable name for the rule, used for display purposes +- **slug** (optional): A slug identifier for the rule (e.g., "symfony-group") +- **matchRules** (required): An array of match rule objects that determine which packages this rule applies to +- **config** (optional): Configuration options that will override the base configuration for matching packages + +## Match Rules + +Match rules determine which packages a rule applies to. Currently, the following match rule type is supported: + +### Names Match Rule + +The `names` match rule type allows you to match packages by their name using patterns. + +Properties: +- **type**: Must be set to `"names"` +- **values**: An array of package name patterns to match + +Pattern matching features: +- **Wildcards**: Use `*` to match any characters (e.g., `"symfony/*"` matches all Symfony packages) +- **Negation**: Prefix a pattern with `!` to exclude packages (e.g., `"!drupal/core"` excludes drupal/core) +- Multiple patterns can be combined in the `values` array + +## Configuration Options + +Any Violinist configuration option can be overridden in the `config` section of a rule. Some commonly used options include: + +- `automerge` - Enable automerge for packages matching this rule +- `automerge_security` - Enable automerge for security updates +- `labels` - Add specific labels to pull requests for this group +- `assignees` - Assign specific users to pull requests for this group +- `update_dev_dependencies` - Control whether to update dev dependencies +- `check_only_direct_dependencies` - Check only direct dependencies +- `default_branch` - Specify a different target branch for pull requests +- And many more - see the [configuration documentation](/configuration) for all available options + +## Examples + +### Example 1: Automerge Symfony Packages + +If you want Violinist to automerge all packages in the `symfony/*` namespace, but not other packages in your project: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + // highlight-start + "rules": [ + { + "name": "Symfony packages", + "slug": "symfony-group", + "matchRules": [ + { + "type": "names", + "values": [ + "symfony/*" + ] + } + ], + "config": { + "automerge": 1 + } + } + ] + // highlight-end + } + } +} +``` + +### Example 2: Exclude Specific Packages with Negation + +This example matches all Drupal packages except for certain core packages, and assigns them to a specific team member: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + // highlight-start + "rules": [ + { + "name": "Drupal Contrib Modules", + "slug": "drupal-contrib", + "matchRules": [ + { + "type": "names", + "values": [ + "drupal/*", + "!drupal/core-composer-scaffold", + "!drupal/core-project-message", + "!drupal/core-recommended" + ] + } + ], + "config": { + "assignees": ["drupal-team-lead"] + } + } + ] + // highlight-end + } + } +} +``` + +### Example 3: Different Labels for Different Package Groups + +This example assigns different labels to different groups of Laravel-related packages: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + // highlight-start + "rules": [ + { + "name": "Laravel Core Packages", + "matchRules": [ + { + "type": "names", + "values": [ + "laravel/framework", + "laravel/sanctum", + "laravel/tinker" + ] + } + ], + "config": { + "labels": ["laravel-core", "dependencies"] + } + }, + { + "name": "Laravel Development Tools", + "matchRules": [ + { + "type": "names", + "values": [ + "laravel/telescope", + "laravel/horizon", + "barryvdh/*" + ] + } + ], + "config": { + "labels": ["laravel-dev", "dependencies"] + } + }, + { + "name": "Spatie Laravel Packages", + "matchRules": [ + { + "type": "names", + "values": [ + "spatie/laravel-*" + ] + } + ], + "config": { + "labels": ["spatie", "laravel", "dependencies"] + } + } + ] + // highlight-end + } + } +} +``` + +### Example 4: Automerge Security Patches for Magento + +This example automatically merges security updates for Magento packages, and only applies patch-level updates to Magento: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + // highlight-start + "rules": [ + { + "name": "Magento Security Patches", + "matchRules": [ + { + "type": "names", + "values": [ + "magento/*" + ] + } + ], + "config": { + "automerge_security": 1, + "composer_outdated_flag": "patch" + } + } + ] + // highlight-end + } + } +} +``` + +## Multiple Match Rules + +A single rule can have multiple match rules. The package must match at least one of the match rules for the rule's configuration to apply. + +## Priority and Merging + +When multiple rules match the same package, their configurations are merged. Later rules in the array will override settings from earlier rules if there are conflicts. diff --git a/docs/configuration/rules/matchRules.md b/docs/configuration/rules/matchRules.md new file mode 100644 index 0000000..cec27ee --- /dev/null +++ b/docs/configuration/rules/matchRules.md @@ -0,0 +1,216 @@ +--- +title: "matchRules" +--- + +## Configuration + +
__name__: matchRules
+
__type__: array
+
__required__: yes
+ +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Symfony packages", + "slug": "symfony-group", + // highlight-start + "matchRules": [ + { + "type": "names", + "values": ["symfony/*"] + } + ], + // highlight-end + "config": { + "automerge": 1 + } + } + ] + } + } +} +``` + +An array of match rule objects that determine which packages this rule applies to. At least one match rule is required. + +## Explanation + +The `matchRules` property defines the criteria for determining which packages should be affected by this rule. Each match rule has a `type` and additional properties depending on the type. + +A package will be matched if it satisfies **at least one** of the match rules in the array. This allows you to combine different matching criteria for a single rule. + +## Match Rule Types + +### names + +The `names` match rule type matches packages based on their name using pattern matching. + +**Properties:** +- **type**: Must be set to `"names"` +- **values**: An array of package name patterns + +**Pattern Features:** +- **Wildcards**: Use `*` to match any characters (e.g., `"symfony/*"` matches all Symfony packages) +- **Negation**: Prefix a pattern with `!` to exclude packages (e.g., `"!symfony/yaml"` excludes symfony/yaml) +- **Multiple patterns**: Combine multiple patterns in the values array + +## Examples + +### Example 1: Simple Wildcard Match + +Match all packages in the Symfony namespace: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Symfony packages", + // highlight-start + "matchRules": [ + { + "type": "names", + "values": ["symfony/*"] + } + ] + // highlight-end + } + ] + } + } +} +``` + +### Example 2: Multiple Packages + +Match specific packages: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Core Laravel Packages", + // highlight-start + "matchRules": [ + { + "type": "names", + "values": [ + "laravel/framework", + "laravel/sanctum", + "laravel/tinker" + ] + } + ] + // highlight-end + } + ] + } + } +} +``` + +### Example 3: Wildcard with Negation + +Match all Drupal packages except specific ones: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Drupal Contrib", + // highlight-start + "matchRules": [ + { + "type": "names", + "values": [ + "drupal/*", + "!drupal/core-composer-scaffold", + "!drupal/core-project-message", + "!drupal/core-recommended" + ] + } + ] + // highlight-end + } + ] + } + } +} +``` + +### Example 4: Multiple Wildcards + +Match packages from multiple namespaces: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Testing Packages", + // highlight-start + "matchRules": [ + { + "type": "names", + "values": [ + "phpunit/*", + "mockery/*", + "phpspec/*", + "pest*" + ] + } + ] + // highlight-end + } + ] + } + } +} +``` + +### Example 5: Multiple Match Rules + +Use multiple match rules to match packages from different criteria: + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Frontend and Build Tools", + // highlight-start + "matchRules": [ + { + "type": "names", + "values": ["webpack", "webpack-*"] + }, + { + "type": "names", + "values": ["vite", "vite-*"] + } + ] + // highlight-end + } + ] + } + } +} +``` + +In this example, packages will match if they match either the webpack patterns OR the vite patterns. diff --git a/docs/configuration/rules/name.md b/docs/configuration/rules/name.md new file mode 100644 index 0000000..eb0c340 --- /dev/null +++ b/docs/configuration/rules/name.md @@ -0,0 +1,65 @@ +--- +title: "name" +--- + +## Configuration + +
__name__: name
+
__type__: string
+
__required__: yes
+ +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + // highlight-next-line + "name": "Symfony packages", + "slug": "symfony-group", + "matchRules": [ + { + "type": "names", + "values": ["symfony/*"] + } + ], + "config": { + "automerge": 1 + } + } + ] + } + } +} +``` + +A human-readable name for the rule, used for display purposes in pull requests and the Violinist interface. + +## Explanation + +The `name` property is a required field that helps identify what the rule is for. It should be descriptive and clearly indicate which packages or what purpose the rule serves. + +## Example + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + // highlight-next-line + "name": "Laravel Core Packages", + "matchRules": [ + { + "type": "names", + "values": ["laravel/*"] + } + ] + } + ] + } + } +} +``` diff --git a/docs/configuration/rules/slug.md b/docs/configuration/rules/slug.md new file mode 100644 index 0000000..d3e7823 --- /dev/null +++ b/docs/configuration/rules/slug.md @@ -0,0 +1,75 @@ +--- +title: "slug" +--- + +## Configuration + +
__name__: slug
+
__type__: string
+
__required__: no
+ +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Symfony packages", + // highlight-next-line + "slug": "symfony-group", + "matchRules": [ + { + "type": "names", + "values": ["symfony/*"] + } + ], + "config": { + "automerge": 1 + } + } + ] + } + } +} +``` + +A slug identifier for the rule. This is an optional field that can be used to uniquely identify a rule. + +## Explanation + +The `slug` property provides a machine-friendly identifier for the rule. While optional, it can be useful for: + +- Programmatic identification of rules +- URL-friendly identifiers +- Tracking and logging purposes + +The slug should be lowercase and use hyphens to separate words (kebab-case). + +## Example + +```json showLineNumbers +{ + "name": "company/project", + "extra": { + "violinist": { + "rules": [ + { + "name": "Laravel Development Tools", + // highlight-next-line + "slug": "laravel-dev-tools", + "matchRules": [ + { + "type": "names", + "values": ["laravel/telescope", "laravel/horizon"] + } + ], + "config": { + "labels": ["laravel-dev"] + } + } + ] + } + } +} +``` From 363091cb38adfce4b9856f3e5e5c983ed663368b Mon Sep 17 00:00:00 2001 From: Eirik Stanghelle Morland Date: Thu, 27 Nov 2025 17:30:37 +0100 Subject: [PATCH 2/6] Add configuration index page (#96) --- docs/configuration/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docs/configuration/index.md diff --git a/docs/configuration/index.md b/docs/configuration/index.md new file mode 100644 index 0000000..6a6aa79 --- /dev/null +++ b/docs/configuration/index.md @@ -0,0 +1,16 @@ +--- +title: "Configuration" +slug: "/configuration" +--- + +Use the Violinist configuration to fine-tune how dependency updates are discovered, grouped, and merged. +This section documents every available option so you can customize updates for your repositories. + +Get started by exploring the most common areas: + +- [Configuration options list](./) – browse the full set of settings in the sidebar. +- [Rules](/configuration/rules/) – group packages and override settings per group. +- [Automerge](/configuration/automerge) and [automerge security](/configuration/automerge_security) – control how updates are merged. +- [Bundled packages](/configuration/bundled_packages) – manage updates that should be handled together. + +Looking for a specific option? Use the sidebar search or the autogenerated navigation in this section to jump directly to the setting you need. From 414def58d17c90373bd1e286cce75794a68b8a3a Mon Sep 17 00:00:00 2001 From: Eirik Stanghelle Morland Date: Mon, 1 Dec 2025 08:10:41 +0100 Subject: [PATCH 3/6] Update index.md --- docs/configuration/rules/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration/rules/index.md b/docs/configuration/rules/index.md index 36d233d..e64831d 100644 --- a/docs/configuration/rules/index.md +++ b/docs/configuration/rules/index.md @@ -1,5 +1,5 @@ --- -title: "rules" +title: "rules" (beta) --- From c09c9aa4a3da9acbdb58fb91ea86434f3d7e27d3 Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Tue, 2 Dec 2025 15:04:28 +0100 Subject: [PATCH 4/6] Fix yml --- docs/configuration/rules/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration/rules/index.md b/docs/configuration/rules/index.md index e64831d..5efd602 100644 --- a/docs/configuration/rules/index.md +++ b/docs/configuration/rules/index.md @@ -1,5 +1,5 @@ --- -title: "rules" (beta) +title: "rules (beta)" --- From e7d276331ed35b13d73ac19f821aa6f8f84ef182 Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Tue, 2 Dec 2025 15:08:54 +0100 Subject: [PATCH 5/6] Remove config index --- docs/configuration/index.md | 16 ---------------- docs/configuration/rules/config.md | 2 +- docs/configuration/rules/index.md | 2 +- 3 files changed, 2 insertions(+), 18 deletions(-) delete mode 100644 docs/configuration/index.md diff --git a/docs/configuration/index.md b/docs/configuration/index.md deleted file mode 100644 index 6a6aa79..0000000 --- a/docs/configuration/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Configuration" -slug: "/configuration" ---- - -Use the Violinist configuration to fine-tune how dependency updates are discovered, grouped, and merged. -This section documents every available option so you can customize updates for your repositories. - -Get started by exploring the most common areas: - -- [Configuration options list](./) – browse the full set of settings in the sidebar. -- [Rules](/configuration/rules/) – group packages and override settings per group. -- [Automerge](/configuration/automerge) and [automerge security](/configuration/automerge_security) – control how updates are merged. -- [Bundled packages](/configuration/bundled_packages) – manage updates that should be handled together. - -Looking for a specific option? Use the sidebar search or the autogenerated navigation in this section to jump directly to the setting you need. diff --git a/docs/configuration/rules/config.md b/docs/configuration/rules/config.md index 97f8819..f72d304 100644 --- a/docs/configuration/rules/config.md +++ b/docs/configuration/rules/config.md @@ -83,7 +83,7 @@ Any configuration option that can be set at the root level can also be set in a - `commit_message_convention` - Commit message format - `bundled_packages` - Package bundling configuration -For a complete list of all configuration options, see the [configuration documentation](/configuration). +For a complete list of all configuration options, see the configuration documentation. ## Examples diff --git a/docs/configuration/rules/index.md b/docs/configuration/rules/index.md index 5efd602..763be8c 100644 --- a/docs/configuration/rules/index.md +++ b/docs/configuration/rules/index.md @@ -70,7 +70,7 @@ Any Violinist configuration option can be overridden in the `config` section of - `update_dev_dependencies` - Control whether to update dev dependencies - `check_only_direct_dependencies` - Check only direct dependencies - `default_branch` - Specify a different target branch for pull requests -- And many more - see the [configuration documentation](/configuration) for all available options +- And many more - see the configuration documentation for all available options ## Examples From 4076c049dab3b8b48c7b5ca2433d33024e1638e0 Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Wed, 3 Dec 2025 08:33:10 +0100 Subject: [PATCH 6/6] Add some notes about usage and not usage with config --- .../allow_security_updates_on_concurrent_limit.mdx | 1 + docs/configuration/allow_updates_beyond_constraint.mdx | 2 ++ docs/configuration/always_update_all.mdx | 2 ++ docs/configuration/assignees.mdx | 2 ++ docs/configuration/automerge.mdx | 2 ++ docs/configuration/automerge_method.mdx | 2 ++ docs/configuration/automerge_method_security.mdx | 2 ++ docs/configuration/automerge_security.mdx | 2 ++ 8 files changed, 15 insertions(+) diff --git a/docs/configuration/allow_security_updates_on_concurrent_limit.mdx b/docs/configuration/allow_security_updates_on_concurrent_limit.mdx index 629babe..5efde27 100755 --- a/docs/configuration/allow_security_updates_on_concurrent_limit.mdx +++ b/docs/configuration/allow_security_updates_on_concurrent_limit.mdx @@ -24,6 +24,7 @@ title: "allow_security_updates_on_concurrent_limit" Indicates if you want to allow security updates when the concurrent limit is reached, in addition to your open merge requests. +> **Note:** This option is **root project only** and cannot be used within [rules](/configuration/rules). It modifies the global `number_of_concurrent_updates` behavior. ## Explanation diff --git a/docs/configuration/allow_updates_beyond_constraint.mdx b/docs/configuration/allow_updates_beyond_constraint.mdx index 167b4ed..88e4961 100755 --- a/docs/configuration/allow_updates_beyond_constraint.mdx +++ b/docs/configuration/allow_updates_beyond_constraint.mdx @@ -25,6 +25,8 @@ weight: Indicate whether or not we can try to update a package even if it is beyond the range specified in composer.json. Defaults to 1 (true). +> **Note:** This option can be used within [rules](/configuration/rules) to allow constraint-breaking updates for some package groups while preventing them for others. + ## Explanation Strictly speaking, if your composer.json specifies that you want to have the package `vendor/package` in the version range `~1.0.0`, then composer will install all version in the range 1.0.x, but refuse to update it to 1.1.0. Some times this is what you want. But many times, a new version at 1.1.0 will include new features and be backwards compatible. So maybe you actually might want to start using that version instead? This is what the option for allowing to update beyond your version constraint does. diff --git a/docs/configuration/always_update_all.mdx b/docs/configuration/always_update_all.mdx index 44df10d..57c9b0e 100755 --- a/docs/configuration/always_update_all.mdx +++ b/docs/configuration/always_update_all.mdx @@ -25,6 +25,8 @@ weight: Indicate if you always want violinist to update all packages (simply the command `composer update` with no arguments) every time it runs. +> **Note:** This option is **root project only** and cannot be used within [rules](/configuration/rules). This update strategy is incompatible with package-specific rules since it updates all packages together. + ## Explanation This is probably most useful if you have not so many dependencies, or if you are replacing a manual workflow that involves running `composer update` on a regular basis. If you are using this option, only one pull request will be created by violinist, and it will contain the updates that would happen if you were running `composer update`. So this option updates all of your dependencies, all of the time. diff --git a/docs/configuration/assignees.mdx b/docs/configuration/assignees.mdx index 4d51127..ea653e2 100755 --- a/docs/configuration/assignees.mdx +++ b/docs/configuration/assignees.mdx @@ -27,6 +27,8 @@ weight: An array of assignees that this project will use as the default assignee for new pull requests. +> **Note:** This option can be used within [rules](/configuration/rules) to assign different package groups to different team members or teams. + >Note! The value of this option depends on your VCS provider. For github this will be an array of usernames. For gitlab the array should consist of user IDs. You can find your user id by visiting [https://gitlab.com/api/v4/users?username=YOUR_USERNAME](https://gitlab.com/api/v4/users?username=YOUR_USERNAME) where YOUR_USERNAME is your gitlab username. (reference: [https://forum.gitlab.com/t/where-is-my-user-id-in-gitlab-com/7912](https://forum.gitlab.com/t/where-is-my-user-id-in-gitlab-com/7912)) > >If you are using self hosted gitlab, change the domain accordingly. diff --git a/docs/configuration/automerge.mdx b/docs/configuration/automerge.mdx index aa14006..bd61481 100755 --- a/docs/configuration/automerge.mdx +++ b/docs/configuration/automerge.mdx @@ -25,6 +25,8 @@ weight: Indicate whether or not you want pull/merge requests created by violinist to have the automerge option enabled. +> **Note:** This option can be used within [rules](/configuration/rules) to enable automerge for specific package groups while keeping it disabled for others. + > Note! This option currently does not work with Bitbucket. ## Explanation diff --git a/docs/configuration/automerge_method.mdx b/docs/configuration/automerge_method.mdx index 0a94cf1..8baf441 100755 --- a/docs/configuration/automerge_method.mdx +++ b/docs/configuration/automerge_method.mdx @@ -23,6 +23,8 @@ title: "automerge_method" Indicates which merge method should be used when using [automerge](/configuration/automerge). +> **Note:** This option can be used within [rules](/configuration/rules) to set different merge methods for different package groups. + > Note! This option currently does not work with Bitbucket. ## Explanation diff --git a/docs/configuration/automerge_method_security.mdx b/docs/configuration/automerge_method_security.mdx index fb3e918..8d98e37 100755 --- a/docs/configuration/automerge_method_security.mdx +++ b/docs/configuration/automerge_method_security.mdx @@ -23,6 +23,8 @@ title: "automerge_method_security" Indicates which merge method should be used when using [automerge](/configuration/automerge). But in contrast to the [automerge_method](/configuration/automerge_method) option, this will allow you to have a separate method for security updates. +> **Note:** This option can be used within [rules](/configuration/rules) to set different security merge methods for different package groups. + > Note! This option currently does not work with Bitbucket. ## Explanation diff --git a/docs/configuration/automerge_security.mdx b/docs/configuration/automerge_security.mdx index 5064dee..80f499d 100755 --- a/docs/configuration/automerge_security.mdx +++ b/docs/configuration/automerge_security.mdx @@ -25,6 +25,8 @@ weight: Indicate whether or not you want pull/merge requests created by violinist to have the automerge option enabled when the update is a security update. +> **Note:** This option can be used within [rules](/configuration/rules) to enable security automerge for specific package groups. + > Note! This option currently does not work with Bitbucket. > Note! This option only overrides the automerge option if the update is a security update. If `automerge_security` is set to `0`, but `automerge` is set to `1`, then automerge will be enabled.