Hoist oxide/crates to just crates (#13333)

* move `oxide/crates` to `crates`

* ignore `target/` folder

* ensure pnpm points to `crates` instead of `oxide/crates`

* ensure all paths point to `crates` instead of `oxide/crates`

* update `oxide/crates` -> `crates` path in workflows

* use correct path in .prettierignore

* rename `crates/core` to `crates/oxide`

* remove oxide folder

* fix test script to run `cargo test` directly
This commit is contained in:
Robin Malfait 2024-03-23 14:00:48 +01:00 committed by GitHub
parent fee039d82f
commit 1c48683a23
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
72 changed files with 81 additions and 102 deletions

View File

@ -47,11 +47,11 @@ jobs:
uses: actions/cache@v3 uses: actions/cache@v3
with: with:
path: | path: |
./oxide/target/ ./target/
./oxide/crates/node/*.node ./crates/node/*.node
./oxide/crates/node/index.js ./crates/node/index.js
./oxide/crates/node/index.d.ts ./crates/node/index.d.ts
key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} key: ${{ runner.os }}-oxide-${{ hashFiles('./crates/**/*') }}
- name: Install dependencies - name: Install dependencies
run: pnpm install run: pnpm install

View File

@ -16,7 +16,7 @@ env:
APP_NAME: tailwindcss-oxide APP_NAME: tailwindcss-oxide
NODE_VERSION: 20 NODE_VERSION: 20
PNPM_VERSION: ^8.15.0 PNPM_VERSION: ^8.15.0
OXIDE_LOCATION: ./oxide/crates/node OXIDE_LOCATION: ./crates/node
jobs: jobs:
build: build:
@ -104,10 +104,10 @@ jobs:
with: with:
path: | path: |
./oxide/target/ ./oxide/target/
./oxide/crates/node/*.node ./crates/node/*.node
./oxide/crates/node/index.js ./crates/node/index.js
./oxide/crates/node/index.d.ts ./crates/node/index.d.ts
key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./crates/**/*') }}
- name: Install Node.JS - name: Install Node.JS
uses: actions/setup-node@v3 uses: actions/setup-node@v3
@ -189,10 +189,10 @@ jobs:
with: with:
path: | path: |
./oxide/target/ ./oxide/target/
./oxide/crates/node/*.node ./crates/node/*.node
./oxide/crates/node/index.js ./crates/node/index.js
./oxide/crates/node/index.d.ts ./crates/node/index.d.ts
key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./crates/**/*') }}
- name: Install dependencies - name: Install dependencies
run: pnpm install --ignore-scripts --filter=!./playgrounds/* run: pnpm install --ignore-scripts --filter=!./playgrounds/*

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ test-results/
playwright-report/ playwright-report/
blob-report/ blob-report/
playwright/.cache/ playwright/.cache/
target/

View File

@ -1,8 +1,8 @@
coverage/ coverage/
node_modules/ node_modules/
pnpm-lock.yaml pnpm-lock.yaml
oxide/target/ target/
oxide/crates/node/index.d.ts crates/node/index.d.ts
oxide/crates/node/index.js crates/node/index.js
.next .next
.fingerprint .fingerprint

View File

@ -812,11 +812,11 @@ dependencies = [
"napi-build", "napi-build",
"napi-derive", "napi-derive",
"rayon", "rayon",
"tailwindcss-core", "tailwindcss-oxide",
] ]
[[package]] [[package]]
name = "tailwindcss-core" name = "tailwindcss-oxide"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"bstr", "bstr",

View File

@ -10,7 +10,7 @@ crate-type = ["cdylib"]
# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
napi = { version = "2.13.1", default-features = false, features = ["napi4"] } napi = { version = "2.13.1", default-features = false, features = ["napi4"] }
napi-derive = "2.13.0" napi-derive = "2.13.0"
tailwindcss-core = { path = "../core" } tailwindcss-oxide = { path = "../oxide" }
rayon = "1.5.3" rayon = "1.5.3"
[build-dependencies] [build-dependencies]

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/android-arm-eabi" "directory": "crates/node/npm/android-arm-eabi"
}, },
"os": [ "os": [
"android" "android"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/android-arm64" "directory": "crates/node/npm/android-arm64"
}, },
"os": [ "os": [
"android" "android"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/darwin-arm64" "directory": "crates/node/npm/darwin-arm64"
}, },
"os": [ "os": [
"darwin" "darwin"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/darwin-x64" "directory": "crates/node/npm/darwin-x64"
}, },
"os": [ "os": [
"darwin" "darwin"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/freebsd-x64" "directory": "crates/node/npm/freebsd-x64"
}, },
"os": [ "os": [
"freebsd" "freebsd"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/linux-arm-gnueabihf" "directory": "crates/node/npm/linux-arm-gnueabihf"
}, },
"os": [ "os": [
"linux" "linux"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/linux-arm64-gnu" "directory": "crates/node/npm/linux-arm64-gnu"
}, },
"os": [ "os": [
"linux" "linux"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/linux-arm64-musl" "directory": "crates/node/npm/linux-arm64-musl"
}, },
"os": [ "os": [
"linux" "linux"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/linux-x64-gnu" "directory": "crates/node/npm/linux-x64-gnu"
}, },
"os": [ "os": [
"linux" "linux"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/linux-x64-musl" "directory": "crates/node/npm/linux-x64-musl"
}, },
"os": [ "os": [
"linux" "linux"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node/npm/win32-x64-msvc" "directory": "crates/node/npm/win32-x64-msvc"
}, },
"os": [ "os": [
"win32" "win32"

View File

@ -4,7 +4,7 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git", "url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "oxide/crates/node" "directory": "crates/node"
}, },
"main": "index.js", "main": "index.js",
"types": "index.d.ts", "types": "index.d.ts",

View File

@ -12,9 +12,9 @@ pub struct ChangedContent {
pub extension: String, pub extension: String,
} }
impl From<ChangedContent> for tailwindcss_core::ChangedContent { impl From<ChangedContent> for tailwindcss_oxide::ChangedContent {
fn from(changed_content: ChangedContent) -> Self { fn from(changed_content: ChangedContent) -> Self {
tailwindcss_core::ChangedContent { tailwindcss_oxide::ChangedContent {
file: changed_content.file.map(PathBuf::from), file: changed_content.file.map(PathBuf::from),
content: changed_content.content, content: changed_content.content,
} }
@ -45,12 +45,12 @@ pub struct ScanOptions {
#[napi] #[napi]
pub fn clear_cache() { pub fn clear_cache() {
tailwindcss_core::clear_cache(); tailwindcss_oxide::clear_cache();
} }
#[napi] #[napi]
pub fn scan_dir(args: ScanOptions) -> ScanResult { pub fn scan_dir(args: ScanOptions) -> ScanResult {
let result = tailwindcss_core::scan_dir(tailwindcss_core::ScanOptions { let result = tailwindcss_oxide::scan_dir(tailwindcss_oxide::ScanOptions {
base: args.base, base: args.base,
globs: args.globs.unwrap_or(false), globs: args.globs.unwrap_or(false),
}); });
@ -85,5 +85,5 @@ pub enum Parsing {
#[napi] #[napi]
pub fn scan_files(input: Vec<ChangedContent>, strategy: u8) -> Vec<String> { pub fn scan_files(input: Vec<ChangedContent>, strategy: u8) -> Vec<String> {
tailwindcss_core::scan_files(input.into_iter().map(Into::into).collect(), strategy) tailwindcss_oxide::scan_files(input.into_iter().map(Into::into).collect(), strategy)
} }

View File

@ -1,5 +1,5 @@
[package] [package]
name = "tailwindcss-core" name = "tailwindcss-oxide"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"

View File

@ -1,5 +1,5 @@
use criterion::{black_box, criterion_group, criterion_main, Criterion}; use criterion::{black_box, criterion_group, criterion_main, Criterion};
use tailwindcss_core::parser::Extractor; use tailwindcss_oxide::parser::Extractor;
pub fn criterion_benchmark(c: &mut Criterion) { pub fn criterion_benchmark(c: &mut Criterion) {
fn parse(input: &[u8]) { fn parse(input: &[u8]) {

View File

@ -1,6 +1,6 @@
use criterion::{criterion_group, criterion_main, Criterion}; use criterion::{criterion_group, criterion_main, Criterion};
use std::path::PathBuf; use std::path::PathBuf;
use tailwindcss_core::{scan_files, ChangedContent, Parsing, IO}; use tailwindcss_oxide::{scan_files, ChangedContent, Parsing, IO};
pub fn criterion_benchmark(c: &mut Criterion) { pub fn criterion_benchmark(c: &mut Criterion) {
// current_dir will be set to ./crates/core // current_dir will be set to ./crates/core

View File

@ -382,7 +382,7 @@ dependencies = [
] ]
[[package]] [[package]]
name = "tailwindcss-core" name = "tailwindcss-oxide"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"bstr", "bstr",
@ -399,11 +399,11 @@ dependencies = [
] ]
[[package]] [[package]]
name = "tailwindcss-core-fuzz" name = "tailwindcss-oxide-fuzz"
version = "0.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"libfuzzer-sys", "libfuzzer-sys",
"tailwindcss-core", "tailwindcss-oxide",
] ]
[[package]] [[package]]

View File

@ -1,5 +1,5 @@
[package] [package]
name = "tailwindcss-core-fuzz" name = "tailwindcss-oxide-fuzz"
version = "0.0.0" version = "0.0.0"
publish = false publish = false
edition = "2021" edition = "2021"
@ -10,7 +10,7 @@ cargo-fuzz = true
[dependencies] [dependencies]
libfuzzer-sys = "0.4" libfuzzer-sys = "0.4"
[dependencies.tailwindcss-core] [dependencies.tailwindcss-oxide]
path = ".." path = ".."
# Prevent this from interfering with workspaces # Prevent this from interfering with workspaces

View File

@ -2,9 +2,9 @@
use libfuzzer_sys::fuzz_target; use libfuzzer_sys::fuzz_target;
use std::path::PathBuf; use std::path::PathBuf;
use tailwindcss_core::candidate::scan_files; use tailwindcss_oxide::candidate::scan_files;
use tailwindcss_core::candidate::Candidate; use tailwindcss_oxide::candidate::Candidate;
use tailwindcss_core::location::Location; use tailwindcss_oxide::location::Location;
// fuzz_target!(|data: &[u8]| { // fuzz_target!(|data: &[u8]| {
// if let Ok(s) = std::str::from_utf8(data) { // if let Ok(s) = std::str::from_utf8(data) {

View File

@ -3,7 +3,7 @@ mod auto_content {
use std::fs; use std::fs;
use std::process::Command; use std::process::Command;
use tailwindcss_core::*; use tailwindcss_oxide::*;
use tempfile::tempdir; use tempfile::tempdir;
fn scan(paths_with_content: &[(&str, Option<&str>)]) -> (Vec<String>, Vec<String>) { fn scan(paths_with_content: &[(&str, Option<&str>)]) -> (Vec<String>, Vec<String>) {

1
oxide/.gitignore vendored
View File

@ -1 +0,0 @@
target/

View File

@ -1 +0,0 @@
## Tailwind CSS Oxide

View File

@ -1,20 +0,0 @@
{
"name": "tailwindcss-oxide",
"private": true,
"version": "0.1.0",
"workspaces": [
"node"
],
"scripts": {
"test": "cargo test",
"install:cargo": "cargo install cargo-watch cargo-fuzz",
"build": "cargo build --release",
"build:node": "npm --prefix ./crates/node run build",
"dev": "cargo watch --clear --quiet -x 'run --quiet'",
"dev:node": "cargo watch --clear --quiet --shell 'npm --prefix ./crates/node run build:debug'",
"fuzz": "cd ./crates/core; cargo fuzz run parsing; cd -",
"bench": "cargo bench",
"postbench": "open ./target/criterion/report/index.html"
},
"license": "MIT"
}

View File

@ -25,7 +25,7 @@
"lint": "prettier --check . && turbo lint", "lint": "prettier --check . && turbo lint",
"build": "turbo build --filter=!./playgrounds/*", "build": "turbo build --filter=!./playgrounds/*",
"dev": "turbo dev --filter=!./playgrounds/*", "dev": "turbo dev --filter=!./playgrounds/*",
"test": "pnpm test --prefix=oxide && vitest run", "test": "cargo test && vitest run",
"test:ui": "pnpm run --filter=tailwindcss test:ui", "test:ui": "pnpm run --filter=tailwindcss test:ui",
"tdd": "vitest", "tdd": "vitest",
"bench": "vitest bench", "bench": "vitest bench",

32
pnpm-lock.yaml generated
View File

@ -42,7 +42,7 @@ importers:
specifier: ^1.1.3 specifier: ^1.1.3
version: 1.2.2(@types/node@20.11.20) version: 1.2.2(@types/node@20.11.20)
oxide/crates/node: crates/node:
optionalDependencies: optionalDependencies:
'@tailwindcss/oxide-android-arm64': '@tailwindcss/oxide-android-arm64':
specifier: workspace:* specifier: workspace:*
@ -79,27 +79,27 @@ importers:
specifier: ^2.17.0 specifier: ^2.17.0
version: 2.18.0 version: 2.18.0
oxide/crates/node/npm/android-arm-eabi: {} crates/node/npm/android-arm-eabi: {}
oxide/crates/node/npm/android-arm64: {} crates/node/npm/android-arm64: {}
oxide/crates/node/npm/darwin-arm64: {} crates/node/npm/darwin-arm64: {}
oxide/crates/node/npm/darwin-x64: {} crates/node/npm/darwin-x64: {}
oxide/crates/node/npm/freebsd-x64: {} crates/node/npm/freebsd-x64: {}
oxide/crates/node/npm/linux-arm-gnueabihf: {} crates/node/npm/linux-arm-gnueabihf: {}
oxide/crates/node/npm/linux-arm64-gnu: {} crates/node/npm/linux-arm64-gnu: {}
oxide/crates/node/npm/linux-arm64-musl: {} crates/node/npm/linux-arm64-musl: {}
oxide/crates/node/npm/linux-x64-gnu: {} crates/node/npm/linux-x64-gnu: {}
oxide/crates/node/npm/linux-x64-musl: {} crates/node/npm/linux-x64-musl: {}
oxide/crates/node/npm/win32-x64-msvc: {} crates/node/npm/win32-x64-msvc: {}
packages/@tailwindcss-cli: packages/@tailwindcss-cli:
dependencies: dependencies:
@ -108,7 +108,7 @@ importers:
version: 2.4.1 version: 2.4.1
'@tailwindcss/oxide': '@tailwindcss/oxide':
specifier: workspace:^ specifier: workspace:^
version: link:../../oxide/crates/node version: link:../../crates/node
lightningcss: lightningcss:
specifier: ^1.24.0 specifier: ^1.24.0
version: 1.24.0 version: 1.24.0
@ -136,7 +136,7 @@ importers:
dependencies: dependencies:
'@tailwindcss/oxide': '@tailwindcss/oxide':
specifier: workspace:^ specifier: workspace:^
version: link:../../oxide/crates/node version: link:../../crates/node
lightningcss: lightningcss:
specifier: ^1.24.0 specifier: ^1.24.0
version: 1.24.0 version: 1.24.0
@ -161,7 +161,7 @@ importers:
dependencies: dependencies:
'@tailwindcss/oxide': '@tailwindcss/oxide':
specifier: workspace:^ specifier: workspace:^
version: link:../../oxide/crates/node version: link:../../crates/node
lightningcss: lightningcss:
specifier: ^1.24.0 specifier: ^1.24.0
version: 1.24.0 version: 1.24.0
@ -180,7 +180,7 @@ importers:
devDependencies: devDependencies:
'@tailwindcss/oxide': '@tailwindcss/oxide':
specifier: workspace:^ specifier: workspace:^
version: link:../../oxide/crates/node version: link:../../crates/node
'@types/node': '@types/node':
specifier: ^20.10.8 specifier: ^20.10.8
version: 20.11.17 version: 20.11.17

View File

@ -1,5 +1,5 @@
packages: packages:
- 'oxide/crates/node' - 'crates/node'
- 'oxide/crates/node/npm/*' - 'crates/node/npm/*'
- 'packages/*' - 'packages/*'
- 'playgrounds/*' - 'playgrounds/*'

View File

@ -10,24 +10,24 @@ const __dirname = path.dirname(url.fileURLToPath(import.meta.url))
const root = path.resolve(__dirname, '..') const root = path.resolve(__dirname, '..')
// The known workspace is: @tailwindcss/oxide // The known workspace is: @tailwindcss/oxide
// All the workspaces in `oxide/crates/node/npm/*` should always be in sync with // All the workspaces in `crates/node/npm/*` should always be in sync with
// `@tailwindcss/oxide`. You can think of them as one big package, but they are // `@tailwindcss/oxide`. You can think of them as one big package, but they are
// split into multiple packages because they are OS specific. // split into multiple packages because they are OS specific.
const syncedWorkspaces = new Map([ const syncedWorkspaces = new Map([
[ [
'@tailwindcss/oxide', '@tailwindcss/oxide',
[ [
'oxide/crates/node/npm/android-arm-eabi', 'crates/node/npm/android-arm-eabi',
'oxide/crates/node/npm/android-arm64', 'crates/node/npm/android-arm64',
'oxide/crates/node/npm/darwin-arm64', 'crates/node/npm/darwin-arm64',
'oxide/crates/node/npm/darwin-x64', 'crates/node/npm/darwin-x64',
'oxide/crates/node/npm/freebsd-x64', 'crates/node/npm/freebsd-x64',
'oxide/crates/node/npm/linux-arm-gnueabihf', 'crates/node/npm/linux-arm-gnueabihf',
'oxide/crates/node/npm/linux-arm64-gnu', 'crates/node/npm/linux-arm64-gnu',
'oxide/crates/node/npm/linux-arm64-musl', 'crates/node/npm/linux-arm64-musl',
'oxide/crates/node/npm/linux-x64-gnu', 'crates/node/npm/linux-x64-gnu',
'oxide/crates/node/npm/linux-x64-musl', 'crates/node/npm/linux-x64-musl',
'oxide/crates/node/npm/win32-x64-msvc', 'crates/node/npm/win32-x64-msvc',
], ],
], ],
]) ])