Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jul 2, 2021

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Jul 2, 2021
agnostic-apollo and others added 20 commits September 5, 2021 11:18
- All hardcoded `com.termux` constants have been removed and will be handled by `TermuxConstants` and `TermuxPreferenceConstants`.
- Use extra constants returned by `TermuxService` defined in `TermuxConstants` for `PluginUtils`.
- Use `FileUtils` and `TermuxFileUtils` provided by `termux-shared` to handle all file related functionality which has better, safer and more updated code.
- Use `TermuxTaskerAppSharedPreferences` provided by `termux-shared` for handling `SharedPreferences` functionality.
- Use `Logger` provided by `termux-shared` for logging. Log level will not be got from `SharedPreferences` for each log entry but will be loaded from `SharedPreferences` into the `Logger.CURRENT_LOG_LEVEL` variable at application startup and also in `FireReceiver` which runs as a separate process and maintains separate `Logger` instance. The `termux-app` can also set the log level from its settings.
- Fix issue where log level was not being read from file, which has been fixed in `TermuxTaskerAppSharedPreferences` in upstream.
- Added crash handler so that crash notifications can be shown in `termux-app` at startup.
- Fix javadocs.
- Move functions to `PluginUtils` from `PluginResultsService`. The `Context` requirement is gone too since `Logger` doesn't need it.
- Previously working directory would only be created automatically if it was under `TermuxConstants.TERMUX_HOME_DIR_PATH` but now it will be created even if its under `TermuxConstants.TERMUX_FILES_DIR_PATH`.
- Catch exceptions thrown by `startService()` `startForegroundService()` when sending intent to `TermuxService` for execution.
- Use `ExecutionCommand` class to handle intent extras in `FireReceiver` since they are consistent with that of `TermuxService` `ACTION_SERVICE_EXECUTE` intent.
- Use `TermuxUtils` and `PackageUtils` provided by `termux-shared` and remove existing `TermuxUtils`. The `TermuxUtils.isTermuxAppAccessible()` will also check if `termux-tasker` can access `termux-app` package `Context`.
…ible builds and maintaining stacktraces of crashes
…dd window exception" when switching to landscape mode
… sent to TermuxService due to same request code being used
Previously configured actions will behave the same, i.e wait for only background commands. For new or edited actions, the `Wait for result for commands` toggle value will be used to decide whether to wait for result of commands. It will apply to both foreground session and background commands.

Note that for foreground commands, only the session transcript is returned which will contain both `stdout` and `stderr` combined in `%stdout` variable, basically anything sent to the the pseudo terminal `/dev/pts`, including `PS1` prefixes for interactive sessions.

For foreground commands that exited with failure will require `termux-app` version `>=0.118` for sessions to automatically close without waiting for user to press enter as per termux/termux-app@162a430b.

Closes #39
…ve that limit

If it affects other plugin host apps, it should be reported so that conditional blurb size can be used.
…sign plugin configuring views

Users can now pass scripts via `stdin`, like a `bash` script to the `$PREFIX/bin/bash` shell and a `python` script to the `$PREFIX/bin/python` shell or any other commands. Note that if passing script via `stdin`, do not pass arguments, since it will fail depending on shell, at least will for `bash`. Max length of script supported is `45K` characters as per Tasker plugin bundle limits, check `EditConfigurationActivity.setStdinView()` for details.

The plugin configuring screen has been redesigned with `CardView` support. For `stdin`, the `TextIOActivity` provided by `termux-shared` will be used.

The `strings.xml` naming convention has been updated.

