Archive: 2025-07 | Page 23
Archive: July 2025
-
Jul 4, 2025
A full git clone transfers every version of every file across the entire history, even when only the current state is needed. Partial clone and shallow clone reduce the transferred data volume in different ways, each suited to different scenarios, from CI runners to developer workstations.
-
Jul 4, 2025
Immutable objects fundamentally change how reliably PHP code behaves: once constructed, a value object can no longer be secretly changed from anywhere else in the program, because there simply are no setters left. Instead of mutating existing instances, with-methods create a new, fully initialized copy with the changed value on every change. This article uses a running Money example to show how readonly properties, with-methods, and named constructors work together, and why cloning followed by mutation simply does not work technically for readonly properties in PHP.
-
Jul 4, 2025
A keyboard trap happens when keyboard focus enters a modal, dropdown, or third-party widget and can't find its way back out with Tab or Shift Tab. For keyboard users and screen reader users, that means a complete blocking point. This article covers common causes, a systematic test procedure, and a correct focus trap implementation that can always be exited reliably with the Escape key.
-
Jul 4, 2025
Anyone who keeps GraphQL queries manually in sync with types builds up technical debt, every single time a schema field changes. Code generation from the schema and operations files turns types into automation instead of a maintenance chore.
-
Jul 4, 2025
Release notes speak to users and stakeholders, not developers, and therefore need a different tone than a technical changelog. This article shows how a Bash script automatically builds readable release notes with contributors, highlighted key changes, and a comparison link from the commit range between two tags, and pushes them directly to the GitHub or GitLab Release API.
-
Jul 4, 2025
Constantly jumping between a feature branch, a hotfix, and a pull request review wastes time on stashing, switching, and waiting for freshly installed dependencies. Git worktree solves this structurally: multiple branches at once in their own directories, one shared repository, no lost context, and no interrupted work.
-
Jul 4, 2025
Pipeline aggregations do not run over individual documents, they run over the results of other aggregations. That lets trends, moving averages and cumulative sums be computed directly in the query, instead of rebuilding them in application code where they are error-prone. Confuse sibling and parent pipelines, and you get aggregation errors or incorrectly nested results.
-
Jul 4, 2025
Every CI pipeline that reinstalls dependencies or rebuilds artifacts from scratch on every run wastes time and money. A Bash script that consistently derives its cache key from a checksum of the relevant files ensures a cache gets invalidated automatically the moment something changes, and reused reliably otherwise.
-
Jul 3, 2025
CI/CD variables are the configuration contract of every GitLab pipeline. Get SSH keys, Composer auth tokens and ENV files wrong, and you risk exposed secrets, broken builds and unclear environment separation. This article shows how to set up variables in GitLab correctly, scope them properly and consume them safely in pipelines.
-
Jul 3, 2025
A mini-cart that updates only visually leaves screen reader users unsure whether a product was actually added. With a correct live region, full keyboard operability and clean focus management, the flyout becomes usable, testable and WCAG compliant for every visitor alike.