szabesz

Changelog support in ProcessWireUpgrade module

Recommended Posts

As fas as I know, currently there is no way for a module developer to include a changelog in a way that enables us to check out the changes in the admin before upgrading.

  • Like 13

Share this post


Link to post
Share on other sites

I would also love to see this - I think it would be great if we could define it in a Github repo changelog.md file and have the automatically imported into the text in the modules directory, and perhaps even displayed in the module info within a PW install. Perhaps it would even be nice to have a way to add a flag about breaking changes that would show up in the ProcessWire Upgrades module so you are warned before upgrading.

@ryan - any thoughts on this? I'd be happy to work on it - obviously I could do the PW side of it from the repo, but would need access to the php files for the modules directory to make that side of things work.

  • Like 12

Share this post


Link to post
Share on other sites

is there any progress on having Changelogs for an update, so we can know if some updates are worth updating to. 

  • Like 1

Share this post


Link to post
Share on other sites
On 3/1/2017 at 11:52 PM, adrian said:

I would also love to see this - I think it would be great if we could define it in a Github repo changelog.md file and have the automatically imported into the text in the modules directory, and perhaps even displayed in the module info within a PW install. Perhaps it would even be nice to have a way to add a flag about breaking changes that would show up in the ProcessWire Upgrades module so you are warned before upgrading.

@ryan - any thoughts on this? I'd be happy to work on it - obviously I could do the PW side of it from the repo, but would need access to the php files for the modules directory to make that side of things work.

I thought of a concept and it doesn't have to be as complex infact here's my proposition

There should be a changelog.md and also another changelog.json which contains each version and the text serving as the changes, however this might hard to implement as it means enforcing everyone to do this, another better alternative could be a changelog.md with a specific format to follow, so that a Parser can be read to extract the needed information, it is vital a changelog is seen before uploading to inform user about what has changed and what to expect. 

  • Like 3

Share this post


Link to post
Share on other sites

Jump jumping in to support this idea. I can't like it twice ^_^

  • Like 2

Share this post


Link to post
Share on other sites

Can't we use upgrade() function inside modules to achieve this? It's not as eloquent as having the changelog available before downloading new version, but developers can use it to display certain info, and request confirmation during/abort if possible. Something like this:

<?php namespace ProcessWire;

class MyModule extends Module
{
  	// ...
  	// (module implementation)
  	// ...
    public function upgrade($from, $to) {
        // TODO: remove after v2.0
        // upgrading to v2.0, show warning about breaking changes
        if(strpos($from, '1.') === 0 && strpos($to, '2.') === 0) {
            $this->warning("New version includes <strong>breaking</strong> changes. See module info page for details.", Notice::allowMarkup);
            // create some info page, display compiled output of README.md
            // not sure how to display info on Process pages
          
            if (!$accepted) {
                throw new WireException('Cannot install without confirmation');
            }
        }
        return $to;
    }
}

 

  • Like 2

Share this post


Link to post
Share on other sites

+1

Displaying a changelog before upgrading a module or even the core is badly needed. Also the changelog should be visible everytime on a module detail page.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks to a pointer from Adrian, I just found this thread. Want to cross-reference this post here. There are a few possible ways of handling this and I'd like to work on the issue after I finish my current client work.

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, netcarver said:

There are a few possible ways of handling this and I'd like to work on the issue after I finish my current client work.

