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
with:
path: |
./oxide/target/
./oxide/crates/node/*.node
./oxide/crates/node/index.js
./oxide/crates/node/index.d.ts
key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }}
./target/
./crates/node/*.node
./crates/node/index.js
./crates/node/index.d.ts
key: ${{ runner.os }}-oxide-${{ hashFiles('./crates/**/*') }}
- name: Install dependencies
run: pnpm install

View File

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

1
.gitignore vendored
View File

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

View File

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

View File

@ -812,11 +812,11 @@ dependencies = [
"napi-build",
"napi-derive",
"rayon",
"tailwindcss-core",
"tailwindcss-oxide",
]
[[package]]
name = "tailwindcss-core"
name = "tailwindcss-oxide"
version = "0.1.0"
dependencies = [
"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
napi = { version = "2.13.1", default-features = false, features = ["napi4"] }
napi-derive = "2.13.0"
tailwindcss-core = { path = "../core" }
tailwindcss-oxide = { path = "../oxide" }
rayon = "1.5.3"
[build-dependencies]

View File

@ -4,7 +4,7 @@
"repository": {
"type": "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": [
"android"

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
"repository": {
"type": "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": [
"linux"

View File

@ -4,7 +4,7 @@
"repository": {
"type": "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": [
"linux"

View File

@ -4,7 +4,7 @@
"repository": {
"type": "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": [
"linux"

View File

@ -4,7 +4,7 @@
"repository": {
"type": "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": [
"linux"

View File

@ -4,7 +4,7 @@
"repository": {
"type": "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": [
"linux"

View File

@ -4,7 +4,7 @@
"repository": {
"type": "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": [
"win32"

View File

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

View File

@ -12,9 +12,9 @@ pub struct ChangedContent {
pub extension: String,
}
impl From<ChangedContent> for tailwindcss_core::ChangedContent {
impl From<ChangedContent> for tailwindcss_oxide::ChangedContent {
fn from(changed_content: ChangedContent) -> Self {
tailwindcss_core::ChangedContent {
tailwindcss_oxide::ChangedContent {
file: changed_content.file.map(PathBuf::from),
content: changed_content.content,
}
@ -45,12 +45,12 @@ pub struct ScanOptions {
#[napi]
pub fn clear_cache() {
tailwindcss_core::clear_cache();
tailwindcss_oxide::clear_cache();
}
#[napi]
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,
globs: args.globs.unwrap_or(false),
});
@ -85,5 +85,5 @@ pub enum Parsing {
#[napi]
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]
name = "tailwindcss-core"
name = "tailwindcss-oxide"
version = "0.1.0"
edition = "2021"

View File

@ -1,5 +1,5 @@
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) {
fn parse(input: &[u8]) {

View File

@ -1,6 +1,6 @@
use criterion::{criterion_group, criterion_main, Criterion};
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) {
// current_dir will be set to ./crates/core

View File

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

View File

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

View File

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

View File

@ -3,7 +3,7 @@ mod auto_content {
use std::fs;
use std::process::Command;
use tailwindcss_core::*;
use tailwindcss_oxide::*;
use tempfile::tempdir;
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",
"build": "turbo build --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",
"tdd": "vitest",
"bench": "vitest bench",

32
pnpm-lock.yaml generated
View File

@ -42,7 +42,7 @@ importers:
specifier: ^1.1.3
version: 1.2.2(@types/node@20.11.20)
oxide/crates/node:
crates/node:
optionalDependencies:
'@tailwindcss/oxide-android-arm64':
specifier: workspace:*
@ -79,27 +79,27 @@ importers:
specifier: ^2.17.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:
dependencies:
@ -108,7 +108,7 @@ importers:
version: 2.4.1
'@tailwindcss/oxide':
specifier: workspace:^
version: link:../../oxide/crates/node
version: link:../../crates/node
lightningcss:
specifier: ^1.24.0
version: 1.24.0
@ -136,7 +136,7 @@ importers:
dependencies:
'@tailwindcss/oxide':
specifier: workspace:^
version: link:../../oxide/crates/node
version: link:../../crates/node
lightningcss:
specifier: ^1.24.0
version: 1.24.0
@ -161,7 +161,7 @@ importers:
dependencies:
'@tailwindcss/oxide':
specifier: workspace:^
version: link:../../oxide/crates/node
version: link:../../crates/node
lightningcss:
specifier: ^1.24.0
version: 1.24.0
@ -180,7 +180,7 @@ importers:
devDependencies:
'@tailwindcss/oxide':
specifier: workspace:^
version: link:../../oxide/crates/node
version: link:../../crates/node
'@types/node':
specifier: ^20.10.8
version: 20.11.17

View File

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

View File

@ -10,24 +10,24 @@ const __dirname = path.dirname(url.fileURLToPath(import.meta.url))
const root = path.resolve(__dirname, '..')
// 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
// split into multiple packages because they are OS specific.
const syncedWorkspaces = new Map([
[
'@tailwindcss/oxide',
[
'oxide/crates/node/npm/android-arm-eabi',
'oxide/crates/node/npm/android-arm64',
'oxide/crates/node/npm/darwin-arm64',
'oxide/crates/node/npm/darwin-x64',
'oxide/crates/node/npm/freebsd-x64',
'oxide/crates/node/npm/linux-arm-gnueabihf',
'oxide/crates/node/npm/linux-arm64-gnu',
'oxide/crates/node/npm/linux-arm64-musl',
'oxide/crates/node/npm/linux-x64-gnu',
'oxide/crates/node/npm/linux-x64-musl',
'oxide/crates/node/npm/win32-x64-msvc',
'crates/node/npm/android-arm-eabi',
'crates/node/npm/android-arm64',
'crates/node/npm/darwin-arm64',
'crates/node/npm/darwin-x64',
'crates/node/npm/freebsd-x64',
'crates/node/npm/linux-arm-gnueabihf',
'crates/node/npm/linux-arm64-gnu',
'crates/node/npm/linux-arm64-musl',
'crates/node/npm/linux-x64-gnu',
'crates/node/npm/linux-x64-musl',
'crates/node/npm/win32-x64-msvc',
],
],
])