Skip to content

Commit 004628f

Browse files
authored
Merge branch 'main' into codex/create-documentation-for-extends
2 parents 01e814f + 9c6cd34 commit 004628f

11 files changed

Lines changed: 1438 additions & 1113 deletions

.github/dependabot.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,9 @@ updates:
1414
docusaurus:
1515
patterns:
1616
- "@docusaurus/*"
17+
react-related:
18+
patterns:
19+
- "react"
20+
- "react-dom"
21+
- "@types/react"
22+
- "@types/react-dom"

.github/workflows/extensions-up-to-date.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: 'ubuntu-latest'
1111
steps:
1212
- name: Checkout
13-
uses: actions/checkout@v5
13+
uses: actions/checkout@v6
1414

1515
- name: Dump module output
1616
run: |
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
title: "composer_outdated_flag"
3+
date: 2025-11-23T10:00:00+01:00
4+
anchor: "composer-outdated-flag"
5+
weight:
6+
---
7+
8+
## Configuration
9+
10+
<div className="config-wrapper"><div className="config">__name__: composer_outdated_flag</div>
11+
<div className="config">__type__: string</div>
12+
<div className="config">__default__: minor</div></div>
13+
14+
```json showLineNumbers
15+
{
16+
"name": "company/project",
17+
"extra": {
18+
"violinist": {
19+
// highlight-next-line
20+
"composer_outdated_flag": "minor"
21+
}
22+
}
23+
}
24+
```
25+
26+
Control the semantic versioning level for checking outdated packages.
27+
28+
## Explanation
29+
30+
By default, Violinist uses the `composer outdated -D -m` command to check for updates, where the `-m` flag restricts checks to minor SemVer-compatible updates. The `composer_outdated_flag` option allows you to customize this behavior by specifying which level of updates you want to check for.
31+
32+
The option accepts three values:
33+
34+
- **`major`**: Check for all updates including major version changes (no restriction flag)
35+
- **`minor`**: Check only for minor and patch updates (uses `-m` / `--minor-only` flag) - this is the default
36+
- **`patch`**: Check only for patch-level updates (uses `-p` / `--patch-only` flag)
37+
38+
This setting affects how Violinist searches for available updates, which in turn determines what pull requests will be created for your project.
39+
40+
## Example
41+
42+
If you want to be more conservative and only receive pull requests for patch-level updates (bug fixes and security patches), you can configure your project like this:
43+
44+
```json showLineNumbers
45+
{
46+
"name": "company/project",
47+
"description": "My production application",
48+
"require": {
49+
"vendor/package": "^2.1.0",
50+
},
51+
"extra": {
52+
"violinist": {
53+
// highlight-next-line
54+
"composer_outdated_flag": "patch"
55+
}
56+
}
57+
}
58+
```
59+
60+
With this configuration, if you have version 2.1.0 installed and versions 2.1.1, 2.2.0, and 3.0.0 are available, Violinist will only create a pull request for version 2.1.1.
61+
62+
Conversely, if you want to receive pull requests for all updates including major version changes:
63+
64+
```json showLineNumbers
65+
{
66+
"name": "company/project",
67+
"description": "My development project",
68+
"require": {
69+
"vendor/package": "^2.1.0",
70+
},
71+
"extra": {
72+
"violinist": {
73+
// highlight-next-line
74+
"composer_outdated_flag": "major"
75+
}
76+
}
77+
}
78+
```
79+
80+
With this configuration, Violinist will create pull requests for major version updates like 3.0.0, in addition to minor and patch updates.
81+
82+
> Note: This option can be combined with other configuration options like [check_only_direct_dependencies](/configuration/check_only_direct_dependencies), [security_updates_only](/configuration/security_updates_only), and others to fine-tune which updates you want to receive.

docs/configuration/default_branch.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Indicate what branch you want the Violinist pull requests created against.
2727

2828
## Explanation
2929

30-
Different projects uses different workflows for their branches. For example, your default branch in your VCS provider might be your production branch (for example `main`) while you want the pull requests to be created towards a development branch (for example `develop`). By default, Violinist will use the default branch for the repository to create the pull requests, but if you want the base branch to differ from this setting, you want to use the `default_branch` option.
30+
Different projects use different workflows for their branches. For example, your default branch in your VCS provider might be your production branch (for example `main`) while you want the pull requests to be created towards a development branch (for example `develop`). By default, Violinist will use the default branch for the repository to create the pull requests, but if you want the base branch to differ from this setting, you want to use the `default_branch` option.
3131

