mafik / echo

Time travelling recorder for Android.
GNU General Public License v3.0
98 stars 24 forks source link

Allow external pull requests for fixed issues #20

Closed Divide-By-0 closed 6 months ago

Divide-By-0 commented 6 months ago

There are two repos with several changes, including: https://github.com/infinity0/Circular-Recorder - this one allows to record to external storage instead of RAM, increasing the amount of time that can be recorded https://github.com/jenisha010/echo - this one fixes the background recording problems and updates it to use the latest permissions. This resolves various issues like #14, #17.

However, it says only maintainers can make pull requests.

mafik commented 6 months ago

Big thanks. I didn't notice they're disabled. I've flipped some toggles and I think pull requests should be working now (I don't have a second account so can't really verify).

jenisha010's fork is a solid one, I'll pull that one right away!

Go-rom commented 4 months ago

Hello @mafik Would you be ok to provide a new release with these merged PR + Android 14+ compatibility please ? Thank you

mafik commented 4 months ago

Hi @Go-rom ! I took a look at F-Droid documentation at https://f-droid.org/docs/Update_Processing/. I understand that F-Droid servers build the APK according to metadata from this file: https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/eu.mrogalski.saidit.yml.

That metadata file seems like the right place to publish the new version but I'd need to test it out before sending a pull request. Unfortunately I can't do that. I've lost my Android setup some time ago. It seems that the F-Droid metadata file was edited by a bunch of folks over past years (https://gitlab.com/fdroid/fdroiddata/-/commits/master/metadata/eu.mrogalski.saidit.yml) so luckily it's not really blocked on me. I guess anybody can post an update to F-Droid if they would like to.

uis246 commented 3 months ago

Am I understanding correctly that all needed for fdroid's autoupdate is bumping version in manifest in this repo?

mafik commented 3 months ago

I'm not the right person to answer this question :/ Maybe somebody has some experience in F-Droid maintenance?

Go-rom commented 3 months ago

Hello @mafik

Thank you for your answer, i'm sorry because i'm not able to help you out on this one, i'm not a dev so i've got no experience about this topic. But please, allow me to summon the mighty @IzzySoft (Hi !) who surely might be able to enlight us on that matter.

IzzySoft commented 3 months ago

Auto-Updates are disabled there:

AutoUpdateMode: None
UpdateCheckMode: RepoManifest
CurrentVersion: 1.3.39
CurrentVersionCode: 14

Also the method RepoManifest is not really what's used anymore (tagged releases are the de-facto standard). But yeah, you could open an issue with their fdroiddata repo asking for assistance. Not much I can do; I cannot even offer you to list the app at IzzyOnDroid as you don't provide an APK file.

jenisha010 commented 3 months ago

Hello @mafik If you don't have Android setup, I can send you the build APK or create a Release for test and send you a pull request. (I'm not sure if I create release on my forked repo and then raising a pull request will show up the release on original repo)

Publishing a newer version on F-Droid will help a lot of users to get their hands on the new version app. Let me know your thoughts.

mafik commented 3 months ago

Hi @jenisha010 ! Thanks for jumping in! I think the key is to update the manifest in the fdroiddata repository and check that it's still working. I have actually never submitted stuff to F-Droid so I don't have real experience in this stuff but F-Droid docs should have the instructions on doing that.

Go-rom commented 3 months ago

Thank you @IzzySoft for providing these advices 👍

@jenisha010 are you able to manage the fdroiddata repo update or do you need any help? If it's too much work, the Izzy's repo could be the key since It only requires published APKs

Go-rom commented 4 days ago

Hello everyone,

i'm reporting back some news : i decide to give it a try by setting up on a spare computer a F-droid building environment.

I did succeed to build the master branch but some questions remain.

  1. @mafik you need to increment versionCode to 15 and versionName to 1.3.40 (or whatever the version you want) in build.gradle
  2. @jenisha010 since your PR, i don't understand why android:versionCode and android:versionName have disappeared in AndroidManifest.xml. It's a real question, remember i'm not a dev but since these variables are present in the default template, i'm just wondering if it could cause any issue later.
  3. The F-Droid metadata file list all Echo's versions including 1.3.38 and 1.3.39. The problem is : if these old versions remain in the metadata file, the building process fails because they need Gradle 1.10. And i don't know if when it comes to update the F-Droid repository, the older versions have to be built too.

