Skip to content

Commit 5076b50

Browse files
authored
Update for 0.90 release. (#933)
This PR includes the following - Removes multipaz-cbor-rpc-annotations library, move this code in multipaz - Add publishing rules for multipaz-models and multipaz-compose - Changes Maven group for multipaz-android-legacy to org.multipaz - Fixes some bugs in publishing so Android artifacts are included when needed. This also resulted in some of the resource identifiers changing - Cleans up / simplifies README.md file - Adds a CHANGELOG.md file This was testing by releasing to Maven Local and testing against standalone projects consuming the artifacts. Test: Manually tested, see above. Test: ./gradlew check && ./gradlew connectedCheck Signed-off-by: David Zeuthen <[email protected]>
1 parent 10d9ed9 commit 5076b50

File tree

34 files changed

+274
-410
lines changed

34 files changed

+274
-410
lines changed

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.90] - 2025-03-26
9+
This is the first release with the CHANGELOG.md file and also the first release using the new
10+
Multipaz name. Main changes since the Identity Credential version 202411.1 include:
11+
- The project has been renamed to Multipaz and all package names have been
12+
changed from `com.android.identity` to `org.multipaz`.
13+
- New `multipaz-models` and `multipaz-compose` libraries
14+
- Removal of `appholder` module.
15+
- Conversion of DocumentStore, Document, Credential to use suspend methods.
16+
- Conversion of SecureArea to use suspend methods.
17+
- Introduction of new PromptModel to handle interaction with the user for
18+
asynchronous methods on SecureArea and NFC tag reading.
19+
- New multiplatform ASN.1 and X.509 code.
20+
- New multiplatform ISO/IEC 18013-5 proximity presentment stack.
21+
- New multiplatform NFC stack and NFC tag reader abstraction.
22+
- New multiplatform storage backend.
23+
- New presentment model and composable.
24+
- New HTML/Markdown, Notifications, LockScreen multiplatform composables.

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ here are some pointers about what we're looking for:
1717
- The commit message should be short, to the point, and explain exactly what the change is
1818
doing. Not too short, not too long. See the git history for inspiration and what the
1919
project is generally doing.
20-
- The code in the change should follow the style in CODING-STYLE.md.
21-
- The code must be tested, either with unit tests or manual tests. See TESTING.md for details.
20+
- The code in the change should follow the style in [CODING-STYLE.md](CODING-STYLE.md).
21+
- The code must be tested, either with unit tests or manual tests. See [TESTING.md](TESTING.md) for details.
2222
- We generally use a single commit per PR, to keep the git history sane.
2323

2424
Before uploading a PR, it's generally a good idea to manually review the commit (using

README.md

Lines changed: 58 additions & 251 deletions
Large diffs are not rendered by default.

multipaz-android-legacy/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ dependencies {
5757
androidTestImplementation(libs.kotlinx.coroutines.core)
5858
}
5959

60-
group = "com.android.identity"
60+
group = "org.multipaz"
6161
version = projectVersionName
6262