Closes #46
Valid values are defined by `TermuxConstants.TERMUX_APP.TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_*`, currently, between `0` and `3`.
https://github.com/termux/termux-app/blob/v0.117/termux-shared/src/main/java/com/termux/shared/termux/TermuxConstants.java#L856
Values must be between `Logger.LOG_LEVEL_OFF (0)` and `Logger.MAX_LOG_LEVEL` (currently `Logger.LOG_LEVEL_VERBOSE (3)` as per termux/termux-app@60f37bde
 Termux:Tasker Plugin Various Improvements v2
@pull pull bot added the merge-conflict Resolve conflicts manually label Sep 11, 2021
@pull pull bot requested a review from v1nc September 11, 2021 16:00
…ash and `github` to APK file names

The `versionName` will now follow semantic version `2.0.0` spec in the format `major.minor.patch(-prerelease)(+buildmetadata)`. This will make versioning the prerelease and github debug builds versions easier and follow a spec. The @termux devs should make sure that when bumping `versionName` in `build.gradle` file and when creating a tag for new releases on github that they include the patch number as well, like `v0.1.0` instead of just `v0.1`. The `build.gradle` file and `attach_debug_apks_to_release` workflow will now validate the version as well and the build/attachment will fail if `versionName` does not follow the spec. https://semver.org/spec/v2.0.0.html

APKs released on github for debug build workflows and releases are now referred as `Github` releases as per termux/termux-app@7b10a35f and termux/termux-app@94e01d68, so APK filenames have been modified to include `github` in the filename. The APKs are still debuggable, so that tag remains too.

For github workflows the apk filename format will be `termux-tasker_<current_version>+<last_commit_hash>-github-debug_<arch>.apk`, like `termux-tasker_v0.1.0+xxxxxxxx-github-debug_arm64-v8a.apk` and for github releases it will be `termux-tasker_<release_version>+github-debug_<arch>.apk`, like `termux-tasker_v0.1+github-debug_arm64-v8a.apk`. The `last_commit_hash` will be the first `8` characters of the commit hash. The `<last_commit_hash>-github-debug` will act as `buildmetadata` and will not affect versioning precedence.

For github workflows triggered by `push` and `pull_request` triggers, `<current_version>+<last_commit_hash>` will be used as new `versionName`, like `v0.1.0+xxxxxxxx`. This will make tracking which build a user is using easier and help in resolving issues as well.

The `app/build.gradle` now also supports following `TERMUX_TASKER_` scoped environmental variables and `RELEASE_TAG` variable will not be used anymore since it may conflict with possibly other variables used by users.

- `TERMUX_TASKER_APP_VERSION_NAME` will be used as `versionName` if its set.
- `TERMUX_TASKER_APK_VERSION_TAG` will be used as `termux-tasker_<TERMUX_TASKER_APK_VERSION_TAG>.apk` if its set.
…release_build.yml` workflows renamed in a previous commit and their internal names and comments
…ub` release source and `debug` build type in the apk version tag

This is done to be consistent with semver build metadata tags. For example `github-debug` will now be `github.debug`.

- https://semver.org/#spec-item-10
…of every 2nd month" to `github_action_build` workflow triggers

- `workflow_dispatch` can be used to manually trigger a build, in case action run was deleted or artifacts get expired.
- `cron` is scheduled to be run every 2nd month (`~60` days) because artifacts expire after `90` days by default, and there is no easy way to set `89` days from now/start of year or ideally last commit, and some months have 28 or 31 days, which would make it even harder. Additionally, workflow should get triggered based on `cron` schedule regardless of last push time, so multiple action runs may exist for every commit anyways, so using 2nd month shouldn't be an issue.
- `cron` is scheduled to be run on the 15th minute to reduce chances of workflow getting dropped. If it does get dropped, then `workflow_dispatch` can be used.
  > The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs. High load times include the start of every hour. If the load is sufficiently high enough, some queued jobs may be dropped. To decrease the chance of delay, schedule your workflow to run at a different time of the hour.
  - https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
…argetSdk` and `compileSdkVersion` to `compileSdk` in `build.gradle` files

`compileSdkVersion` was deprecated in Android gradle plugin (`AGP`) version `>= 7.2.0` in favour of `compileSdk`, so replace `Version` suffix from other related variables as well to be consistent.

- https://developer.android.com/reference/tools/gradle-api/7.2/com/android/build/api/dsl/CommonExtension#compileSdkVersion(kotlin.Int)
…X_TASKER_APP__BUILD__` scope instead of `TERMUX_TASKER_APP_BUILD__`

- Renamed `TERMUX_TASKER_APP_BUILD__APP_VERSION_NAME` to `TERMUX_TASKER_APP__BUILD__APP_VERSION_NAME`
- Renamed `TERMUX_TASKER_APP_BUILD__APK_VERSION_TAG` to `TERMUX_TASKER_APP__BUILD__APK_VERSION_TAG`
… other modules/libraries as required by Android gradle plugin (`AGP`) version `>= 8.0.0`

The default value for `android.nonTransitiveRClass` property has been changed from `false` to `true`. The value can be overridden to `false` in the global/root `gradle.properties` file of the project, but that will affect all modules, so instead we just use fully qualified name in `app` module that is triggering build errors.

- https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes#default-changes
- https://developer.android.com/build/optimize-your-build#use-non-transitive-r-classes
…stage 2

The `TermuxTaskerLauncherActivity` activity alias has been added for `TermuxTaskerMainActivity`. This will allow disabling the launcher activity, but still allow the main activity to be launched from Termux app. The launcher activity will also now be allowed to be enabled again without having to reinstall the app with the `Enable Launcher Icon` button in the main activity if its currently disabled.
…ermux-app@1b794b35 and termux/termux-app@6ff55729

Also set log level when `TermuxTaskerMainActivity` is resumed and don't commit to file if not needed.
The `versionCode` has been bumped to `1000` so that users who have installed from F-Droid or GitHub should not have the app attempted to be updated by Google PlayStore and failing and also shown in PlayStore app updates list in case the `versionCode` is set to higher than the latest F-Droid or GitHub release. Unlike F-Droid, PlayStore does not check for difference in app APK signature before attempting to download and then failing to install due to signature mismatch.

- termux/termux-app#4000
- termux/termux-app#4012
Related commit termux/termux-app@d2cd6ac2

The older `b0e1dbc3da` commit is also resulting in `> Could not GET 'https://jitpack.io/com/termux/termux-app/termux-shared/b0e1dbc3da/termux-shared-b0e1dbc3da.pom'. Received status code 401 from server: Unauthorized` and build is not found in jitpack commits list. Related issue jitpack/jitpack.io#7063
agnostic-apollo and others added 4 commits September 3, 2025 00:00
…app that did not support `TERMUX_SERVICE.EXTRA_RUNNER` due to 10cc047

Closes #118
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants