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

Add new contributor #300

Closed
ghost opened this issue Apr 12, 2015 · 56 comments
Closed

Add new contributor #300

ghost opened this issue Apr 12, 2015 · 56 comments
Labels
beginner Less complex issues for users who want to start contributing. bug Bug reports.

Comments

@ghost
Copy link

ghost commented Apr 12, 2015

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.

@ghost ghost added the bug Bug reports. label Apr 12, 2015
@imsky
Copy link

imsky commented Apr 16, 2015

I'd be interested, especially in building out a web UI for the dupeGuru backend.

@ghost
Copy link
Author

ghost commented Apr 16, 2015

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.

@imsky
Copy link

imsky commented Apr 17, 2015

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.

@ghost ghost added beginner Less complex issues for users who want to start contributing. ready labels Jul 3, 2015
@patrickatamaniuk
Copy link
Contributor

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.

@imsky
Copy link

imsky commented Dec 7, 2015

maybe it makes sense to abstract dupeguru's logic to a cli tool that can be used with a web frontend?

@ghost
Copy link
Author

ghost commented Dec 7, 2015

@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.

@imsky
Copy link

imsky commented Dec 8, 2015

@hsoft text is the ultimate interface 📖

@eossipov
Copy link

eossipov commented Dec 9, 2015

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.

@ghost
Copy link
Author

ghost commented Dec 9, 2015

@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.

@InQuistve
Copy link

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

@ghost
Copy link
Author

ghost commented Dec 16, 2015

@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!

@InQuistve
Copy link

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 :)

@patrickatamaniuk
Copy link
Contributor

@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.

@patrickatamaniuk
Copy link
Contributor

@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 :(

@ghost
Copy link
Author

ghost commented Jan 4, 2016

@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?

@patrickatamaniuk
Copy link
Contributor

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).


atamaniuk@frobs.net
http://dixie.foo42.de/

@lifeluvr
Copy link

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

@ghost
Copy link
Author

ghost commented Feb 19, 2016

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.

@stahta01
Copy link

stahta01 commented Jun 9, 2016

I would be interested in trying to build an Windows version using MSys2 environment.
MSys2 is like CygWin.

Tim S.

@ghost
Copy link
Author

ghost commented Jun 9, 2016

@stahta01 great! let us know how it goes.

@stahta01
Copy link

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.

@eight04
Copy link

eight04 commented Jul 7, 2016

I have successfully built and run on Windows:
screenshot

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.

@ghost
Copy link
Author

ghost commented Jul 7, 2016

@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.

@1kakarot
Copy link
Contributor

1kakarot commented Jul 15, 2016

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?

@eight04
Copy link

eight04 commented Jul 15, 2016

@1kakarot No. Here is my set-up:

  1. Windows 7
  2. Python 3.5
  3. Visual C++ 14.0 Compiler. https://wiki.python.org/moin/WindowsCompilers
  4. PyQt5. https://riverbankcomputing.com/software/pyqt/download5

@1kakarot
Copy link
Contributor

@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:

  1. Windows 8 and 10 64-bit
    
  2. Python 3.5.2
    
  3. Visual studio community edition
    
  4. 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.

@Eucaly
Copy link

Eucaly commented Jul 26, 2016

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

  1. "fuzzy matching" for multiple file/folder attributes, as in Scan folders by name #223
  2. tweak or add different UI theme
  3. "fuzzy matching" on audio and image files, as in decrease comparision complexity N^2 -> N*logN #273

And today is my 3rd day for coding Python.

@armarti
Copy link

armarti commented Sep 7, 2016

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?

@ghost
Copy link
Author

ghost commented Sep 7, 2016

@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.

@ghost ghost mentioned this issue Sep 11, 2016
@marsfan
Copy link

marsfan commented Jan 8, 2017

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.

@ghost
Copy link
Author

ghost commented Jan 9, 2017

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.

@ghost
Copy link

ghost commented Feb 22, 2017

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.

@ghost
Copy link
Author

ghost commented Feb 23, 2017

@stephenbhope great! let me know if you're stuck somewhere, I can probably help.

@ghost
Copy link

ghost commented Mar 24, 2017

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/

@ghost
Copy link
Author

ghost commented Mar 24, 2017

@stephenbhope This would be really nice! It would allow users outside of Ubuntu and Gentoo to run dupeGuru without having to build from source.

@ghost
Copy link

ghost commented Mar 24, 2017 via email

@ghost
Copy link
Author

ghost commented Mar 24, 2017

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.

