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

Red Moon Maintenance Status #281

Open
2 of 4 tasks
smichel17 opened this issue Dec 19, 2020 · 2 comments
Open
2 of 4 tasks

Red Moon Maintenance Status #281

smichel17 opened this issue Dec 19, 2020 · 2 comments

Comments

@smichel17
Copy link
Member

smichel17 commented Dec 19, 2020

This is not an announcement of changes to come, just confirming how things have been for several years already.

Working on Red Moon is not a priority for me right now, but I still use it daily. I plan to maintain it to the level of "works on my device[1]." That means I will fix bugs that annoy me enough, and that's all — no other bugfixes or new features are planned. That said, I'd be thrilled to have co-maintainers, so I am willing to match the effort that anyone else wants to put in:

  • I plan to review and merge pull requests.
    • I am willing to answer questions about the code base.
    • Red Moon is a good (simple) project for learning to code. If you are interested, I am willing to mentor you.
  • I plan on approximately yearly releases to update translations. Or more often, if someone asks.
  • Feel free to continue submitting bug reports and feature requests. They may be useful in the future, and they help other users identify known issues and workarounds.

There are a few things I still plan to do:

  • Release version 3.6, which cleans up the interface (adds a dedicated settings screen) and allows selecting one fixed time and the other at sunrise/sunset. (Also remove my email from the app, since it is the source of most spam I recieve.)
  • Deal with play store issues — Add brightness controls to persistent notification #247 & Unable to purchase from Play Store #148.
  • Update the readme with a summary of this issue.
  • Look over the open issues and see if there are any that can be solved with quick fixes, which I may have previously passed over in favor of a more comprehensive solution.

[1] As I write this (2020-12-18), that's a Samsung Galaxy S6 (SM-G920A) running Android 7.0.