6363
publishing {

multipaz-cbor-rpc-annotations/build.gradle.kts

Lines changed: 0 additions & 56 deletions
This file was deleted.

multipaz-cbor-rpc/build.gradle.kts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
plugins {
22
id("java-library")
33
id("org.jetbrains.kotlin.jvm")
4+
id("maven-publish")
45
}
56

7+
val projectVersionCode: Int by rootProject.extra
8+
val projectVersionName: String by rootProject.extra
9+
610
kotlin {
711
jvmToolchain(17)
812
}
@@ -18,3 +22,24 @@ dependencies {
1822

1923
testImplementation(libs.junit)
2024
}
25+
26+
group = "org.multipaz"
27+
version = projectVersionName
28+
29+
publishing {
30+
repositories {
31+
maven {
32+
url = uri("${rootProject.rootDir}/repo")
33+
}
34+
}
35+
publications.withType(MavenPublication::class) {
36+
pom {
37+
licenses {
38+
license {
39+
name = "Apache 2.0"
40+
url = "https://opensource.org/licenses/Apache-2.0"
41+
}
42+
}
43+
}
44+
}
45+
}

multipaz-compose/build.gradle.kts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,12 @@ plugins {
88
alias(libs.plugins.androidLibrary)
99
alias(libs.plugins.jetbrainsCompose)
1010
alias(libs.plugins.compose.compiler)
11+
id("maven-publish")
1112
}
1213

14+
val projectVersionCode: Int by rootProject.extra
15+
val projectVersionName: String by rootProject.extra
16+
1317
kotlin {
1418
jvmToolchain(17)
1519

@@ -21,6 +25,8 @@ kotlin {
2125
compilerOptions {
2226
jvmTarget.set(JvmTarget.JVM_17)
2327
}
28+
29+
publishLibraryVariants("release")
2430
}
2531

2632
listOf(
@@ -107,4 +113,33 @@ android {
107113
excludes += listOf("/META-INF/versions/9/OSGI-INF/MANIFEST.MF")
108114
}
109115
}
116+
117+
publishing {
118+
singleVariant("release") {
119+
withSourcesJar()
120+
}
121+
}
122+
}
123+
124+
group = "org.multipaz"
125+
version = projectVersionName
126+
127+
publishing {
128+
repositories {
129+
maven {
130+
url = uri("${rootProject.rootDir}/repo")
131+
}
132+
}
133+
publications.withType(MavenPublication::class) {
134+
pom {
135+
licenses {
136+
license {
137+
name = "Apache 2.0"
138+
url = "https://opensource.org/licenses/Apache-2.0"
139+
}
140+
}
141+
}
142+
}
110143
}
144+
145+
tasks.named("generateResourceAccessorsForAndroidMain").configure { dependsOn("sourceReleaseJar") }

multipaz-compose/src/androidMain/kotlin/org/multipaz/compose/webview/WebViewRender.android.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import androidx.compose.ui.graphics.toArgb
2222
import androidx.compose.ui.unit.dp
2323
import androidx.compose.ui.viewinterop.AndroidView
2424
import org.multipaz.util.Logger
25-
import multipazproject.multipaz_compose.generated.resources.Res
25+
import org.multipaz.multipaz_compose.generated.resources.Res
2626
import kotlinx.coroutines.CoroutineScope
2727
import kotlinx.coroutines.Dispatchers
2828
import kotlinx.coroutines.launch

multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/certificateviewer/CertificateViewer.kt

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -41,34 +41,34 @@ import org.multipaz.crypto.X500Name
4141
import org.multipaz.crypto.X509Cert
4242
import org.multipaz.crypto.X509CertChain
4343
import org.multipaz.datetime.FormatStyle
44-
import multipazproject.multipaz_compose.generated.resources.Res
45-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_critical_ext
46-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_common_name
47-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_country_name
48-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_locality_name
49-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_org_name
50-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_org_unit_name
51-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_other_name
52-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_pk_algorithm
53-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_pk_named_curve
54-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_pk_value
55-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_serial_number
56-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_state_name
57-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_type
58-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_valid_from
59-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_k_valid_until
60-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_non_critical_ext
61-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_oid
62-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_sub_basic_info
63-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_sub_extensions
64-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_sub_issuer
65-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_sub_public_key_info
66-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_sub_subject
67-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_valid_now
68-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_validity_in_the_future
69-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_validity_in_the_past
70-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_value
71-
import multipazproject.multipaz_compose.generated.resources.certificate_viewer_version_text
44+
import org.multipaz.multipaz_compose.generated.resources.Res
45+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_critical_ext
46+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_common_name
47+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_country_name
48+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_locality_name
49+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_org_name
50+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_org_unit_name
51+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_other_name
52+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_pk_algorithm
53+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_pk_named_curve
54+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_pk_value
55+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_serial_number
56+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_state_name
57+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_type
58+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_valid_from
59+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_k_valid_until
60+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_non_critical_ext
61+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_oid
62+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_sub_basic_info
63+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_sub_extensions
64+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_sub_issuer
65+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_sub_public_key_info
66+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_sub_subject
67+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_valid_now
68+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_validity_in_the_future
69+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_validity_in_the_past
70+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_value
71+
import org.multipaz.multipaz_compose.generated.resources.certificate_viewer_version_text
7272
import kotlinx.datetime.Clock
7373
import kotlinx.datetime.Instant
7474
import org.jetbrains.compose.resources.StringResource

multipaz-compose/src/commonMain/kotlin/org/multipaz/compose/consent/ConsentModalBottomSheet.kt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,22 +47,22 @@ import org.multipaz.request.MdocRequestedClaim
4747
import org.multipaz.request.Request
4848
import org.multipaz.request.RequestedClaim
4949
import org.multipaz.trustmanagement.TrustPoint
50-
import multipazproject.multipaz_compose.generated.resources.Res
51-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_button_cancel
52-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_button_more
53-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_button_share
54-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_card_art_description
55-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_data_element_icon_description
56-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_headline_share_with_known_requester
57-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_headline_share_with_unknown_requester
58-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_and_stored_by_known_requester
59-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_and_stored_by_unknown_requester
60-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_with_known_requester
61-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_with_unknown_requester
62-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_verifier_icon_description
63-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_wallet_privacy_policy
64-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_warning_icon_description
65-
import multipazproject.multipaz_compose.generated.resources.consent_modal_bottom_sheet_warning_verifier_not_in_trust_list
50+
import org.multipaz.multipaz_compose.generated.resources.Res
51+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_button_cancel
52+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_button_more
53+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_button_share
54+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_card_art_description
55+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_data_element_icon_description
56+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_headline_share_with_known_requester
57+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_headline_share_with_unknown_requester
58+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_and_stored_by_known_requester
59+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_and_stored_by_unknown_requester
60+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_with_known_requester
61+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_share_with_unknown_requester
62+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_verifier_icon_description
63+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_wallet_privacy_policy
64+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_warning_icon_description
65+
import org.multipaz.multipaz_compose.generated.resources.consent_modal_bottom_sheet_warning_verifier_not_in_trust_list
6666
import kotlinx.coroutines.CoroutineScope
6767
import kotlinx.coroutines.launch
6868
import org.jetbrains.compose.resources.ExperimentalResourceApi

0 commit comments

Comments
 (0)