@ghost
Copy link

ghost commented Mar 24, 2017 via email

@ghost
Copy link
Author

ghost commented Mar 24, 2017

Sounds good. You can use hsoft@hardcoded.net. I'll register an account with Ubuntu One later.

@2wayne
Copy link

2wayne commented Mar 28, 2017

I've merged @thekhalifa's work and dupeGuru 4.0.3 to release a dupeGuru Portable over ->here. The source is available ->here.

@ghost
Copy link
Author

ghost commented Apr 2, 2017

@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?

@smk291
Copy link

smk291 commented Apr 22, 2017

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?

@ghost
Copy link
Author

ghost commented Apr 23, 2017

@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.

@ghost
Copy link

ghost commented Apr 23, 2017

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 :)

@ChristianBagley
Copy link

@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.

@ghost
Copy link
Author

ghost commented Jul 17, 2017

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.

@arsenetar
Copy link
Owner

@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?

@ghost
Copy link
Author

ghost commented Jul 24, 2017

@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?

@arsenetar
Copy link
Owner

@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.

@ghost
Copy link
Author

ghost commented Jul 24, 2017

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!

ghost pushed a commit that referenced this issue Aug 28, 2017
* Update run.py & .gitignore for windows

- Update run.py to execute on windows as SIGQUIT is not available.
- Update .gitignore to ignore the generate .pyd files
Ref #300, #393

* Update package.py for windows

Add package_windows back into package.py
- Using cx_freeze for freezing installation
- Will be using nsis for actual installer
Tested with python 3.5 64bit on windows 10
Ref #393

* Update makefile for windows (+2 misc)

- Update the makefile to support windows
- Use different bin path in virtualenv
- Use pyd instead of so files
- Tested with Msys2
- Add *.exe to .gitignore
- Fix minor format error in package.py
Ref #393

* Add requirements-windows

Add the requirements-windows.txt
- contains cx-Freeze for bundling
Ref #393

* Add initial setup.nsi

Initial Version of a NSIS installer script
- Multi-user install (install for just one or all)
- Registers uninstaller (more values need to finish up)
- Tested both single and all install / uninstall and works
- Still need to add parameters instead of hardcoded values in some spots
- Need to clean up vendor folders / keys if empty on uninstall
- Need to add the other dupeGuru languages to the language list
- Minor cleanup of script needed as well
Ref #393

* Update setup.nsi

Updates to setup.nsi including:
- Defines from CLI
- Version information (MAJOR, MINOR, PATCH)
- Bits (64 / 32)
- SourcePath (if we wanted something other than build)
- Added extra defines to move application specifics to one location
- Added extra defines for uninstall information
- Added calculation of install size
- Added switching between 64 and 32 bit contexts (need to verify
functionality)
- Updated output file naming
- Added NSIS supported languages which are also supported by dupeGuru
- Added rest of registry keys for uninstall information
- Added missing registry key for installType
- Added removeing Vendor folder and registry key if empty on uninstall

Should be very close to having this installer script ready to integrate
into the package.py script if desired.
Ref #393

* Update README & requirements-windows

Minor update to README to indicate windows is supported.  Add PyQt5 to
requirements-windows.txt to make installation easier.

* Update packaging for windows

- Update package.py to integrate NSIS for windows
- Update makefile to deal with a few additional windows issues
- Add Windows.md to contain specific windows instructions, if we want
this can be merged with README.md
- Minor formatting update to setup.nsi
Ref #393

* Update README & Windows Instructions

- Update the README to include a reference to the Windows instructions.
-  Add some additional notes into Windows Instructions and remove one
incorrect command.
- Update .gitignore to ignore all permutations of env* to allow for
multiple side by side virtual environments (used to build different
versions for windows)
Ref:  #393

* Update Window.md

Fix broken python link and move nsis link for consistency.

* More Details in Windows.md

Update Windows.md including:
- Information on compilier requirements for windows
- Notes about the windows 10 sdk
- Some clarification around some of the steps
- Addition of msys2 links

Going to review this a bit more to polish it up.

Ref #393.
@d3vCr0w
Copy link

d3vCr0w commented Aug 31, 2017

I'd like to contribute to this project. I'm a web developer and I have some knowledge in python

@ghost
Copy link
Author

ghost commented Aug 31, 2017

@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.

@OderDochNicht
Copy link

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 :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beginner Less complex issues for users who want to start contributing. bug Bug reports.
Projects
None yet
Development

No branches or pull requests