3232
## Example
3333

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
title: "default_branch_security"
3+
---
4+
5+
## Configuration
6+
7+
<div className="config-wrapper"><div className="config">__name__: default_branch_security</div>
8+
<div className="config">__type__: string</div>
9+
<div className="config">__default__: ''</div></div>
10+
11+
```json showLineNumbers
12+
{
13+
"name": "company/project",
14+
"extra": {
15+
"violinist": {
16+
// highlight-next-line
17+
"default_branch_security": ""
18+
}
19+
}
20+
}
21+
```
22+
23+
Indicate what branch you want the Violinist pull requests created against, spefically if the update is a security update.
24+
25+
## Explanation
26+
27+
Different projects uses different workflows for their branches. For example, your default branch in your VCS provider might be your production branch (for example `main`) while you want the merge requests to be created towards a development branch (for example `develop`). By default, Violinist will use the default branch for the repository to create the merge requests, but if you want the base branch to differ from this setting when merge requests are security updates, you want to use the `default_branch_security` option.
28+
29+
## Example
30+
31+
If a project uses the `develop` branch as the default branch, and you want the merge requests that are security updates to go straigth to `main`, you might want to configure your project like so:
32+
33+
```json showLineNumbers
34+
{
35+
"name": "company/project",
36+
"description": "My awesome project",
37+
"extra": {
38+
"violinist": {
39+
// highlight-next-line
40+
"default_branch_security": "main"
41+
}
42+
}
43+
}
44+
```
45+
46+
If you do not enter anything in this field, leaving the default value for it in there (`""` - an empty string) the project will use the settings from the project repository. In the example above that would mean the branch `develop`.
47+
48+
Please also note that if you have a value for the configuration option [default_branch](/configuration/default_branch) then this will be used as a fallback for a default value of empty string (`""`) for this configuration option (`default_branch_security`).
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: "ignore_platform_requirements"
3+
date: 2026-01-25T10:00:00+01:00
4+
anchor: "ignore-platform-requirements"
5+
weight:
6+
---
7+
8+
## Configuration
9+
10+
<div className="config-wrapper"><div className="config">__name__: ignore_platform_requirements</div>
11+
<div className="config">__type__: int</div>
12+
<div className="config">__default__: 0</div></div>
13+
14+
```json showLineNumbers
15+
{
16+
"name": "company/project",
17+
"extra": {
18+
"violinist": {
19+
// highlight-next-line
20+
"ignore_platform_requirements": 0
21+
}
22+
}
23+
}
24+
```
25+
26+
Ignore PHP platform requirements when checking for updates.
27+
28+
## Explanation
29+
30+
When enabled, Violinist will set the `COMPOSER_IGNORE_PLATFORM_REQS` environment variable. This tells Composer to ignore platform requirements (PHP version, extensions, etc.) when resolving and updating dependencies.
31+
32+
This can be useful when the PHP version or extensions available in Violinist's environment differ from your production environment.
33+
34+
## Example
35+
36+
Say your production environment uses a PHP extension that isn't universally available. Without this option, Composer might refuse to update packages because the extension isn't present when checking for updates. To work around this, enable `ignore_platform_requirements`:
37+
38+
```json showLineNumbers
39+
{
40+
"name": "company/project",
41+
"description": "My awesome project",
42+
"require": {
43+
"php": "^8.2",
44+
"ext-acme": "*",
45+
"vendor/package": "~1.0.0"
46+
},
47+
"extra": {
48+
"violinist": {
49+
// highlight-next-line
50+
"ignore_platform_requirements": 1
51+
}
52+
}
53+
}
54+
```
55+
56+
:::note
57+
`ext-acme` is a fictional extension used for illustration purposes.
58+
:::
59+
60+
With this configuration, Violinist will ignore platform requirements and proceed with checking for updates. Your CI pipeline should still verify that the updated dependencies work correctly with your actual platform configuration.

docs/introduction/commands.mdx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ The two options mean as follows:
2323
--minor-only (-m): Only shows packages that have minor SemVer-compatible updates.
2424
```
2525

26-
There are still several ways this can be manipulated. See the config options for details. For example, If you set the option [check_only_direct_dependencies](#check-only-direct) to `0` the `--direct` flag will not be used.
26+
There are still several ways this can be manipulated. See the config options for details. For example:
27+
28+
- If you set the option [check_only_direct_dependencies](#check-only-direct) to `0` the `--direct` flag will not be used.
29+
- You can control the update level (major, minor, or patch) using the [composer_outdated_flag](/configuration/composer_outdated_flag) option.
2730

2831
## Updating packages
2932

@@ -35,4 +38,4 @@ composer update vendor/package --with-dependencies
3538

3639
If you do not want violinist to update with dependencies, you can use the configuration option [update_with_dependencies](#update-with-deps) and set this to `0`.
3740

38-
If you want to update a package bundled with another package, you probably want to have a look at the option [bundled_packages](#bundled-packages).
41+
If you want to update a package bundled with another package, you probably want to have a look at the option [bundled_packages](/configuration/bundled_packages).

docusaurus.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import type * as Preset from '@docusaurus/preset-classic';
55
const config: Config = {
66
clientModules: ['./src/hashMigrate.js'],
77
title: 'Violinist documentation',
8-
tagline: "",
8+
tagline:
9+
'Automated Composer dependency updates for PHP repositories, with pull requests, changelog summaries, and monitoring to keep your projects secure and current.',
910
favicon: 'img/favicon.ico',
1011

1112
// Set the production url of your site here

0 commit comments

Comments
 (0)