Skip to content
This repository was archived by the owner on Apr 19, 2024. It is now read-only.
This repository was archived by the owner on Apr 19, 2024. It is now read-only.

Project status #278

@FauxFaux

Description

@FauxFaux

Hi everyone,

I don't know what to do about this project.

First, let's look at the problems, then some proposals.


PuTTYTray is stuck at its current version of a number of reasons:

  1. My use of Windows, and my motivation to maintain it, has dropped way off.

  2. A number of PuTTYTray features I've never used have a very high maintenance cost.

adb support, and supporting config in files, are a nightmare. I doubt they even work as they used to.

Both should be dropping out of popularity, but I guess that they are not:

  • Config files used to be a workaround for Windows having bad support for the registry as a limited user, and for carrying your config around on usb sticks. Both of these usecases have hopefully basically vanished, but instead we have people using Dropbox. Almost all bug reports are from people using Dropbox.
  • adb integration into the IDE has become a lot better since they switched to IntelliJ as a backend, but I get the impression that many people haven't switched.
  1. PuTTY upstream have fixed a number of my personal concerns.

I was always annoyed upstream didn't have signed binaries, and built PuTTY with a compiler from the 90s; that they didn't care about hardening or process-level security. All of these things have been fixed in the last year. They even moved to git!

  1. I changed the development style to assist contributions, but none ever came, and it has ruined everything.

Back when I was young and naive (around three years ago), I changed PuTTYTray from a continually rebased set of patches into a continually merged branch.

I thought this would encourage others to contribute to the project. It hasn't.

This, in general, just does not work for a project tracking upstream. Especially not where the upstream does not want to be tracked, as is the case with Putty: they make things very difficult.

This is something I have learned recently looking at how Debian works. This deserves a whole blog post.


Now, what can we do about this? Here are some options:

  1. Repair the history, and continue releasing.

I could revert PuTTYTray back to the original development methodology, by going through and separating out all the changes back into patches. This would make it possible to work out more precisely how much cost there is in maintaining the "files" and "adb" code, and how much other stuff is just broken waste.

I tried to do this, and ran out of motivation. This is what's currently sitting in the master branch.

It's unlikely to get finished, ever.

  1. Do a "limited release" with just the features that people in this ticket use, and then try and add others later.

This is less effort than the previous suggestion, as it doesn't involve deriving meaning from every line of code.

Currently, the feature list would be:

  • URL clicking
  • Embedded agent / keygen / etc.
  • Probably: compiler changes

And these would go. Things at the top are easier to keep, I guess:

  • Always on top
  • Window transparency
  • Tray icons and related functionality
  • adb support
  • files support
  • all the other crap that has built up over the years
  1. Someone else takes over the project.

If nobody cares about this ticket, or about my proposal above, then the project will remain dormant (unless I suddenly get the motivation to continue with "1", or the tooling / upstream improves to the point where it's easier).

It's happened before. It will happen again.


So.

  • Who would be happy with the "limited release"?
  • What other features would you want?
  • Or is it better just to leave it dead?

If you have a particularly compelling use for any of the features not in the "limited release", please let me know. We're definitely not at the point where new features are going to get added at request, so don't mention those.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions