dustinrue / ControlPlane

ControlPlane - context-sensitive computing for OS X
http://www.controlplaneapp.com
BSD 3-Clause "New" or "Revised" License
1.76k stars 181 forks source link

Unofficial forward message: Looking for contributors #501

Open andradei opened 6 years ago

andradei commented 6 years ago

The author has written a post in 2017 stating he needs help to keep this project going.

https://www.controlplaneapp.com/2017/11/the-state-of-controlplane/

I don't know Objective-C well enough to help, but wanted to put the link here (no one asked me to) since this project is great but is breaking more and more with every macOS release.

metbril commented 6 years ago

I noticed that @pbmacdev has created a Mojave branch in a fork

Perhaps these commits can be pulled into the main repo? Perhaps he even wants to become an official contributor @dustinrue?

https://github.com/PBMacDev/ControlPlane/tree/mojave

dustinrue commented 6 years ago

@pbmacdev is welcome to fork it and “take ownership” that way (which appears to be their intention) or submit pull requests back to this project. Either solution is fine with me.

PBMacDev commented 6 years ago

My fork was not intended to be merged back to main repository. The app I am building is Mojave only, 64bit only, non-deprecated API only, etc. The changes I have made so far are sometimes dramatic, mostly sporadic, and all are not not well debugged. If added to the main brunch my changes will affect a lot of users who sit on older systems and who rely on original functionality.

dustinrue commented 6 years ago

I think that is perfectly fine to just say this version is for a certain release and newer. I know that it is very difficult to make CP work right across different versions of macOS for various reasons. Not the least of which is that it tries to use so many private apis that change a lot.

If you want to cut a totally new fork and maintain it let me know and I can put up an announcement on my site pointing at your work. Also let me know when you have something to test so I can give it a try

ssbarnea commented 5 years ago

I love ControlPlane and I hope the project will survive its curent impass.

Regarding supporting various MacOS versions I would vote for adopting some drastic measures: drop support for older MacOS versions as soon they reach gold master. When this happens branch master to a maintenance branch and allow whoever wants to maintain it.

Master should support only last MacOS release as this would ease testing and allow to cleanup the code,...refactoring...

If you want to keep using older MacOS versions, you can but you will have to maintain these branches yourself (or find someone to do it for you).

PS. Please do everything possible to avoid forking the project as this would divide the already scarce number of contributors. Forking makes sense in some (exceptional) cases but workinn togheter is much better, for everyone.

dustinrue commented 5 years ago

What I've done in the past is simply leave behind old versions when it makes sense. I always wanted to be able to provide releases that supported as many version of macOS as possible. Today though a person could sit down and really figure out what versions of macOS need to be support, what is in use and so on and just cut old release (as you're suggesting) for them and say version x.x.x is the last version to support Sierra, for example.

As I said, I'd really like to see CP rebuilt using Swift, tap into as many available APIs as possible even if that means losing a lot of features that older CP has. If there is movement on this project I'll gladly setup the build/ci tools and sign the app if required. Signing requires a paid Apple dev account and I allowed that to expire a long time ago.

sebastienkb commented 5 years ago

Hello @dustinrue

From what I see you want Swift conversion and updated APIs (aka no warnings on build). Apart from those do you have a specific list of features? I'd be interested at having a look (but slowly - I don't have much free time in the afternoon :) )

dustinrue commented 5 years ago

@sebastienkb,

Yes, basically converting it to Swift. I think the idea would be for there be a basic framework, a decision engine if you will, that makes up the core of ControlPlane. This core would be able to interact with the system directly, privilege escalation and all that, and then there would be modules or plugins for any evidence sources and actions. These modules should be able to interact with the ControlPlane core via an API I would think so that modules/plugins could be in any language.