You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-25Lines changed: 29 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Raise your Dependency Versions with Jack
1
+
# Jack: Raise your Dependency Versions
2
2
3
3
**Experimental**: Jack is an experimental project under active development. It is not yet stable, may contain bugs or undergo breaking changes. It's build it in the open with the community feedback.
4
4
@@ -10,9 +10,9 @@
10
10
11
11
<br>
12
12
13
-
The slow and steady way to raise your `composer.json` dependencies versions.
13
+
Jack helps you incrementally update your `composer.json` dependencies, ensuring your project stays current without the chaos of outdated packages.
Manually upgrading dependencies can be daunting, especially when tackling multiple outdated packages at once. Large upgrades often lead to errors, compatibility issues, and costly delays. Jack automates and simplifies this process by:
30
+
31
+
- Monitoring outdated dependencies via CI.
32
+
- Gradually opening up package versions for safe updates.
33
+
- Prioritizing low-risk updates (e.g., dev dependencies).
34
+
35
+
With Jack, you upgrade **slowly and steadily**, avoiding the stress of massive, error-prone dependency overhauls.
28
36
29
37
<br>
30
38
31
-
## 1. Too many outdated dependencies? Let your CI tell you
39
+
## Usage
40
+
41
+
Jack offers two powerful commands to keep your dependencies up to date:
32
42
33
-
We tend to postpone upgrade and to them in big jumps = once a couple years. The postponing turns upgrades to harder and more costly project. Also, we can face more errors, as some newer version of packages no longer work with our PHP version.
43
+
### 1. Too many outdated dependencies? Let your CI tell you
34
44
35
-
Let CI pay attention to this issue for us.
45
+
Postponing upgrades often results in large, risky jumps (e.g., updating every few years). Jack integrates with your CI pipeline to catch outdated dependencies early.
36
46
37
-
Too many outdated major packages? CI will fail.
47
+
Run the `breakpoint` command to check for outdated major packages:
38
48
39
49
```bash
40
50
vendor/bin/jack breakpoint
41
51
```
42
52
43
-
<br>
44
-
45
-
Default limit of outdated packages is 5.
46
-
47
-
Do you 15 outdated packages? Make it fit your needs - goal of this command is not to get stressed, but **to keep raising your dependencies one step at a time**:
53
+
By default, CI fails if there are more than **5 outdated packages**. Customize this limit to suit your project’s needs:
48
54
49
55
```bash
50
56
vendor/bin/jack breakpoint --limit 13
51
57
```
52
58
53
-
This way, the upgrade will be come to our focus, if we're lacking behind for way too long.
54
-
No more: "oops, all our dependencies are 3 years old, let's update them all at once" mayhem.
59
+
This ensures upgrades stay on your radar without overwhelming you. No more "oops, our dependencies are three years old" moments!
55
60
56
61
<br>
57
62
58
-
## 2. Open up next versions
63
+
###2. Open up Next Versions
59
64
60
65
We know we're behind the latest versions of our dependencies, but where to start? Which versions should be force to update first? We can get lot of errors if we try to bump wrong end of knot.
61
66
@@ -76,33 +81,32 @@ Instead, let composer handle it. How? We open-up package versions to the next ve
76
81
}
77
82
```
78
83
79
-
Not forcing, just opening up. If composer won't see any blockers, it will update the package to the next version.
84
+
This "opens up" versions without forcing updates. If no blockers exist, Composer will upgrade to the next version.
80
85
81
86
<br>
82
87
83
-
You can limit the range of versions to open up by using the `--limit` option (default 5)
88
+
#### Command Options
89
+
90
+
-**Limit the number of packages** to process (default: 5):
84
91
85
92
```bash
86
93
vendor/bin/jack open-versions --limit 3
87
94
```
88
95
89
-
<br>
90
-
91
-
To try it out without changing the `composer.json`, you can use the `--dry-run` option.
96
+
-**Dry run** to preview changes without modifying `composer.json`:
92
97
93
98
```bash
94
99
vendor/bin/jack open-versions --dry-run
95
100
```
96
101
97
-
<br>
98
-
99
-
It's proven practice to update all dev packages first, as they're safer low hanging fruit:
102
+
-**Update dev dependencies first** for safer, low-risk updates:
100
103
101
104
```bash
102
105
vendor/bin/jack open-versions --dev
103
106
```
104
107
105
-
This way we **get slowly and steadily to the next possible version** of our dependencies.
108
+
This approach ensures you **progress steadily** toward the latest dependency versions.
0 commit comments