Also i had to remove - $$SDK$$/tools/bin/sdkmanager 'platforms;android-21' 'build-tools;21.0.2' > /dev/null in order to make it work. Of course i tried to update versions (android-34, builds-tools;34.0.0) The dedicated documentation suggests to use double quotes instead of simple but it doesn't solve the issue.

Here's the kind of error i'm getting :

2024-10-08 15:52:29,450 ERROR: Could not build app eu.mrogalski.saidit: Error running prebuild command for eu.mrogalski.saidit:1.3.40
==== detail begin ====
+ sed -i -e 's/class/public class/g' /build/build/srclib/jcaki/src/org/jcaki/Doubles.java
+ cp -fR /build/build/srclib/jcaki/src/org src/main/java/
+ /opt/android-sdk/tools/bin/sdkmanager 'platforms;android-34' 'build-tools;34.0.0'
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:103)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
    ... 4 more
==== detail end ====

Allow me to also include the current rewritten metadata file.

Click to expand ``` Categories: - Multimedia License: GPL-3.0-only AuthorName: Marek Rogalski AuthorEmail: mafikpl@gmail.com AuthorWebSite: https://mrogalski.eu/ SourceCode: https://github.com/mafik/echo IssueTracker: https://github.com/mafik/echo/issues AutoName: Echo Description: |- Continuously record audio for retrieval at a later time. Unless saved, recordings are deleted on a rolling basis. * record harassment and bullying (even when you didn't anticipated them) * save important pieces of information (phone numbers / passwords / instructions) * record cute/funny moments * prove that someone said (or didn't say) something RepoType: git Repo: https://github.com/Go-rom/echo Builds: - versionName: 1.3.38 versionCode: 13 commit: 9dafc3895c6d40707b96be085e82df056160ca46 subdir: SaidIt gradle: - yes srclibs: - jcaki@fc513da4f326ddfee45a2318b326c61ffa10838a rm: - SaidIt/libs/* prebuild: - sed -i -e 's/class/public class/g' $$jcaki$$/src/org/jcaki/Doubles.java - cp -fR $$jcaki$$/src/org src/main/java/ - sed -i -e 's/v7:/v7:21./g' -e 's/v4:19/v4:21/g' -e 's/19.1.0/21.0.2/g' -e 's/compileSdkVersion 19/compileSdkVersion 21/g' build.gradle - versionName: 1.3.39 versionCode: 14 commit: 79d591c086452a37494a6fd8976218a3773bdc05 subdir: SaidIt gradle: - yes srclibs: - jcaki@fc513da4f326ddfee45a2318b326c61ffa10838a rm: - SaidIt/libs/* - legacy/1.0/libs/* prebuild: - sed -i -e 's/class/public class/g' $$jcaki$$/src/org/jcaki/Doubles.java - cp -fR $$jcaki$$/src/org src/main/java/ - $$SDK$$/tools/bin/sdkmanager 'platforms;android-21' 'build-tools;21.0.2' > /dev/null - versionName: 1.3.40 versionCode: 50 commit: 4aa8ed2f6c8eda5f079ad35997fcd1c3f349692a subdir: SaidIt gradle: - yes srclibs: - jcaki@fc513da4f326ddfee45a2318b326c61ffa10838a rm: - SaidIt/libs/* - legacy/1.0/libs/* prebuild: - sed -i -e 's/class/public class/g' $$jcaki$$/src/org/jcaki/Doubles.java - cp -fR $$jcaki$$/src/org src/main/java/ AutoUpdateMode: None UpdateCheckMode: RepoManifest CurrentVersion: 1.3.40 CurrentVersionCode: 15 ```

Note that for testing purposes, the metadata file targets the fork on my Github space.

I think we also should discuss about more sticking to the F-Droid submitting guide. e.g. use tagging for each release.

If anyone is able to provide some answers, please jump in !