Closed HosseyNJF closed 4 years ago
Hi!
@Jamie- please take a look
Also, this PR is pretty big, it makes it hard to review properly. Can you split it into separate PRs with clear goal description?
- This is a draft, are you working on something else in this PR?
I'm adding a multi-threaded system of sockets to be able to work with OpenVPN's events, because that's what I need in my VPN service, and I thought why not contribute to an already existing project :)
- Proposed changes touch pretty much every single area of code, so working on anything at all in parallel will be impossible due to conflicts.
- Interface of package has been changed, this could be problematic.
Of course, If this pull request (and next commits about the event system) is going to be merged, It's going to be a major version upgrade and backward compatibility is probably not a problem.
Also, this PR is pretty big, it makes it hard to review properly. Can you split it into separate PRs with clear goal description?
I think it's not possible because each commit of this PR depends directly on the previous one, They're not isolated or separate.
@Jamie- Actually I was inspired by Django to merge all models into one file, why that's not acceptable?
I don't know how I could split my already committed changes into multiple PRs, but yeah I also agree splitting would be better.
Also, I'm already developing the event system (in the events
branch in my fork) using the same socket
module and multiple threads. I would be happy If you take a look at it (actually I haven't pushed all of my changes; I will tomorrow).
I guess you could try to do interactive rebase to split commits that are too big, and then create branches with smaller changes.
I'll cherry pick commits from my master to multiple branches, and create PRs for each branch. You guys should ignore this PR and focus on the others.
I added some improvements to the code. The code was less or more like spaghetti code, So I splitted parts of the code to multiple classes, like Connection.
I also added a base model for all models (now and future), to easily be able to plug in new models.