Crell,
@Crell@phpc.social avatar

Please, web app developers, consider how your users will upgrade. If your upgrade process is "remove the old one, unzip the new one", then it's not an upgrade process. It's an encouragement to never upgrade.

bobmagicii,
@bobmagicii@phpc.social avatar

@Crell remove the old one?!?!?!? i shout yolo unzip that shi on top boiiiiiiiiiiiiii 🤣 🤣 🤣 🤣

acelaya, (edited )
@acelaya@mastodon.social avatar

@Crell Do you have some recommendation on how to address that on a self-hosted app?

I maintain one which suffers from this and I would like to eventually address it, but I have never found an approach where there's no risk of breaking things without an easy way to roll back.

I provide a CLI tool which helps, but still requires you to manually "download and unzip".

Crell,
@Crell@phpc.social avatar

@acelaya I don't have a very easy solution. I've seen "checkout from Git and change your tag", "Composer update," and self-modifying updaters (eg, Nextcloud, or the Platform.sh CLI app).

I think an update CLI command is probably the best option for non-cloud envs. In concept it could make its own backups and do the download for you from GitHub, using the API. Though that is admittedly more work.

acelaya,
@acelaya@mastodon.social avatar

@Crell Thanks for the suggestions!

Crell,
@Crell@phpc.social avatar

@acelaya Another option I've attempted myself is to put virtually all the code into dependent Composer packages. If there's nothing not-in-composer to update, then a composer-update will do everything.

That helps, I think, but sadly does have an upper bound on what you can move out of the main app. And requires someone have composer installed.

qrazi,
@qrazi@phpc.social avatar

@Crell @acelaya I've used Ansistrano - https://ansistrano.com/ - for a few projects, that run on small vps', to automate steps I used to do manually. Not sure if applicable to this question though 😅

velkuns,
@velkuns@phpc.social avatar

@Crell @acelaya I created a deployer component.

I can integrate it in my app to deploy it in production.
I need to have a git repo on the server (mainly for private repo). And it configurable with y'all config.

But with a cli command, the component will:

  • creates an export of given tag
  • extracts it in some place
  • runs composer install
  • can run some other commands
  • copies secret files into app dir
  • create a symlink (for apache)

In case of problem, I redo a symlink on previous version

sarah,
@sarah@phpc.social avatar

@Crell I’d love to understand the context here…

Crell,
@Crell@phpc.social avatar

@sarah Trying to upgrade Koel (Laravel-based self-hosted music streamer, pretty nice), and... there's a reason I haven't bothered to upgrade in a while.

sarah,
@sarah@phpc.social avatar

@Crell ahh.

ralphschindler,
@ralphschindler@phpc.social avatar

@Crell that sounds like a Koel problem and less of a Laravel or php/composer ecosystem problem

Crell,
@Crell@phpc.social avatar

@ralphschindler I don't believe I said otherwise. (I've had similar issues with many other web apps. This is just the current one I'm fighting with.)

ralphschindler,
@ralphschindler@phpc.social avatar

@Crell I was going off the tags in the post, but- does Koel take PRs?

Crell,
@Crell@phpc.social avatar

@ralphschindler Probably? That's a larger lift than I have time for right now. I just want to upgrade my app and figure out why the search function doesn't work.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • php
  • ngwrru68w68
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • megavids
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • provamag3
  • JUstTest
  • All magazines