Add new contributor
hsoft opened this issue ยท 56 comments
dupeGuru has currently only one maintainer, me. This is a dangerous situation that needs to be
corrected.
The goal is to eventually have another active maintainer, but before we can get there, the project
needs more contributors. It is very much lacking on that side right now.
Whatever your skills, if you are remotely interestested in being a contributor, I'm interested in
mentoring you. I've been saying so in the Contribute page for a while, but now I'm thinking it might be a better idea to adverstise the need for contributors in a ticket. This way, it's clear whether someone has answered the call or not.
So, if you would like to start contributing to dupeGuru but would like some guidance/mentorship, simply add a comment here, we'll get started.
I'd be interested, especially in building out a web UI for the dupeGuru backend.
Awesome! Is there any way I can help? Is the developer documentation good enough to get you started?
What we can do is that I'll try to hang on #dupeguru on freenode as much as possible and when we happen to be there at the same time, we can discuss our plans further.
I'll need to spend a couple of weeks to get used to the codebase. I'll be available on the weekend to hang out on IRC. Feel free to email me with any specific details about the codebase.
There it is. Cool tool. I will be cloning and trying to compile for mac. Python is not the issue, Cocoa is :) But mac would be my focus. I'd be happy to improve usability there.
maybe it makes sense to abstract dupeguru's logic to a cli tool that can be used with a web frontend?
@patrickatamaniuk great! let me know if anything blocks you.
@imsky a web interface could be implemented independently from a CLI, but yeah, a CLI would be cool. See #288 reference.
I'd also enjoy this, Your software is exactly what I've been looking for, and have some ideas for it. But first, I should learn. I'm an old woman, and I used to (still do, but old) degree in CS.
@eossipov good, let me know if you're stuck. If you're unfamiliar with Python, dupeGuru might be a big step though, but there's plenty of Python tutorials around. You should be able to manage.
I have some programming knowledge, from Fortran 3 in high school (yeah, I'm that old :) ), through to some C/C+ and basic, and even Python, I even discovered I like PERL (scary). So, I am looking at this like a beta tester.
Scenario: I have three external drives from my father, Before he died he had almost full blown Alzheimer's. He made copies of copies, copies of resized pics, and so on. The first drive I am working on is a little over 400 gig, about 180k image files scattered across 4000 directories.
First run ... about 60k files. It took 4 hours, maybe a bit more. It found something in the range of 42K dupe files. Yeah, that's how bad things are on these drives.
So far, I have one request.
A pause/resume button ...l that would be handy as it would help free up the computer so I can do other things without the CPU (or HD) trying to accommodate more than one CPU or HD intensive applications.
This is not so much a request as me just wondering how feasible it would be ... there are a variety of picture viewer applications, I use the one that comes with Windows (10). Is there any way of feed these apps the image file location(s) so one could preview the dupes visually, quickly, and easily. Though I have to wonder how that would work in a situation like mine.
Just some thoughts from this first batch.
Thanks
@InQuistve if you're interested in working on incremental scanning (pause button), you might want to look at #241. There's also @patrickatamaniuk who's interested in this.
If you need help setting up your dev environment, poke me!
I might be interested in the new year. Really busy with father-in-law in hospital with broken hip. But I am impressed with the product so far. I have a quad core, so impact is not that bad all things considered. And as you can tell by the numbers, I still have a lot of dupe searching left :)
@hsoft i pushed feature/incremental to my fork - if you take a look at this whenever you get time, it works for me so far (build on cocoa, pe only, qt should work, but is not tested). It is not production-ready, though. I'd appreciate your comments or questions.
@InQuistve in #241 i am describing a workaround to the pause button, it might help you. Dont hesitate to contact me. One issue though - i do not have windows and propably never ever will :(
@patrickatamaniuk it's looking good! There will be some cleanup and line-by-line review involved before merging, but I like what I see so far. That incremental scanning thing will be an interesting addition to dupeGuru.
The only thing that bothers me is that there's multiple issues being fixed in the same branch (incremental, "borg" optimisation, pre-optimize chunks). I'd appreciate if they were on separate branches and had separate tickets.
We'll also need a new ticket for the incremental scanning because it turns out to be quite a different feature than what is described in #241. We'll then use this ticket for more thorough comments/questions. Sounds good?
sounds good! The new ticket would help to discuss the architecture -
currently i am coding without the big picture :)
i'd rather not merge too early - the code is meant as a technology
preview. The borg gives speed but costs memory, and might cause troubles
there. This feature should have a setting to be turned off or to trade
speed for memory. I am not sure what would be the best way to avoid memory
issues, yet.
I put all those changes in one branch because they seem to be
interdependent (from my perspective), but i can try to separate them in a
sensible way.
On Mon, Jan 4, 2016 at 4:52 AM, Virgil Dupras notifications@github.com
wrote:
@patrickatamaniuk https://github.com/patrickatamaniuk it's looking
good! There will be some cleanup and line-by-line review involved before
merging, but I like what I see so far. That incremental scanning thing will
be an interesting addition to dupeGuru.The only thing that bothers me is that there's multiple issues being fixed
in the same branch (incremental, "borg" optimisation, pre-optimize chunks).
I'd appreciate if they were on separate branches and had separate tickets.We'll also need a new ticket for the incremental scanning because it turns
out to be quite a different feature than what is described in #241
#241. We'll then use this
ticket for more thorough comments/questions. Sounds good?โ
Reply to this email directly or view it on GitHub
#300 (comment).
Howdy! Are you still looking for a hand with the awesome line of DupeGuru software? I've been growing a lot as a developer lately and, I think it'd be cool to be apart of the team.
I'm still learning to master Github but, my work with Intel's Android Hub has taught me the gist of git fetch, pull, push, clone, merge and more. Basically, i know enough about that to get the articles I write for Intel pulled and uploaded ahead of schedule. Right now, I'm writing a series of articles/tutorials for them on using ADB or the Android Debugging Bridge.
I'm really big on Android right now but, at home I run a Mac, a Windows PC and a Linux PC... No dual booting! They all run right next to each other. It's pretty cool when I get 'Synergy' working on all 3. Then, I only need one mouse and keyboard for all of them!
I also have 9 (or is 10?) apps published in the Google Play Store but, to be honest, I have more fun helping people accomplish the more advanced parts of whatever app they're building or whatever they get stuck on. I'm not sure why I'm not more focused on building my own apps. I guess collaborating and brainstorming with someone is just more fun! It's like 2 people working together can actually have 3-4 times the ideas and production of a person who is working by themselves.
So yup...
Been using Windows for years....
Love working with Linux....
Built my Hackintosh to learn about Mac OSX.... but.... deep down, to me, it's basically a linux machine that's been over engineered and made to be confusing at the same time.... All this time I thought Windows had the sloppiest filing system but, I don't think that anymore! Don't get me wrong... I like all 3 but, if I was on a deserted island... I'd have to go with Linux... I think it would be the most useful OS in a survival situation... assuming I found a rock to plug it into... 8^)
Geez...
I'm rambling on aren't I?
Ugh...
I did mention I was a writer right?
Once I get started... lol
Anyhow, give me a buzz if you're still looking! I'm always happy to help.
I'm off for a bit of cloning and a chance to check out the code!
Cheers!
Eric
erdapa1@gmail.com
Hi @lifeluvr. Sure, welcome aboard! The biggest challenge is to find something you'd like to work on. There are a couple of issues marked as "mentored" which can be good starting points, but really, anything that motivates you is fine.
Normally, the documentation should be enough to set up your dev environment. Let me know if you're stuck.
I would be interested in trying to build an Windows version using MSys2 environment.
MSys2 is like CygWin.
Tim S.
I failed to build using the MSys2's mingw-w64-python3 64 bit package.
I am now going to try using MSys2's python3 package (This is more like Cygwin's package).
I had issues installing pip in pyvenv; seemed to NOT be the way to continue.
The MSys2's python3 package is a more native python3; so, it should be more likely to work.
If that fails, I plan to try using directions for normal windows python3.5.
Tim S.
I have successfully built and run on Windows:
And here is the test result:
https://gist.github.com/eight04/0ee0111925335c60ad360eea17019ed1
But how do I create Windows release? It seems that package.py
is written for Linux and OS X.
@eight04 yeah, I removed it recently because the solution was based on an old and proprietary software, "Advanced Installer". If you happen to have a license to this software, you can always dig in recent commits to bring it back, but I doubt that this is the case. Windows packaging has to be rebuilt from scratch using open source solutions.
I am interested in contributing also.
I have experience in using Delphi, C and for avr microcontrollers: avr-gcc, and assembly.
I am new to python but until now it seems quite straightforward.
I use git.
@eight04 I cannot get the icons working either on windows 10 or 8. Did you do something special?
I will try to build on ubuntu, too.
@hsoft, do you have some priorities concerning the issues to be solved? Should I make a "git push" if I fix something? Concerning windows packaging, NSIS ( https://sourceforge.net/projects/nsis/ ) is ok with you?
@1kakarot No. Here is my set-up:
- Windows 7
- Python 3.5
- Visual C++ 14.0 Compiler. https://wiki.python.org/moin/WindowsCompilers
- PyQt5. https://riverbankcomputing.com/software/pyqt/download5
@eight04
Thank you very much. After installing PyQt5 everything is ok. I thought it was only needed as python package.
My setup is almost as yours:
-
Windows 8 and 10 64-bit
-
Python 3.5.2
-
Visual studio community edition
-
PyQt5. https://riverbankcomputing.com/software/pyqt/download5 as you suggested.
Now let`s code and see...
PS: Ubuntu was also tricky, concerning the environment and pyqt5 package. bootstrap stopped on pyqt5. I installed pip3, Qt Creator, I upgraded from 15.04 to 16.04, in order to get the latest PyQt, I installed the requirements without making a pyvenv and it compiled. python3 run.py
and it ran smoothly with icons and everything.
I'm trying to build dupeGuru (master branch) under Windows, but I have no experience to make "git submodule" work. Below folders are empty
- qtlib
- hscommon
- cocoalib
Sorry for git or github problem rather than dupeGuru itself, but @1kakarot or @eight04 might have quick answer to make that work under Windows.
updated: => solved with quick answer as below
from git bash in the dupeguru folder do
git submodule init
git submodule update
Then please read (or it should be done first)
https://git-scm.com/book/en/v2/Git-Tools-Submodules
In case someone needs that, below is my successful build steps in Windows:
Environment
- Windows 10
- Visual studio 2015 community edition, already with C++
Start from here
- Python 3.5.2.exe - install under c:\python35
pip3 install pyqt5
- git clone
git@github.com:hsoft/dupeguru.git
with tortoisegit GUI - from git bash in the dupeguru folder
git submodule init
git submodule update
pip install -r requirements.txt
build.py
run.py
My interests (with priority) would be
- "fuzzy matching" for multiple file/folder attributes, as in #223
- tweak or add different UI theme
- "fuzzy matching" on audio and image files, as in #273
And today is my 3rd day for coding Python.
Hi @hsoft I'd quite like to help. I'm decent with Python, maybe you have a small to-do I could take on for starters?
@SomeGuy54321 great! There's the "mentored" label that is supposed to be for good starter issues. I don't update it often, but there's a couple of them already. I suggest you start by looking at those.
I have been learning python, and I am starting on pyqt. I just needed a duplicate file finder and learned that you need windows support. I cannot be too much use, but perhaps I can take a look and learn more about how to use qt at the same time.
Thanks for you offer @marsfan, you might want to look at @thekhalifa's branch, he started working on an NSIS setup. However, his work stalled lately, I don't know why.
I've been browsing the code and your excellent flow description on the website. I have a fair background with Python, Perl, CGI, user documentation, and related technologies. I'ld like to at least contribute, will take a better look at an issue or two and send a PR. I'm primarily linux based, however am quite familiar with Windows 10 in this context.
@stephenbhope great! let me know if you're stuck somewhere, I can probably help.
I've been working on some snap packaging for another project and would like to create a snap for dupeguru. It builds the snap directly from the git release. When I've got it fully prepared I'll post the link for approval before publishing it. If anyone isn't familiar with snaps: https://insights.ubuntu.com/2016/06/14/universal-snap-packages-launch-on-multiple-linux-distros/
@stephenbhope This would be really nice! It would allow users outside of Ubuntu and Gentoo to run dupeGuru without having to build from source.
I unfortunately don't have a 256px version of that icon. Back in the days when it was done, we didn't need that kind of resolution and the person who created it has lost the original file.
I don't have a Ubuntu one account so I can't really see what's in that link, but I'm confused nevertheless. Isn't it possible to build snap packages without a third party service? I thought that you would produce packaging code that would allow us to do something like make snap
and end up with a dupeGuru snap package.
Sounds good. You can use hsoft@hardcoded.net. I'll register an account with Ubuntu One later.
I've merged @thekhalifa's work and dupeGuru 4.0.3 to release a dupeGuru Portable over ->here. The source is available ->here.
@stephenbhope I finally found the time to go look at the snap package page and I must be blind or something, I can't see how the snap is built. According to https://snapcraft.io/ , there's some kind of meta snap.yaml
file that needs to be present of snapcraft to be able to build. Where's that file? Did you commit it?
Hi @hsoft. Thanks for dupeguru. I'm interested in contributing.
The languages I'm familiar with, in order of decreasing familiarity/ability, are JavaScript, Java, Python, C. I've never had a dev job (though I'm working on that), but I'm comfortable with version control and git. I'm most interested in contributing in C, though I'm more or less a total beginner.
How can I help?
@smk291 welcome aboard! I unfortunately don't have a definite direction for you. The biggest needs right now are more on the side of MacOS/Windows maintenance than development itself. I myself don't use dupeGuru much (or at all), so I don't really know what should be developed. I guess it depends on your own inclinations.
If C development is what you want to do, you don't have much of a choice: only the picture matching algorithm is in C (see https://github.com/hsoft/dupeguru/tree/master/core/pe/modules ). The picture matching feature of dupeGuru could gain a lot of speed by converting a bigger chunk of the algo ( https://github.com/hsoft/dupeguru/blob/master/core/pe/matchblock.py ) to C. That might be a task that you find interesting and a lot of users would benefit from that work.
HI all, been quite busy recently with testing for Zesty, and a new Machine Learning / AI standard environment, I've put the snap ON HOLD for now, as I'm kinda in a first past the post license race. I am available to lend a hand on general Python and packaging stuff, @me :)
@hsoft Would be happy to help out the project if you're still in need. I saw that you mentioned needing a Mac developer, I can help out in that area.
Yes, and I've recently extracted the Cocoa UI from the main repo into https://github.com/hsoft/dupeguru-cocoa , making it easier to give it out to someone else.
@hsoft I have been working on getting windows builds working and have been successful with 32 and 64 bit builds on Windows 10 64 bit. I have been using python 3.5.3. I have a mostly working NSIS script as well at this point, which I am working to polish off and integrate it with the packaging. To get builds to work for windows there were some changes needed in the Makefile. For windows do we want to use the Makefile or have a bat script instead?
@arsenetar good! I don't see your makefile in your fork, so I'm guessing you haven't pushed it yet. Unless it significantly increases makefile's complexity, I don't see a problem with integrating windows support directly in it. If it does, maybe we can create a separate nmake
-specific makefile alongside the first one?
@hsoft I went ahead and committed the changes for the makefile in 3a2f865. Mainly just some differences between the virtualenv paths and shared objects. Windows is also going to need cx_freeze as a packaging requirement, do we want to make a requirements-extra-windows.txt or similar or just roll into requirements-extra.txt? If we move over to an nmake build then that will remove the need for msys and the changes to this file.
The windows-specific requirements file used to be called requirements-windows.txt
IIRC. That makefile looks fine to me, no need to have a separate one. nice!
I'd like to contribute to this project. I'm a web developer and I have some knowledge in python
@d3vCr0w thanks for your offer. As I said to the other offers here, let me know if you have problems building dupeGuru. As for finding something to do, it depends on your interests. There's many open issues.
I'd like to contribute.
Started as a developer (Assembler, FORTRAN, COBOL, Ada, C/C++, ...) I went through quality assurance and project management. Also did system/network admin/management deep in the AIX/HP-UX bowels of some WAN.
Will take me some time to get adjusted to develop in Python and for Linux and to re-adjust to an English writing environment :-)