Thanks in advance!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By BFD Calendar
      I'm still wrestling with the upgrade troubles on OVH.com hosting. I manually upgraded to PW 3.0.98 and Upgrade module 0.0.7. Checking upgrades gives me an "Error loading GitHub branches - https://api.github.com/repos/processwire/processwire/branches - HTTP error(s): 2: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version, 2: fsockopen(): Failed to enable crypto, 2: fsockopen(): unable to connect to ssl://api.github.com:443 (Unknown error) - Check that HTTP requests are not blocked by your server.".
      Upgrading or installing other modules doesn't work either. I know it probably has to do with some provider setting on OVH.com, but I've tried several things mentioned in the ProcessWireUpgrade support forum, all to no avail. Server is configured to use PHP 7.0. If anyone here is also on OVH.com and knows a solution I'd be most happy to hear about it.
    • By louisstephens
      So I recently upgraded my sandbox environment to the latest master version from .62(?). I logged in and received the following error:
      "There appear to be multiple copies of module "AdminThemeUikit" on the file system."
      Unfortunately, in my haste, I removed the theme from site->modules so it doesnt exist anymore, and the theme has defaulted somewhat to the old theme. Is there a way to restore UIkit as the theme for processwire natively, or do I need to completely re-install?
    • By prestoav
      Hi all and happy Christmas!
      I have an odd problem upgrading a site from 2.7.2 to 3.0.62. I've never had an issues upgrading PW versions before!
      Here's the error report:
      Fatal error: Exception: Unknown Selector operator: '' -- was your selector value properly escaped? field='1', value='', selector: '1' (in /Applications/MAMP/htdocs/idreamav/wire/core/Selectors.php line 396) #0 /Applications/MAMP/htdocs/idreamav/wire/core/Selectors.php(439): ProcessWire\Selectors->create('1', '', '') #1 /Applications/MAMP/htdocs/idreamav/wire/core/Selectors.php(159): ProcessWire\Selectors->extractString('1') #2 /Applications/MAMP/htdocs/idreamav/wire/core/Selectors.php(145): ProcessWire\Selectors->setSelectorString(Object(ProcessWire\Page)) #3 /Applications/MAMP/htdocs/idreamav/wire/core/PagesLoader.php(217): ProcessWire\Selectors->init(Object(ProcessWire\Page)) #4 /Applications/MAMP/htdocs/idreamav/wire/core/Pages.php(232): ProcessWire\PagesLoader->find(Object(ProcessWire\Page), Array) #5 /Applications/MAMP/htdocs/idreamav/wire/core/Wire.php(386): ProcessWire\Pages->___find(Object(ProcessWire\Page), Array) #6 /Applications/MAMP/htdocs/idreamav/wire/core/WireHooks.php(698): ProcessWire\Wire->_callMethod(' in /Applications/MAMP/htdocs/idreamav/index.php on line 64 For my eyes it looks like a selector format somewhere. I've been through all of the site templates and can; see anything wrong and they were all working under 2.7.2.
      Anyone have any ideas?
    • By mike62
      I am new to ProcessWire; I'm a WordPress developer coming into an existing PW site. I noticed that the site I'm working on is version 2.3 and wanted to upgrade it to the latest version so that I could be sure that the documentation was relevant to me.
      I downloaded v2.8.62 Legacy today and followed the upgrade steps. The backend works fine, but the frontend gives me this error message:
      Error: Exception: Method ProcessWire::getArray does not exist or is not callable in this context (in /home/delucaswpg/webapps/delucas_dev/wire/core/Wire.php line 519) #0 /home/delucaswpg/webapps/delucas_dev/wire/core/Wire.php(386): Wire->___callUnknown('getArray', Array) #1 /home/delucaswpg/webapps/delucas_dev/wire/core/WireHooks.php(698): Wire->_callMethod('___callUnknown', Array) #2 /home/delucaswpg/webapps/delucas_dev/wire/core/Wire.php(442): WireHooks->runHooks(Object(ProcessWire), 'callUnknown', Array) #3 /home/delucaswpg/webapps/delucas_dev/wire/core/ProcessWire.php(587): Wire->__call('callUnknown', Array) #4 /home/delucaswpg/webapps/delucas_dev/wire/core/Wire.php(445): ProcessWire->__call('callUnknown', Array) #5 /home/delucaswpg/webapps/delucas_dev/wire/core/Wire.php(445): ProcessWire->callUnknown('getArray', Array) #6 /home/delucaswpg/webapps/delucas_dev/wire/core/ProcessWire.php(590): Wire->__call('getArray', Array) #7 /home/delucaswpg/webapps/delucas_dev/site/modules/Spex/Spex.module(163): ProcessWire->_ This error message was shown because: you are logged in as a Superuser. Error has been logged. The site is hosted on WebFaction and can be found here: http://dev.delucaswpg.webfactional.com. Any help would be greatly appreciated.
      -Mike
    • By John W.
      Question 1
      I recently installed PW 3.0.62 for a new site and also have sites running older version of PW 3.x.
      Can I export the database on an older version of PW 3.x and import it to PW 3.0.62 without any issues?
       
      Question 2
      (This is kind of alternative to the above for long term use - and maybe a better solution...)
      On  the sites I've previously built I have templates (home, basic-page, contact) and fields that I commonly use, such as business_name, phone_1.  The last site I built is running PW 3.0.42.  I was considering cloning this into a local site and running the upgrade module to bring it up to PW 3.0.62. From there on out when I start I new project I could just run the PW upgrade module, copy the folder to the location for the new project and duplicate the database using the new projects name.

      So basically, I'll always keep a "blank slate" site that I can just run the PW upgrade on, then duplicate into a new project. This would cut down on the work and time spent having to re-create these common fields, that I use. From there, I would just add fields, templates, etc, specific for the new website project.

      Is this a sound approach to speed up development?