I care about software freedom, and I try to run exclusively FLO software on my personal computers. Today I have mostly achieved that (with exceptions for a few messaging apps, for when I'm not willing to ask others to switch to Signal or Matrix), but it was a gradual transition. Most proprietary apps I used had a decent FLO counterpart on f-droid, but there was no screen filter app good enough to replace Twilight. Red Moon, developed by @raatmarien at the time (which built on top of Shades, by @cngu), was the closest, and its code base was easy enough to understand to the junior programmer I was back then, so I started helping out. I didn't plan to become the primary maintainer; it just happened that way, as @raatmarien became busier with other things.

Red Moon is a small enough project that it is possible to get it feature-complete; if every open issue on this repo were fixed, there would be nothing more to do, except keep it working on the latest versions of Android and as many devices as possible — very low effort required. My plan was to get Red Moon to that point, and then basically move on. I still have some interest in that… however, Red Moon is one of many projects I'd like to work on, far more than I will ever have time to complete. And so I have chosen to prioritize those that I feel have the most potential to improve the world.

Today, there are several other screen filter apps looking to solve the exact same problem as Red Moon. It seems like a waste of time to work on this problem when others are doing the exact same thing. I would rather work together to create the single best app we can. I actually proposed this (#222) but despite some initial interest, I was not able to entice the other apps' devs to participate meaningfully. I have no hard feelings towards them, and I'd be willing to help if they wanted to use any of Red Moon's features in their own apps (e.g. automatic pause to exclude apps from filtering). At the same time, I can't deny this hugely decreases my motivation, especially compared to other projects that nobody has attempted before.

As importantly, Android has a built-in blue light filter; I mostly use Red Moon for additional dimming and an automatic backlight control — basically, as a toggle for when I'm reading in bed at night. Building a better screen filter app is not as important as it once was. Through the combination of improvement and increasing irrelevance, my original motivation to work on Red Moon has been solved.

I'd like to think that some day I will return to finish the app. But if I'm being honest — with myself and with you — I will probably switch to gnu/linux phone (pinephone or librem 5) before that happens, and at that point I'm unlikely to return to Android, as a user or developer. In the meantime, I'll keep Red Moon working well enough for myself, or switch to a different app (and update the status here); and I remain interested in improvements that anyone else would like to contribute, and willing to help you with them.

@NoahAndrews
Copy link

NoahAndrews commented Dec 19, 2020

Respect. This is very well-written, and more than reasonable. I wish all maintainers who don't want to actively spend time on a project would be so up-front about what they are and are not willing to do (bonus points for being willing to help newcomers learn the codebase and make the app better).

Thanks for reminding me that Snowdrift exists, it's a really, really cool model. Contributing a few dollars a month to a project that isn't bringing in enough money to really do anything useful with definitely feels like it's impacting me more then it's impacting the project. I've added my 13¢ (for now!) pledge :)

@smichel17
Copy link
Member Author

smichel17 commented Nov 9, 2021

Learning to Code

Since I wrote this post, Red Moon has gotten a tiny but consistent trickle of people interested in contributing— maybe one person every 3-4 months. It must have gotten onto some list of "good first Open Source projects to contribute to", or appear in search results. So, based on my experience in the last year with some interested contributors, I can offer some new information about what will works and what won't.

Mentorship, not Management

The most important thing is that you need to be self-motivated to contribute to Red Moon in particular, ideally a specific feature. As I said in the post above, I am willing to match your effort; before I put in my share, I need you to demonstrate that you're willing to do yours. Looking back over the state of the project to figure out what is a good fit for you to do takes some effort from me. If you're waiting for me to do that preemptively, it's going to be a while. So far, I've averaged 3-6 months to respond to an email like "Hi, I heard Red Moon is a good project for new programmers. What should I do?".

Beginner, not First-Time Coder

I wrote earlier that "Red Moon is a good project for learning to code". I no longer think it's a good project if you don't know how to code at all. This doesn't have anything to do with Red Moon itself, but more about tooling— Android and Git. I'd still say Red Moon is a good first real world project, and a good project to learn Android development.

You'll probably have a better experience contributing if you've done some previous programming activity where you wrote at least 200 lines of code— maybe it was a small personal project that only had 200 lines of code, or maybe it was for an assignment in class (either in person or online).

If you've never written a line of code before, I would advise you not to struggle through figuring out version control, getting an Android development environment set up, and learning Android APIs. Start on something smaller and more self-contained.

I'm still not sure whether I know enough!

If you…

  • Can write fizzbuzz
  • Can write a recursive function to print the numbers in the fibbonaci sequence
  • Understand basic data structures, like a List, Set, and Map

…then you probably know enough. Note: I'm not saying to go memorize just those things and you're good, but if you've gotten to them in the course of your learning, then you're probably good to go.

If you understand the difference between Big O and Theta, or you can explain what an iterator is and why it's useful, then you almost certainly know enough to contribute (again, unless somehow you happen to know only that thing).

Mentorship Offer

Mentoring takes time & effort, and I have other projects I'm working on, too! There are a few things that will make it work out better for both of us:

  • Pick your own issue: I'm not actively developing Red Moon; I don't have a list of top priorities that I'd like to get to. Please figure out what you're interested in working on, yourself. I've already identified a bunch of good first issues.
    • If this is really hard for you, pick 3 and ask me which of those to work on. That's much easier for me to a
  • Try it yourself, first: Mentorship means giving tips & tricks, pointing you in the right direction, and teaching some concepts, not walking you through everything step-by-step.
  • Set up the tools beforehand: Ideally you should be able to build the project and know how to commit, push, and open a pull request before getting in contact. I know that tooling can be a HUGE pain. On the other hand, there are many other people who know how to use Git and how to do Android development who could help you (whereas I have some unique knowledge of the Red Moon code). So, it's not really a good use of my time/knowledge if I spend most of my time helping you with tooling. Still, if you get stuck or something is much harder than you expect it should be, ask and I'll try to point you in the right direction.
  • Not a resume item: If you're just looking to get a single PR merged so you can add "contributed to Open Source" to your resume, please find an issue where I've already described what's needed (probably a bug). I'm happy to point you in the right direction and provide enough feedback to get your PR merged, but please don't expect more than that.
    • On the other hand, if you are a Red Moon user looking to fix or add something to scratch your own itch, or if you care about software freedom and are likely to become a long-term contributor to the F-Droid ecosystem, then I am especially interested in helping you; feel free to reach out for any reason, even if you are having trouble with the other things I've asked.

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

No branches or pull requests

2 participants