Skip to content

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drift demos

Small example projects for trying Drift in the browser. Each one is pinned to an old version of a real dependency and uses an API the newer version breaks.

Open one in a Codespace: Drift is installed, the upgrade is already applied, and there is something real for it to find.

How the demo state works

Each demo is committed at the old dependency version, with source that was correct for it. Codespace creation edits the manifest to the new version and leaves the source alone:

committed:      dependency@OLD  +  source written for OLD
after setup:    dependency@NEW  +  source written for OLD   ← Drift analyses this

git status in a fresh Codespace shows only the manifest as modified. Each breaking usage carries a BREAKING comment naming the change.

Demos aim for 1–3 clear, documented breaks — one indisputable example beats several arguable ones.

The demos

Ecosystem Language Dependency Upgrade Try
npm JavaScript / TypeScript axios 0.21.4 → 1.7.7 Open
pypi Python werkzeug 2.0.3 → 2.1.0 Open
go Go golang.org/x/exp 2023-05-22 → 2023-10-06 Open
cargo Rust clap 2.34.0 → 4.5.4 Open
maven Java / Kotlin / Scala com.google.guava:guava 20.0 → 21.0 Open
rubygems Ruby rack 3.0.0 → 3.1.0 Open
nuget .NET AutoMapper 8.1.1 → 9.0.0 Open
packagist PHP monolog/monolog 2.9.3 → 3.5.0 Open
hex Elixir / Erlang plug 1.13.6 → 1.15.0 Open
pub Dart / Flutter dio 4.0.6 → 5.0.0 Open
swift Swift https://github.com/Alamofire/Alamofire 4.9.1 → 5.9.1 Open
cocoapods CocoaPods Alamofire 4.9.1 → 5.9.1 Open
opam OCaml lwt 4.5.0 → 5.7.0 Open
conan C / C++ (Conan) fmt 9.1.0 → 10.2.1 Open
vcpkg C / C++ (vcpkg) catch2 2.13.9 → 3.5.2 Open
arduino Arduino / PlatformIO bblanchon/ArduinoJson 5.13.5 → 6.21.3 Open

Launching one requires a GitHub account and uses your own GitHub Codespaces allowance.

Each Codespace installs the drift.usedrift extension and the @usedrift/cli command line, applies the upgrade, opens the Drift panel, and runs drift analyze in a terminal — so both halves of Drift are already working when the editor appears.

These are prepared fixtures. They depend on drift.usedrift being published to the VS Code Marketplace and @usedrift/cli to npm; before that release lands, a Codespace comes up with the fixture correct and nothing to analyse it. No demo has been smoke-tested through a real Codespace yet.

Layout

demos/<ecosystem>/
├── DEMO.md          generated from the BREAKING comments in the source
├── demo.json        dependency, versions, and the manifest edit
├── <manifest>       pinned to the old version
└── <source>         uses an API the new version breaks

Scripts

node scripts/prepare-demo.mjs <ecosystem>   # apply the upgrade (what the Codespace runs)
node scripts/reset-demo.mjs   <ecosystem>   # put the manifest back
node scripts/sync-devcontainers.mjs         # regenerate .devcontainer/*
node scripts/make-demo-docs.mjs             # regenerate DEMO.md files
node scripts/make-readme.mjs                # regenerate the table above
node scripts/check-demos.mjs                # sanity check, no toolchains needed

About

A demo repository to demo Drift on a Github Codespace in the browser.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages