Well, I have promised to deliver an easy (or even a method at all) method of upgrading QuickBox. This has found itself swimming in a sea of numerous delays… even my very typing of this announcement produces yet more delay… but, it’s the community that divulges my ethic and transparency, hence this update.
There was going to be a sort of history chart put together wherein several commits and their histories would be compiled in accordance to the version a user was on, this did turn into an epic task that after 4 days of supporting QuickBox here in the forums, maintaining and doing maintenance to the forums (we have a lot of lurkers round here ), building in new features to QuickBox, general stability testing, RL job life and home life… I simply gave up on it. No, not on QuickBox! The update procedure I was going to use.
I found it to be incredibly bulky and just generally sloppy. Haphazardly following the ghost of commits past and marking them for archive. It looked like a half baked product and the last thing anyone wants is their product to be half-baked… not saying anything about the people themselves.
With that being said, all the work I was putting into the process pulled a tear from eye and kicked me in the feels a bit, but me wanting QuickBox to reign supreme at what it does, felt that dusting the shoulder off and starting once more from scratch on a more desirable and easier method.
I am happy to announce, that there is in fact, going to be a truly easy method of upgrading. This is going to take me a bit to really nail down, but it makes so much sense and it also adds a much easier availability (as per the code) for those that are wanting to contribute.
QuickBox Repo Structure
Granted, anyone with an established install may not like this news, but here it goes.
The Repo structure is going to change entirely. Obviously you will still find the Swizards/QuickBox Repo, but this will be used to address the functionality and the installation procedures of the script itself.
QuickBox will now be divided into it’s relevant parts that will add in making the update process a breeze… and I mean really simple. It will essentially clone certain parts of QuickBox into basic pieces on your server for ease of use.
Here are the Repos:
- quickbox_setup - this is the repo used for the initial setup of QuickBox on the users server. This can be installed by doing the following:
git clone https://github.com/QuickBox/quickbox_setup quickbox_setup
cd quickbox_setup
bash quickbox-setup
- quickbox_rutorrent - this is the repo used for ruTorrent. All ruTorrent relevant plugins and theme adjustments, fixes, additions and extra enhancements will be included here.
Much like the quickbox_setup repo, the script will be pulled via the following:
git clone https://github.com/QuickBox/quickbox_rutorrent quickbox_rutorrent
This is actually handled during the initial install with the quickbox_setup repo. The quickbox_rutorrent directory is then copied over to your /srv/ directory where it maintains it’s git-like qualities for easy updating later on.
- quickbox_dashboard - this is the repo used for the QuickBox UI. All QuickBox Dashboard relevant widgets and theme adjustments, fixes, additions, extra enhancements and future language files will be included here.
Much like the other repo, the script will be pulled via the following:
git clone https://github.com/QuickBox/quickbox_dashboard quickbox_dashboard
cd quickbox_dashboard
mkdir -p /srv/rutorrent/home
cp -r home/. /srv/rutorrent/home
Again, this is just an excerpt and this function is handled by the script. Just as with any of the other features, navigate to /srv/rutorrent/home
and run git pull
to push updates to your server.
-
quickbox_packages - this is the repo used for the installers and uninstallers. All needed files/commands for packages installers/removers as well as plugin installers/removers will be included here.
Much like the other repo, the script will be pulled via the following:
git clone https://github.com/QuickBox/quickbox_packages quickbox_packages
cd quickbox_packages
cp -r quickbox_packages/. /usr/local/bin/
Again, this is just an excerpt and this function is handled by the script. Just as with any of the other features, navigate to /usr/local/bin/quickbox
and run git pull
to push updates to your server.
-
club-Swizards - this is the custom ruTorrent theme created and designed by Swizards. Any adjustments you would like to push can be made here. Updating the template… again, as simple as
git pull
from within/srv/rutorrent/plugins/theme/themes/club-Swizards
. The theme is independent of the update for the rutorrent directory which handles plugins etc.
But how does this make updating easy?
I don’t want to have to request that anyone ever reinstall or reboot to solve a problem that, simply put, is not proper administration or good advice as in most instances… it rarely solves a problem. However, in this case it is such a necessity to reinstall and there really is no way around it (unless you’re server savvy then you can just pull the needed repos and move/remove files as needed ). I do however promise that this revision does usher in complete simplicity for the future. All updates will be simply handled via a git pull
management system.
Here’s an example:
Let’s say that @liara thinks the padding is off in a popup modal for the autodl plugin. Now, she can submit a pull request (or make the addition herself) and push it to the quickbox_rutorrent repo. Anyone curious about any changes can view the complete changelog via the commit history of the repo. Then, seeing these changes as something they want, they do the following:
cd /srv/rutorrent
git pull
It will now automagically update via the power of git. The output will show the following (or similar)
[root@quickbox]:(776.9kb)~# cd /srv/rutorrent
[root@quickbox]:(15.2kb)~/srv/rutorrent# git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 2), reused 3 (delta 2), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/QuickBox/quickbox_rutorrent
81021ae..38bbd0e master -> origin/master
Updating 81021ae..38bbd0e
Fast-forward
index.html | 72 ++++++++++++++++++++++++++++++++++++------------------------------------
1 file changed, 36 insertions(+), 36 deletions(-)
[root@quickbox]:(15.2kb)~/srv/rutorrent#
Just like that, you have updated to match all changes made on the master branch of a given repo. You can also check and update these as all repos are first pulled to your root directory and then moved from there.
This same approach will be used for the dashboard as well as the package installer/uninstallers currently located at /usr/local/bin
. This will ensure if any new features/packages are added in the future, or bugs are found in the present, they can be squashed, announced and a simple git pull in the proper directory will update with little to no hassle.
Moreover, one the biggest concerns has been doing updates without overwriting any changes users may have made to their dashboards. With this git pull method, we can rest assured knowing that the only files that receive changes are those that are included in the repo itself. Any files containing the network interface adjustments which are done on script install will be left alone and only changed, added or removed files will be updated.
I’ll share more as this continues to move forward. I am pushing to get this released within the next 3 days, therefore, before this weekend everyone has time (if willing and able to do a reinstall) to seed their current files to avoid H&R.
Please, feel free to share your thoughts. I know many of you will not like the approach of having to reinstall from scratch, however, this is a major version release that ensures the longevity and future capabilities and growth of the QuickBox Ecosystem.
Greetz!