Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM mcr.microsoft.com/devcontainers/rust:2-1-trixie

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
clang \
cmake \
curl \
git \
just \
libproj-dev \
libsqlite3-dev \
libtiff-dev \
pkg-config \
sqlite3 \
&& rm -rf /var/lib/apt/lists/*
24 changes: 4 additions & 20 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,35 +1,19 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/rust
{
"name": "Rust",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/rust:2-1-trixie",
// Use 'mounts' to make the cargo cache persistent in a Docker Volume.
"name": "Tyler Linux",
"build": {
"dockerfile": "Dockerfile"
},
"mounts": [
{
"source": "devcontainer-cargo-cache-${devcontainerId}",
"target": "/usr/local/cargo",
"type": "volume"
}
],
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
"packages": "libproj25,libproj-dev,libtiff6,sqlite3,curl,clang,just"
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "rustc --version",
// Configure tool-specific properties.
"customizations": {
"jetbrains": {
"backend": "RustRover"
}
}

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
62 changes: 58 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,69 @@ on:

jobs:
ci-check:
runs-on: ubuntu-latest
name: ${{ matrix.os }} / ${{ matrix.mode }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
mode: [proj-system, proj-bundled]
include:
- mode: proj-system
recipe: ci-check-system
- mode: proj-bundled
recipe: ci-check-bundled
steps:
- uses: actions/checkout@v6
- name: Install native dependencies

- name: Install Linux native dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libtiff-dev
sudo apt-get install -y --no-install-recommends \
clang \
cmake \
libproj-dev \
libsqlite3-dev \
libtiff-dev \
pkg-config \
sqlite3

- name: Install macOS native dependencies
if: runner.os == 'macOS'
run: brew install proj sqlite libtiff pkg-config

- name: Install Windows native dependencies
if: runner.os == 'Windows'
uses: msys2/setup-msys2@v2
with:
msystem: UCRT64
update: true
install: >-
git
mingw-w64-ucrt-x86_64-clang
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-just
mingw-w64-ucrt-x86_64-sqlite3
mingw-w64-ucrt-x86_64-libtiff
mingw-w64-ucrt-x86_64-make
mingw-w64-ucrt-x86_64-pkgconf
mingw-w64-ucrt-x86_64-proj
mingw-w64-ucrt-x86_64-rust

- uses: extractions/setup-just@v4
if: runner.os != 'Windows'

- uses: dtolnay/rust-toolchain@stable
if: runner.os != 'Windows'
with:
components: clippy, rustfmt
- run: just ci-check

- name: Run validation
if: runner.os != 'Windows'
run: just ${{ matrix.recipe }}

- name: Run validation
if: runner.os == 'Windows'
shell: msys2 {0}
run: just ${{ matrix.recipe }}
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
# Changelog

## Unreleased

### Changed

- Tyler and `cityjson-convert` now use `cityjson_lib::ops::Transformer` for PROJ
coordinate transformations instead of maintaining local PROJ wrappers.
- Tyler resolves `cityjson-lib`, `cityjson-types`, and `cityjson-json` through
the local `cityjson-rs` checkout while depending on the new `cityjson-lib`
`proj` feature.
- Tyler and `cityjson-convert` now expose explicit `proj-system` and
`proj-bundled` build modes, with system builds using native PROJ networking
capability and bundled builds kept separate from it.
- The build documentation now distinguishes reproducible/offline packaged
grids from opt-in native PROJ network fetching and documents the local cache
behavior used for downloaded grid chunks.
- Linux, macOS, and Windows CI now validate both PROJ build modes, and the
devcontainer installs the native PROJ toolchain used for repeatable local
validation.

### Added

- Feature-resolution checks that verify system mode does not activate bundled
PROJ and bundled mode does not imply native PROJ networking.

### Removed

- Removed Tyler's direct `proj-sys`, `libc`, `num-traits`, and `thiserror`
dependencies that only supported the deleted local PROJ wrappers.
- Removed the duplicate local PROJ wrapper modules from Tyler and
`cityjson-convert`.

## tyler 0.4.1 (2026-04-30)

The main features of the new version:
Expand Down
Loading
Loading