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

Image repository #14

Open
7 tasks
depau opened this issue Dec 21, 2018 · 8 comments
Open
7 tasks

Image repository #14

depau opened this issue Dec 21, 2018 · 8 comments
Labels
enhancement New feature or request
Milestone

Comments

@depau
Copy link
Member

depau commented Dec 21, 2018

Placeholder issue to track progress on the image download repository, which is a planned feature.


If you're good at UX design, feel free to give me some hints. I suck at it, I'm doing my best :)


Some details for people who would like to help:

  • The main plan is to add a navigation drawer on the left side to be able to reach the feature
  • Some new screens with this flow:
    • Main screen shows macro-categories, such as "Ubuntu", "Arch Linux", "Fedora"
    • Tapping a category opens another screen showing the available images
  • The idea is that the image should be downloaded while it's being flashed, so it can be useful on devices with low storage and good Wi-Fi
  • The repository will not actually host any image; it will only contain a list of HTTPS download links; Current idea:
    • Git repo with a bunch of YAML metadata files describing each entry in the repo, served on GitHub Pages
    • A parser that reads the metadata and generates a final, big YAML
    • The parser will be run on Travis CI or similar, so that people can add/fix meta with pull requests and the repo is automatically updated at the end
    • Security considerations:
      • Should external repositories be allowed?
      • Signature checking needs to be done, like F-Droid, to prevent MITM attacks.
      • Care needs to be taken when providing download links for image, like providing multiple download links or the link to a "mirror director" so that the load on upstream's servers is balanced.

Stuff to do:

  • Add the navigation drawer - @TacoTheDank's changes should make it a bit easier
  • Add the required activities
  • Come up with a good, future-proof structure and design for the repository
  • Write server metadata generator
  • Write client metadata download and parsing code
  • Set up the metadata repository and add some data
  • Set up GitHub Pages and a dedicated domain

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@depau depau added the enhancement New feature or request label Dec 21, 2018
@depau depau added this to the v3.0 milestone Dec 21, 2018
@TacoTheDank
Copy link
Contributor

Current version is 1.3.31, planned is 3.0

hmmmmm where's 2.0 lol

@depau
Copy link
Member Author

depau commented Dec 23, 2018

@TacoTheDank It's here: https://github.com/Depau/EtchDroid/milestone/1

Being able to create bootable USB drives for all OSes has a higher priority than downloading images, which you can do from the browser although it's a bit less convenient.

@TacoTheDank
Copy link
Contributor

Seems about right. Windows will probably be kind of a pain because it's closed-source and more requirements.

@depau
Copy link
Member Author

depau commented Dec 23, 2018

It's quite doable, see #5.

@depau depau added this to To do in Project development Dec 23, 2018
@TacoTheDank
Copy link
Contributor

All that really matters is that it can be done lol

@depau
Copy link
Member Author

depau commented Dec 23, 2018

I'll just throw it here but would you be interested in helping me add a navigation drawer to the main activity while I get started with #15?

That would be very helpful!

@TacoTheDank
Copy link
Contributor

I would love to, but I'm still just a beginner at coding and xml stuff, and I'd rather not have to attempt to fix it 20 times over haha. I would have no clue what I'm doing :)

@depau
Copy link
Member Author

depau commented Dec 23, 2018

Up to you :) In case just try to

  • make one commit for each change, and avoid having multiple changes in one commit (hint: use Android Studio's commit dialog (Ctrl+K) and double-check the diff for each file; you can unstage changes from the diff by removing the checkmark)
  • use meaningful commit messages
  • avoid refactoring the whole file when you make a change (hint: on Android Studio, press Ctrl+Alt+Shift+L and in the dialog and set it to refactor only VCS changed text)
  • avoid unnecessary/unrelated changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

2 participants