Giter Club home page Giter Club logo

sentryproguardgradleplugin's People

Contributors

dependabot[bot] avatar fabi755 avatar github-actions[bot] avatar iokibot avatar stefma avatar vlh-ioki avatar

Watchers

 avatar  avatar

Forkers

fabi755

sentryproguardgradleplugin's Issues

Plugin doesn't work with configuration cache

It reports:

`:app:uploadSentryProguardUuidForXYZRelease` of type `com.ioki.sentry.proguard.gradle.plugin.tasks.UploadUuidToSentryTask`: invocation of 'Task.project' at execution time is unsupported.

Javadoc is empty

While implementing #65 I realized that the javadoc.jar is empty.
It doesn't contain any docs.

This should be fixed.

Publish to maven central

TODOS:

  • Adjust POM file
  • Change groupId? And artifact?
  • Add javadoc to publication
  • Add sources to publication
  • Sign artifacts
  • Add sonatype snapshot repository to publishing
  • Add GH Actions/CD for automatic releasing
  • Add credentials to GH Actions secrets
  • Adjust README
  • ...?

Setup GitHub Actions

We have tests already in place. We only need a GitHub Actions for running those ๐Ÿ™ƒ

Publish the plugin

Currently the project is just open sourced but not used.
We should make it publishable by adding the maven-publish plugin and then publish it "somewhere".
Either via jitpack or using the Gradle plugin portal.

Use an extension instead of Gradle properties

Maybe it makes more sense to create a extension to set up the sentry related information instead of proving them via Gradle properties.
Could look like:

sentry {
  org.set("sentry_org")
  project.set("sentry_project_prop")
  authToken.set("sentry_auth_token_prop")
}

With that solution we could still use properties ๐Ÿ™‚

sentry {
  org.set(properties("sentry_org_prop"))
  org.set(properties("sentry_project_prop"))
  org.set(properties("sentry_auth_token_prop"))
}

Test multiple versions of the AGP

Currently we ship AGP 7.4.1

implementation("com.android.tools.build:gradle:7.4.1")

We should make sure that the plugin will not break with new AGPs.
For that we could make an (easy) integration test and a junit5 parameterized tests to test different variations.

AGPs versions can be found here:
https://maven.google.com/web/index.html?q=gradle#com.android.tools.build:gradle

junit5 parameterized tests:
https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests

Another option to junit5 parameterized tests would be to leaverage the work to the CI (GitHub Actions):
https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs

But not sure how the latter would/could work and how it would/could look like ๐Ÿคท
Benefit would be that each test run in parallel instead of sequencelly (in case of junit5)

Find build types that have enabled `minify` instead of using hard-coded `release` build type

As of today, we only support the default build types debug and release.
While we disable the UUID generation as well as the tasks for debug we do it on release.

Anyhow, it is possible to create more build types with different configs.
To make this plugin more generic we should check each build type if minify is enabled and do the uuid and task generation process for all of them...

Make CLI (version) configureable

Currently the CLI version is hardcoded:

private fun findSentryCliDownloadUrl(): String {
val osName = System.getProperty("os.name").lowercase(Locale.ROOT)
return when {
osName.contains("mac") ->
"https://github.com/getsentry/sentry-cli/releases/download/2.12.0/sentry-cli-Darwin-arm64"
osName.contains("nix") || osName.contains("nux") || osName.contains("aix") ->
"https://github.com/getsentry/sentry-cli/releases/download/2.12.0/sentry-cli-Linux-x86_64"
else -> throw GradleException("We do not support $osName")
}
}

We should make it possible that plugin consumers can change the version via extensions (see also #4).

To note:
Updating the version of the CLI might break the uploading in case the CLI parameters change.

Only sign artifacts in release

Currently we always sign artifacts.
This however lead to problems. Not only when build locally when no signing key and/or password is available but also in PRs by contributors. See #73

We should only sign artifacts in our CI when we publish to the sonatype/github repos.

Get updates/notified about new sentry cli releases

Currently we are using a hardcoded version of the sentry cli. Even if we make this configurable in the future (see #6) wen (this repo) wants to somehow notified as soon as there is a new release of the cli so we can update it.

As a first solution we might want to use a GH action that checks sentry cli repo for a new release every week and in case there is a new version it creates a PR ๐Ÿคทโ€โ™‚๏ธ maybe an issue would be enough too...

Improve Lokalise CLI update workflow

Right now we try to create a PR even when it might be the case an PR (or branch) with that name already exists.
In this case the workflow fails.
However, it shouldn't fail but silently finish because this is not an issue ๐Ÿ™ƒ

Also include changelog / link to release in body

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.