DriveSoftwarePublisher | Software Publisher using Google Drive | Developement update #3
Repository:
https://github.com/adsau59/DriveSoftwarePublisher
Commit1
Commit2
Commit3
Commit4
Commit5
What is DriveSoftwarePublisher?
DriveSoftwarePublisher (DriveSP) is a software publishing software that uses Google Drive.
Ever wanted to send your software your client but you can't afford a to hire a server? with DriveSP you can use google drive to version your software.
Objectives
- Help programmers and software developers who have very low budget publish their software easily.
- Help open source developers to publish their software without any investment at all.
- Quick way to publish software.
Demo video
Release
You can download an alpha release from here, put the SP.exe inside environment variables file path for ease of use.
Installation Instruction
Windows:
- Extract
- Add the extracted binaries into environment path
Linux:
- Extract
- run,
gedit ~/.profile
- add this in the end of the file
export PATH=$PATH:<path_to_publisher>
- save and reboot
Technology Stack
DriveSP is made using
- C#, .NET Core
- Drive REST API
- Docopt (Command Line API)
- Newtonsoft Json (JSON framework for .NET)
New Features
Upgraded dotnet version to 2.1.5 (thread)
Why?
- Using dotnet v2.0 the program was not working properly in linux os, so the dotnet version was upgraded
How?
- Changed dotnet core version from 2.0 to 2.1 in all the .csproject files
Added os option in getupdater command
Why?
- As DriveSP now supports linux, a way to get updater link for different operating system was needed, so even if you are using DriveSP in windows you can actually get the link for the updater for linux
How?
- Added
(--win|--linux)
option in getupdater command in Publisher.- The option is passed into
Publisher.GetUpdate
method as a parameter which uses it to select the correct folder to copy the files from.
Added file name parsing using regex
Why?
- After adding support for multiple os, updater zip file had to be named differently.
- matching the updater file with simple == wasnt enough now as the strings got more complicated hence now regex is used instead.
How?
- In
DriveUtils.GetVersions
, now it uses regex instead of equating strings
Added support for large files
Why?
- when uploading large files, the program used to get crashed as it didn't support it.
- By adding multipart upload now large files can be uploaded.
How?
- Changed the
DriveUtils.UploadFileToCloud
method, to use multipart upload instead of simple upload.- Changed the
DriveUtils.DownloadFIle
method to use multipart download instead of simple download.
Added progression bar for feedback (thanks to DanielSWolf's ProgressionBar)
Why?
- Uploading and Downloading large files can take alot of time to complete.
- Which makes the program look unresponsive.
- Hence to fix it, an ascii progression bar was added during file upload and download.
How?
- Added ProgressionBar Script which takes in double and displays a progression bar
- During download and upload, an event is created which is called which updates the progression bar
Added feedback for Publisher getupdater
and Updater install
Why?
- Lack of feedback messages made the command feel unresponsive.
How?
- Wrote appropriate messages in console using
Console.WriteLine
Roadmap
Development plans of DriveSP can be viewed on the Trello Board.
Phase 1: (COMPLETED)
- Create DriveSP Prototype with basic Publisher and Updater commands
Phase 2: (COMPLETED)
- Port to .NET Core
- Add Features:
- pushnow commnd in Publisher, increase version and push with one command
- drop command in Publisher, delete a version from the drive
- showversions command, show versions on the drive
- target install version with either version code or version name
- checkupdate command, check if new version is available
Phase 3: (COMPLETED)
- Add Features:
- Multi OS Support (Linux and Windows)
- Support for large files
Phase 4:
- Error reporting system, report errors using google drive.
- Add Feature:
- Add ability for 3rd party application to check updated and perform update automatically.
How to contribute?
You can contribute this project by,
- Using the the software and creating issue when any bug is encountered.
- Helping me in the development by bug squashing or developing new features. (If you want to do this, contact me so that we can collaborate.)
- Let me know if you have any good feature ideas.
Before creating issues for bugs, or suggesting new feature ideas, check out the Trello Board if it is already been found/suggested.
Contact
If you have any problems or you want to contact me for feature ideas or want to collaborate in development you can contact me on DefineX Community discord server
Thank you for your contribution. It is nice to see continuous development since last time.
I would suggest you branch before you do the development and then create a PR and approve for it - it might seem bringing extra work but it is totally worth it - as you are grouping your commits in a PR and makes your master branch history much cleaner.
It is nice to see you start to use
var
but obviously there are inconsistency. And I would expect to see the unit tests as the project is growing....Overall, Nice work!
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]
Thanks for the review,
to create PR I would need to fork my own repo, but thats not possible
Thank you for your review, @justyy! Keep up the good work!
Congratulations @adam-saudagar! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Hi @adam-saudagar!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server