Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[V10] Prototype next generation Kotlin Multiplatform AboutLibraries #685

Merged
merged 71 commits into from
Nov 21, 2021

Conversation

mikepenz
Copy link
Owner

@mikepenz mikepenz commented Oct 31, 2021

Initial new version of the plugin introducing a new storage format, and improved performance.
New storage format includes multiple developer specifications, multiple licenses, and automatic download of LICENSE information as stored in the related open source GitHub repository (optional)

Optionally provide GitHub read only PAT for the GitHub license API.

New strictMode allowing to only succeed the build if all dependencies match the allowed libraries. E.g. only allow libraries with Apache-2.0 or MIT licenses, ...


New core module, fully refactored and redone as Kotlin Multiplatform module. Initial version supports JVM and Android. (JVM using kotlinx-serialization to parse the library detail information)


Worked through aboutlibraries module (old UI module) and cleanup code and drop rarely used APIs only introducing overhead.

Screenshot 2021-10-31 at 11 40 51


Initial new compose module with a new simplified UI, and great base code to write custom compose UIs visualising dependencies and libraries used within a project.

Screenshot 2021-10-31 at 11 41 38


TODO:

  • Consider keeping SPDX license "offline" in plugin -> no HTTP request to fetch license
  • Offer API to modify output directory

…ry or loaded from spdx (if not found in project)

  - tries to find LICENSE file in the open source repository using standard directories
- introduce new JSON storage format, not resulting in resource identifiers created (unless for licenses which could not be found via URL)
- introduce new settings to enable the remote license loading / or the new json storage format
- update kotlin
- drop support for writing the xml resource files
- temporarily disable support for SPDXLicense detection
  - fully use information provided via `pom.xml` -> and alternative the repo license
…d in gradle, using the ivy dependency

- drop support for legacy mapping files
- adjust storage format for new json definition
- define core module as kotlin multiplatform and setup proper definition parsing
- include licenses in single json file for a more consistent parsing behavior
- enhanced library license merging
- use new core library within aboutlibraries
…android projects

- introduce jvm parser logic
- use github API to retrieve license information from a repo (note this is rate limited!)
- introduce API to provide github token for GitHub API license retrieval
- cleanup and simplify
- do a check run to verify merged library information did not include spdx licenses potentially missing
- remove old legacy code
- remove support for include all licenses (if anticipated, needed licenses can be listed)
- use theme text appearance to better adjust based on the app theme
- remove support to use library without licenses
- drop more legacy APIs adding a lot of overhead
- drop coroutine dependency from core module
…icenses are used in the project

- enhance javadoc for extension
- a bit of cleanup for different classes
- add tmp experimental compose source
- update ci to handle new multiplatform module
- initial Compose list variant
- add compose sample activity to sample app
- make github token optional
- simplify plugin setup
  - compose 1.1.0-beta02
  - accompanist 0.21.2-beta
- materialdrawer 9.0.0-a02
- drop detekt for now
…tlibs.json` independent of android

  - generates the file in the modules build folder
  - configure different target folder via `exportPath` property
  - configure preferred variant via `exportVariant` property
- improve input/output spec for different targets
@mikepenz mikepenz force-pushed the feature/remote_licenses branch from 40d30f1 to 15c1b16 Compare November 17, 2021 11:08
@mikepenz mikepenz force-pushed the feature/remote_licenses branch from 6fb33e9 to d0d07fe Compare November 18, 2021 15:02
@mikepenz mikepenz force-pushed the feature/remote_licenses branch from 92c993c to 7a7e4f2 Compare November 21, 2021 09:05
@mikepenz mikepenz force-pushed the feature/remote_licenses branch from 7a7e4f2 to 7940801 Compare November 21, 2021 09:06
@mikepenz mikepenz force-pushed the feature/remote_licenses branch 3 times, most recently from e891600 to 238cd39 Compare November 21, 2021 12:25
@mikepenz mikepenz force-pushed the feature/remote_licenses branch from 238cd39 to 14dbd6b Compare November 21, 2021 12:34
@mikepenz mikepenz merged commit 91dbfec into develop Nov 21, 2021
@zoltish
Copy link

zoltish commented Nov 22, 2021

This looks awesome Mike, thanks for all your hard work! :)

@mikepenz
Copy link
Owner Author

Thank you so much @zoltish. If you have any feedback to improve before we reach stable v10, please add them here: #688

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants