1.13.0 - 2026-03-10
Compared to 1.12.1: 136 commits across 37 merged pull requests.
Compare: 1.12.1...1.13.0
Highlights
- Added lockfile support with
pawn.lock, lockfile integrity tracking, runtime/build resolution recording, and init/install integration. - Added package-level presets so packages can declare a default runtime/compiler target such as
openmpdirectly in the package definition. - Added the
component://dependency schema to better model component-style dependencies separately from plugins. - Added tag generation and improved handling for previously tagless dependencies.
- Added an experimental build include file feature for build-time constants and metadata.
- Reworked build, package, runtime, git, and remote-fetch flows to use clearer abstractions and improved testability.
- Consolidated filesystem and cache handling through the newer
fs,cache,resource, and download helpers. - Improved private repository support and auth handling across GitHub release downloads,
git, and ensure flows. - Hardened watch/build/run behavior with debounce logic, child-process cancellation fixes, and fewer flaky tests.
- Expanded the documentation set significantly, including package, runtime, CI, container, dependency, quickstart, and migration guides.
Added
pawn.lockgeneration and lockfile-aware dependency resolution.component://dependency support.- Root-level package
presetsupport. - Automatic tag assignment for tagless dependencies.
- Experimental build file generation for compile-time constants.
- A large new offline fixture and regression test suite across package, runtime, resource, and download flows.
- Dedicated documentation for migrating from SA-MP to open.mp.
Changed
- Init/ensure flows were aligned so
initprepares dependencies more likeensure. - Runtime paths are normalized more consistently.
localno longer needs to be explicitly set in the root package definition in common cases.- Bash completion and several command helpers were consolidated.
- Release interactions were abstracted behind an interface for easier testing.
- Remote resource fetching, cache layout, and filesystem helpers were consolidated and cleaned up.
- The project documentation moved away from a README-heavy layout into a fuller docs set.
Fixed
- Private repo release downloads now use authenticated GitHub client flows where needed.
- Git auth is now applied more consistently across HTTPS and SSH operations.
- Compiler path resolution now uses the correct repository/user-aware base path.
- Compiler source path handling for issue
#587was corrected. - Build watchers now debounce file changes and avoid re-extract collisions.
- Child-process cancellation no longer leaks into subsequent watcher runs.
- Plugin/component install-location regressions were corrected.
- Include-path regressions introduced by newer schema work were addressed.
- Scoop install docs and manifest handling were corrected after naming changes.
- Retry logic now avoids retrying non-5xx failures and handles GitHub backoff more safely.
- Config-file permissions were tightened.
- Several flaky and fixture-dependent tests were stabilized.
Compatibility Notes
- Legacy
samp.json-related code was removed. - Legacy
sampctl-runtime-manifest.jsonhandling was removed. - Packages adopting presets, lockfiles, or component dependencies may want to refresh their docs and CI to match the newer workflow.
Documentation
- Reworked and expanded docs across install, quickstart, package definitions, runtime configuration, dependencies, plugin resources, testing, CI, caching, troubleshooting, and global config.
- Added a library creator guide.
- Added a migration guide for moving packages from SA-MP to open.mp.
- Improved runtime field documentation, especially for open.mp.
Dependency And Tooling Updates
- Bumped
github.com/go-git/go-git/v5from5.16.4to5.17.0over two updates. - Bumped
golang.org/x/sysfrom0.38.0to0.41.0over two updates. - Bumped
golang.org/x/textfrom0.31.0to0.34.0over two updates. - Bumped
golang.org/x/oauth2from0.33.0to0.35.0over two updates. - Bumped
github.com/jedib0t/go-pretty/v6from6.7.5to6.7.8over two updates. - Bumped
actions/upload-artifactfrom5to7over two updates. - Bumped
docker/login-actionfrom3to4. - Bumped
goreleaser/goreleaser-actionfrom6to7.
Merged Pull Requests In This Release
#565More refactoring#566feat: added component schema for dependencies (fixes#563)#555chore(deps): bumpgolang.org/x/sysfrom0.38.0to0.39.0#561chore(deps): bumpactions/upload-artifactfrom5to6#556chore(deps): bumpgolang.org/x/oauth2from0.33.0to0.34.0#557chore(deps): bumpgolang.org/x/textfrom0.31.0to0.32.0#558chore(deps): bumpgithub.com/jedib0t/go-pretty/v6from6.7.5to6.7.7#567Just a tweak in comments#568Add package preset#569fix: forgot to update init command usage to reflect preset runtime to preset replacement#570Refactor documentation#571feat: add tags to tagless dependencies (fixes#185)#572chore(deps): bumpgithub.com/jedib0t/go-pretty/v6from6.7.7to6.7.8#573chore: add scoop install instructions to documentation#574Fix Scoop installation instructions to support automatic updates#575Additional docs#576fix: structuring openmp fields and documenting all runtime fields#577Refactor tweaks#579fix: scoop manifest was broken due to goreleaser naming convention changes#580fix: plugins being treated as components due to the legacy changes#582fix: attempt to fix the include path regression caused by new schema additions#585doc: added documentation for migrating from sa-mp to openmp#586Update command for initializing open.mp runtime#553add lockfile support#592fix: forced compiler to use base path as the source (fixes#587)#588chore(deps): bumpgolang.org/x/sysfrom0.39.0to0.41.0#589chore(deps): bumpgithub.com/go-git/go-git/v5from5.16.4to5.16.5#591chore(deps): bumpgolang.org/x/oauth2from0.34.0to0.35.0#590chore(deps): bumpgolang.org/x/textfrom0.32.0to0.34.0#594fix: private repos were usingFromNetwhich does not pass auth headers#596feat: added new build file under experimental feature flags#599chore(deps): bumpgoreleaser/goreleaser-actionfrom6to7#600chore(deps): bumpgithub.com/go-git/go-git/v5from5.16.5to5.17.0#602chore(deps): bumpdocker/login-actionfrom3to4#601chore(deps): bumpactions/upload-artifactfrom6to7#603fix: git auth for HTTPS/SSH was not used for all git operations where it made sense#604fix: added watcher debounce and checks to prevent re-extracting compiler which can cause access collisions#609Refactor app workflow
Contributors In This Range
ADRFranklinthemxpmxp96timel0stNexiusdependabot[bot]copilot-swe-agent[bot]