Skip to content

Commit 1b10d83

Browse files
authored
Proposal: Move languages to live under the relevant crate (#26)
Now that we've split the internal from public sdk we can clean up the languages directory by moving the remaining language bindings to live under the relevant crate that produces them. This should ideally result in less jumping around in the terminal and editors to go between output and code that produces it.
1 parent eee1b54 commit 1b10d83

File tree

82 files changed

+69
-55
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+69
-55
lines changed

.github/workflows/build-android.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ jobs:
8888
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
8989

9090
- name: Move artifacts
91-
working-directory: languages/kotlin/sdk/src/main/jniLibs
91+
working-directory: crates/bitwarden-uniffi/kotlin/sdk/src/main/jniLibs
9292
run: |
9393
mkdir armeabi-v7a arm64-v8a x86 x86_64
9494
mv /home/runner/work/sdk-internal/sdk-internal/android-armv7-linux-androideabi/libbitwarden_uniffi.so ./armeabi-v7a/libbitwarden_uniffi.so
@@ -97,14 +97,14 @@ jobs:
9797
mv /home/runner/work/sdk-internal/sdk-internal/android-x86_64-linux-android/libbitwarden_uniffi.so ./x86_64/libbitwarden_uniffi.so
9898
9999
- name: Generate bindings
100-
working-directory: languages/kotlin
100+
working-directory: crates/bitwarden-uniffi/kotlin
101101
run: ./build-schemas.sh
102102

103103
- name: Setup gradle
104104
uses: gradle/actions/setup-gradle@d156388eb19639ec20ade50009f3d199ce1e2808 # v4.1.0
105105

106106
- name: Publish
107107
run: ./gradlew sdk:publish
108-
working-directory: languages/kotlin
108+
working-directory: crates/bitwarden-uniffi/kotlin
109109
env:
110110
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/build-swift.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
5353
- name: Build
5454
shell: bash
55-
working-directory: languages/swift
55+
working-directory: crates/bitwarden-uniffi/swift
5656
id: build
5757
run: |
5858
./build.sh
@@ -63,7 +63,7 @@ jobs:
6363
- name: Zip BitwardenFFI.xcframework
6464
run: |
6565
mkdir artifacts
66-
cp -rf languages/swift/BitwardenFFI.xcframework artifacts
66+
cp -rf crates/bitwarden-uniffi/swift/BitwardenFFI.xcframework artifacts
6767
6868
- name: Upload BitwardenFFI.xcframework artifact
6969
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
@@ -76,7 +76,7 @@ jobs:
7676
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
7777
with:
7878
name: BitwardenSdk-${{ env._VERSION }}-${{ steps.build.outputs.short-sha }}-sources
79-
path: languages/swift/Sources/BitwardenSdk
79+
path: crates/bitwarden-uniffi/swift/Sources/BitwardenSdk
8080
if-no-files-found: error
8181

8282
trigger-swift-release:

.github/workflows/build-wasm-internal.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
7373
with:
7474
name: sdk-internal
75-
path: ${{ github.workspace }}/languages/js/sdk-internal/*
75+
path: ${{ github.workspace }}/crates/bitwarden-wasm-internal/npm/*
7676
if-no-files-found: error
7777

7878
trigger-wasm-publish:

.github/workflows/publish-wasm-internal.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ on:
1818

1919
defaults:
2020
run:
21-
working-directory: languages/js/sdk-internal
21+
working-directory: crates/bitwarden-wasm-internal/npm
2222

2323
jobs:
2424
setup:
@@ -83,7 +83,7 @@ jobs:
8383
workflow_conclusion: success
8484
branch: ${{ inputs.release_type == 'Dry Run' && 'main' || github.ref_name }}
8585
artifacts: sdk-internal
86-
path: languages/js/sdk-internal
86+
path: crates/bitwarden-wasm-internal/npm
8787

8888
- name: Set version
8989
run: |

.github/workflows/release-swift.yml

+8-8
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ jobs:
171171
workflow_conclusion: success
172172
artifacts: "BitwardenSdk-${{ env._PKG_VERSION }}-${{ needs.validate.outputs.short_sha }}-sources"
173173
run_id: ${{ env._BUILD_RUN_ID }}
174-
path: sdk/languages/swift/Sources/BitwardenSdk
174+
path: sdk/crates/bitwarden-uniffi/swift/Sources/BitwardenSdk
175175

176176
- name: Install Swift formatter
177177
run: |
@@ -186,21 +186,21 @@ jobs:
186186
sed -i 's|.binaryTarget(name: "BitwardenFFI", path: "BitwardenFFI.xcframework")|.binaryTarget(\
187187
name: "BitwardenFFI",\
188188
url: "https://github.com/bitwarden/sdk-swift/releases/download/v${{ env._RELEASE_NAME }}/BitwardenFFI-${{ env._PKG_VERSION }}-${{ needs.validate.outputs.short_sha }}.xcframework.zip",\
189-
checksum: "${{ env._SWIFT_CHECKSUM }}" )|' sdk/languages/swift/Package.swift
189+
checksum: "${{ env._SWIFT_CHECKSUM }}" )|' sdk/crates/bitwarden-uniffi/swift/Package.swift
190190
191191
# Run swiftformat
192-
swiftformat sdk/languages/swift/Package.swift
192+
swiftformat sdk/crates/bitwarden-uniffi/swift/Package.swift
193193
194-
find sdk/languages/swift/Sources/ -name ".gitignore" -exec rm -f {} \;
194+
find sdk/crates/bitwarden-uniffi/swift/Sources/ -name ".gitignore" -exec rm -f {} \;
195195
196196
rm -rf sdk-swift/Sources
197197
rm -rf sdk-swift/Tests
198198
199199
# Copy files to local sdk-swift repo path
200-
cp --verbose -rf sdk/languages/swift/README.md sdk-swift/README.md
201-
cp --verbose -rf sdk/languages/swift/Package.swift sdk-swift/Package.swift
202-
cp --verbose -rf sdk/languages/swift/Sources sdk-swift
203-
cp --verbose -rf sdk/languages/swift/Tests sdk-swift
200+
cp --verbose -rf sdk/crates/bitwarden-uniffi/swift/README.md sdk-swift/README.md
201+
cp --verbose -rf sdk/crates/bitwarden-uniffi/swift/Package.swift sdk-swift/Package.swift
202+
cp --verbose -rf sdk/crates/bitwarden-uniffi/swift/Sources sdk-swift
203+
cp --verbose -rf sdk/crates/bitwarden-uniffi/swift/Tests sdk-swift
204204
205205
- name: Push changes
206206
working-directory: sdk-swift

.github/workflows/scan.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,4 @@ jobs:
7474
args: >
7575
-Dsonar.organization=${{ github.repository_owner }}
7676
-Dsonar.projectKey=${{ github.repository_owner }}_${{ github.event.repository.name }}
77-
-Dsonar.exclusions=languages/**
77+
-Dsonar.exclusions=crates/bitwarden-uniffi/kotlin/**,crates/bitwarden-uniffi/swift/**

.gitignore

+5-5
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ node_modules/
3737
THIRDPARTY.html
3838

3939
# Uniffi
40-
languages/swift/BitwardenFFI.xcframework
41-
languages/swift/tmp
42-
languages/swift/.build
43-
languages/swift/.swiftpm
44-
languages/kotlin/sdk/src/main/java/com/bitwarden/**/*.kt
40+
crates/bitwarden-uniffi/swift/BitwardenFFI.xcframework
41+
crates/bitwarden-uniffi/swift/tmp
42+
crates/bitwarden-uniffi/swift/.build
43+
crates/bitwarden-uniffi/swift/.swiftpm
44+
crates/bitwarden-uniffi/kotlin/sdk/src/main/java/com/bitwarden/**/*.kt

.prettierignore

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
target
2-
languages/*
3-
!languages/js
4-
languages/js/*
5-
!languages/js/sdk-internal
6-
languages/js/sdk-internal/bitwarden_wasm_internal_bg.wasm.js
72
schemas
83
about.hbs
94

5+
# Language bindings
6+
crates/bitwarden-wasm-internal/npm/bitwarden_wasm_internal_bg.wasm.js
7+
crates/bitwarden-uniffi/kotlin/*
8+
crates/bitwarden-uniffi/swift/*
9+
1010
# Test fixtures
1111
crates/bitwarden-exporters/resources/*

README.md

+6-1
File renamed without changes.

languages/kotlin/README.md crates/bitwarden-uniffi/kotlin/README.md

+13-4
File renamed without changes.

languages/kotlin/app/src/main/java/com/bitwarden/myapplication/MainActivity.kt crates/bitwarden-uniffi/kotlin/app/src/main/java/com/bitwarden/myapplication/MainActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ import javax.net.ssl.X509TrustManager
6666
*
6767
* Note that this SDK uses the system trust store to perform TLS certificate validation. If you want to use this SDK with
6868
* self hosted servers using self-signed certificates, make sure to configure the Android Network Security Config correctly.
69-
* We provide an example configuration in `languages/kotlin/app/src/main/res/xml/network_security_config.xml`
69+
* We provide an example configuration in `crates/bitwarden-uniffi/kotlin/app/src/main/res/xml/network_security_config.xml`
7070
* https://developer.android.com/privacy-and-security/security-config
7171
*/
7272

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

languages/kotlin/sdk/build.gradle crates/bitwarden-uniffi/kotlin/sdk/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ publishing {
5858
def branchName = 'git branch --show-current'.execute().text.trim()
5959

6060
if (branchName == 'main') {
61-
def content = ['grep', '-o', '^version = ".*"', '../../Cargo.toml'].execute().text.trim()
61+
def content = ['grep', '-o', '^version = ".*"', rootDir.toString() + '/../../../Cargo.toml'].execute().text.trim()
6262
def match = ~/version = "(.*)"/
6363
def matcher = match.matcher(content)
6464
matcher.find()
@@ -94,7 +94,7 @@ publishing {
9494
File findRustlsPlatformVerifierClassesJar() {
9595
def dependencyText = providers.exec {
9696
it.workingDir = new File('../../')
97-
commandLine('cargo', 'metadata', '--format-version', '1', '--manifest-path', 'crates/bitwarden-uniffi/Cargo.toml')
97+
commandLine('cargo', 'metadata', '--format-version', '1')
9898
}.standardOutput.asText.get()
9999

100100
def dependencyJson = new groovy.json.JsonSlurper().parseText(dependencyText)
File renamed without changes.
File renamed without changes.

languages/swift/build.sh crates/bitwarden-uniffi/swift/build.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ cargo build --package bitwarden-uniffi --target aarch64-apple-ios --release
1515
cargo build --package bitwarden-uniffi --target x86_64-apple-ios --release
1616

1717
# Create universal libraries
18-
lipo -create ../../target/aarch64-apple-ios-sim/release/libbitwarden_uniffi.a \
19-
../../target/x86_64-apple-ios/release/libbitwarden_uniffi.a \
18+
lipo -create ../../../target/aarch64-apple-ios-sim/release/libbitwarden_uniffi.a \
19+
../../../target/x86_64-apple-ios/release/libbitwarden_uniffi.a \
2020
-output ./tmp/target/universal-ios-sim/release/libbitwarden_uniffi.a
2121

2222
# Generate swift bindings
2323
cargo run -p uniffi-bindgen generate \
24-
../../target/aarch64-apple-ios-sim/release/libbitwarden_uniffi.dylib \
24+
../../../target/aarch64-apple-ios-sim/release/libbitwarden_uniffi.dylib \
2525
--library \
2626
--language swift \
2727
--no-format \
@@ -37,7 +37,7 @@ cat ./tmp/bindings/*.modulemap > ./tmp/Headers/module.modulemap
3737

3838
# Build xcframework
3939
xcodebuild -create-xcframework \
40-
-library ../../target/aarch64-apple-ios/release/libbitwarden_uniffi.a \
40+
-library ../../../target/aarch64-apple-ios/release/libbitwarden_uniffi.a \
4141
-headers ./tmp/Headers \
4242
-library ./tmp/target/universal-ios-sim/release/libbitwarden_uniffi.a \
4343
-headers ./tmp/Headers \

crates/bitwarden-uniffi/swift/iOS/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/bitwarden-wasm-internal/build.sh

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ cd ../../
55
if [ "$1" != "-r" ]; then
66
# Dev
77
cargo build -p bitwarden-wasm-internal --target wasm32-unknown-unknown
8-
wasm-bindgen --target bundler --out-dir languages/js/sdk-internal ./target/wasm32-unknown-unknown/debug/bitwarden_wasm_internal.wasm
9-
wasm-bindgen --target nodejs --out-dir languages/js/sdk-internal/node ./target/wasm32-unknown-unknown/debug/bitwarden_wasm_internal.wasm
8+
wasm-bindgen --target bundler --out-dir crates/bitwarden-wasm-internal/npm ./target/wasm32-unknown-unknown/debug/bitwarden_wasm_internal.wasm
9+
wasm-bindgen --target nodejs --out-dir crates/bitwarden-wasm-internal/npm/node ./target/wasm32-unknown-unknown/debug/bitwarden_wasm_internal.wasm
1010
else
1111
# Release
1212
cargo build -p bitwarden-wasm-internal --target wasm32-unknown-unknown --release
13-
wasm-bindgen --target bundler --out-dir languages/js/sdk-internal ./target/wasm32-unknown-unknown/release/bitwarden_wasm_internal.wasm
14-
wasm-bindgen --target nodejs --out-dir languages/js/sdk-internal/node ./target/wasm32-unknown-unknown/release/bitwarden_wasm_internal.wasm
13+
wasm-bindgen --target bundler --out-dir crates/bitwarden-wasm-internal/npm ./target/wasm32-unknown-unknown/release/bitwarden_wasm_internal.wasm
14+
wasm-bindgen --target nodejs --out-dir crates/bitwarden-wasm-internal/npm/node ./target/wasm32-unknown-unknown/release/bitwarden_wasm_internal.wasm
1515
fi
1616

1717
# Format
18-
npx prettier --write ./languages/js/sdk-internal
18+
npx prettier --write ./crates/bitwarden-wasm-internal/npm
1919

2020
# Optimize size
21-
wasm-opt -Os ./languages/js/sdk-internal/bitwarden_wasm_internal_bg.wasm -o ./languages/js/sdk-internal/bitwarden_wasm_internal_bg.wasm
21+
wasm-opt -Os ./crates/bitwarden-wasm-internal/npm/bitwarden_wasm_internal_bg.wasm -o ./crates/bitwarden-wasm-internal/npm/bitwarden_wasm_internal_bg.wasm
2222

2323
# Transpile to JS
24-
wasm2js ./languages/js/sdk-internal/bitwarden_wasm_internal_bg.wasm -o ./languages/js/sdk-internal/bitwarden_wasm_internal_bg.wasm.js
25-
npx terser ./languages/js/sdk-internal/bitwarden_wasm_internal_bg.wasm.js -o ./languages/js/sdk-internal/bitwarden_wasm_internal_bg.wasm.js
24+
wasm2js ./crates/bitwarden-wasm-internal/npm/bitwarden_wasm_internal_bg.wasm -o ./crates/bitwarden-wasm-internal/npm/bitwarden_wasm_internal_bg.wasm.js
25+
npx terser ./crates/bitwarden-wasm-internal/npm/bitwarden_wasm_internal_bg.wasm.js -o ./crates/bitwarden-wasm-internal/npm/bitwarden_wasm_internal_bg.wasm.js
File renamed without changes.
File renamed without changes.

languages/swift/iOS/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata

-7
This file was deleted.

0 commit comments

Comments
 (0)