jdel / sspks

A very simple Synology Package Server, reverse engineered from the official Synology package repository and SynoCommunity.
GNU General Public License v3.0
254 stars 64 forks source link

Complete rework of sspks #15

Closed mbirth closed 7 years ago

mbirth commented 8 years ago

In case you're interested, I did a complete rework of SSPkS. I merged a few contributions and rewrote everything into classes and namespaces, used Composer to gather external libraries and implemented Scrutinizer code quality testing.

After merging, you only have to change a few URLs back to your GitHub repo. (README file and HTML output)

jdel commented 8 years ago

Holy crap that looks like a lot of work ! I will have a look at merging as soon as possible. I will try to implement this on my VPS this week so I can make a SPK for it too. Thanks a lot to everyone who contributed to these changes !

mbirth commented 7 years ago

Any progress here?

jdel commented 7 years ago

Hi Markus, I had a look a while ago, and while I'd really like to merge this, fact is (as you have surely seen by looking at the original code), I am not a developer and your code is way harder to maintain for me.

I might merge it some day, if I have time to learn and understand all the changes you have made.

jdel commented 7 years ago

Hi Markus,

I added you as a collaborator on this repo, if you feel like merging your changes and help maintaining the new codebase.

J

mbirth commented 7 years ago

I feel honoured, thanks. Do you happen to know how users update their installations? Do they just do a pull or do they actually check the instructions for changes?

jdel commented 7 years ago

Hi Markus, I have no idea how many users are actually using sspks. In any case, they didn't have to update it much as I am not doing a good job maintaining it ! 😆

Initially, I was providing a synology package for it, but I haven't updated it in ages. It should be somewhere here https://github.com/jdel/syno-packages.

People using the synology package should ideally update via package manager. People hosting a syno repo on a non-syno hosting should do a git pull.

mbirth commented 7 years ago

@jdel So do you think we can get away with simply merging the rework and having the "git pull"-people to actually look into the install instructions for the additional steps to get their copy running?

schumi2004 commented 7 years ago

I installed this reworked version but every architecture I select returns a 500 error. Any ideas?

mbirth commented 7 years ago

@schumi2004: Could you check your Apache error log for the detailed error message? And did you download Composer and install the dependencies?

schumi2004 commented 7 years ago

@mbirth This is the error i'm getting after enabling display_errors for PHP

Fatal error: Uncaught Exception: Could not extract INFO from packages/oscam_alpine-6.01.20-r11297-1.spk! in /volume1/web/sspks/lib/SSpkS/Package/Package.php:188 Stack trace: #0 /volume1/web/sspks/lib/SSpkS/Package/Package.php(134): SSpkS\Package\Package->extractIfMissing('INFO', 'packages/oscam...') #1 /volume1/web/sspks/lib/SSpkS/Package/Package.php(61): SSpkS\Package\Package->collectMetadata() #2 /volume1/web/sspks/lib/SSpkS/Package/PackageFilter.php(81): SSpkS\Package\Package->__get('arch') #3 /volume1/web/sspks/lib/SSpkS/Package/PackageFilter.php(148): SSpkS\Package\PackageFilter->isMatchingArchitecture(Object(SSpkS\Package\Package)) #4 /volume1/web/sspks/index.php(110): SSpkS\Package\PackageFilter->getFilteredPackageList() #5 {main} thrown in /volume1/web/sspks/lib/SSpkS/Package/Package.php on line 188

/edit: I'm running DSM6 and when i followed INSTALL guide i was missing dir /var/www so picked /volume1/web/

mbirth commented 7 years ago

@schumi2004 Looks like there were some problems extracting the INFO file from the oscam_alpine-6.0_1.20-r11297-1.spk package. Could you remove this package from your package directory and try if the error persists (or occurs with other packages, too)? And do you have the "zip" extensions for PHP enabled?

schumi2004 commented 7 years ago

zip wasn't enabled at first but did it before i posted but then it still didn't worked. Meanwhile i updated to latest DSM6 hoping a reboot would resolve , it didn't. Removed package like you suggested and then, after adding it back, everything worked fine.

Thanks for helping out ;)

jdel commented 7 years ago

Thanks for the work you put in this Markus. I created a project board to try and keep things on track. Don't hesitate to create new cards and move them around: https://github.com/jdel/sspks/projects/1

I will be away for the week end, but I will keep an eye on this upon my return.

jdel commented 7 years ago

Just tought, can you create a new branch with your code ? It will be easier merging I think.

mbirth commented 7 years ago

@jdel I thought about that, too. But after playing it through, we would have to have (power-)users switch branches twice. Once to the "new" branch, and then, when we port everything back to "master", they'd have to switch again.

I think it's easier, to branch the current version into a "legacy" branch and add a note about it to the newer version. The idea is that when you forget to do the composer stuff after doing a "git pull", you'll at least get a notice about how to switch to the "legacy" branch or to look into the INSTALL.md instead of an error message.

jdel commented 7 years ago

I meant a branch called "rework" so we can already do the pull/merge request here without breaking anything. That will allow me to make modifications too. Once we get everything working, we will obviously merge it back to master. Technically speaking, I think this means making a branch "rework" on your repo, then do a pull request here with that branch.

After that we'll make a branch "develop" for future improvements that we will regularly merge back into master.

mbirth commented 7 years ago

Sounds good. With one little change: I'd suggest doing development in master and having a stable branch as explained here or here.

schumi2004 commented 7 years ago

@mbirth How do we upgrade using your version? (when you're already running it)

mbirth commented 7 years ago

@schumi2004

$ git pull
$ ./composer.phar install --no-dev

First, you pull the changes from the repository, the second command makes sure you get the correct dependencies. (Although it probably will work without the second line when the dependencies haven't changed.)

jdel commented 7 years ago

Markus, can you drop me an email with your email address so I can invite you to slack if I have questions when reviewing your code ?