? ? Success

User tests: Successful: Unsuccessful:

avatar NunoLopes96
NunoLopes96
14 Aug 2017

Introduction

At this time, users have to look for external sources of information about changes in an extension, when they are going to update their extensions. In most cases, users install an extension without checking the changelog due to the difficulty to find the associated changelog. With this new feature, users can review the changelog of the extensions when they are about to install an update (granted that the changelog is provided by the extension's developer), and after the extension is installed.

Summary of Changes

Added a new parameter on the xml updateserver files 'changelogurl' and adding it to #__updates table.

Testing Instructions

I made some changes in the core databases so before testing you should fix your database:

screenshot from 2017-07-24 21-36-09

Extensions -> Database -> Fix
Extensions -> Updates -> Find Updates

Update View

Install my component: https://github.com/NunoLopes96/component_joomla
By default you will have always an update from 0.0.2 to 4.0.0 just for testing

If the changelog is not available it will show N/A like in the Folder column

screenshot from 2017-05-23 18-28-40

It will open a modal with an iframe of the changelogurl in the body.
The title of the modal is version ' - ' component_name

screenshot from 2017-05-17 19-54-50

Manage View

The changelogurl is supported for Components, Libraries, Modules, Plugins and Packages, you just need to add tags in your instalation xml with a valid url inside.

To test this you can use these modified packages:

(To test Package, Component, Module, Plugin)
pkg_weblinks_3.4.1-changelog.zip
screenshot from 2017-07-06 12-34-02

(To test Libraries)
lib_fof30-3.1.0-changelog.zip
screenshot from 2017-07-06 12-34-49

(To test languages)
The language installer its diferent from the others so you may want to test 2 cases:
1-Install without having it already in your extensions
2-Install without changelogurl and then install again with a changelogurl

This happens because it has 1 function to install and another one to update ( they are similar )

admin_pt-PT.zip
Extension name: Português (pt-PT)

(To test templates)
et_kidtoy_joomla_template_install_package_free.zip
Extension name: etkidtoy

(To test Files)
cli2zoombie.zip
Extension name: Zoombie - CLI Application

Expected result

In Updates View you will have a new column that will show a changelog button to open a modal if there is a changelogurl in the #__updates table.
In Manage View you will have an tag in the version with a info icon on the right side if your extension has a changelogurl in the #__extensions table.

Documentation Changes Required

Add changelogurl parameter on updatesite information and in extension

6d1453a 3 Jul 2017 avatar NunoLopes96 NL
avatar joomla-cms-bot joomla-cms-bot - change - 14 Aug 2017
Category SQL Administration com_admin Postgresql com_installer Language & Strings Installation Libraries
avatar NunoLopes96 NunoLopes96 - open - 14 Aug 2017
avatar NunoLopes96 NunoLopes96 - change - 14 Aug 2017
Status New Pending
avatar NunoLopes96 NunoLopes96 - change - 14 Aug 2017
The description was changed
avatar NunoLopes96 NunoLopes96 - edited - 14 Aug 2017
avatar mbabker
mbabker - comment - 14 Aug 2017

Looking at this with fresh eyes, there is a part of me that wonders if we should be using an iframe to show the third party site in this manner, or if we should implement a standardized file format (i.e. another XML schema) that developers publish which is consumed and rendered within that modal. Beyond that, concept looks fine to me.

avatar brianteeman
brianteeman - comment - 14 Aug 2017

Using something like XML would be beneficial when extensions are stored on services that do not easily serve html

avatar NunoLopes96 NunoLopes96 - change - 14 Aug 2017
Labels Added: ? ?
avatar conconnl
conconnl - comment - 28 Aug 2017

The idea looks good but using a iFrame will create problems when using certain Security Headers.
Especially the header X-Frame-Options, this header will block loading a website in a Frame.
So when a extension developer use this header in his website, you won't see the information in a frame. https://scotthelme.co.uk/hardening-your-http-response-headers/#x-frame-options

So @mbabker his idea for having a standardized file format would be better.

avatar roland-d
roland-d - comment - 27 May 2018

I have never been in favor of the iFrame, the issue mentioned by @conconnl underlines we better not use this. I will update this PR with a proposed XML scheme and we can shoot at it.

avatar roland-d
roland-d - comment - 28 May 2018

So I have come up with the following schema. Let me know if I should proceed with this or if it should be changed.

<changelogs>
    <changelog>
        <element>com_lists</element>
        <type>component</type>
        <version>0.0.4</version>
        <security>
            <item></item>
            <item></item>
        </security>
        <fix>
            <item></item>
            <item></item>
        </fix>
        <language>
            <item></item>
            <item></item>
        </language>
        <addition>
            <item></item>
            <item></item>
        </addition>
        <change>
            <item></item>
            <item></item>
        </change>
        <removed>
            <item></item>
            <item></item>
        </removed>
        <note>
            <item></item>
            <item></item>
        </note>
    </changelog>
</changelogs>

This schema allows for the following types of information:

  • Security fix
  • Regular fix
  • Language change
  • Addition
  • Change
  • Remove
  • Note

I believe this should cover all possible changes. Let me know what you think.

avatar ggppdk
ggppdk - comment - 28 May 2018

Looks good but we are talking about users (non-developers) reading this

maybe these categories

Security Fixes
Bug Fixes

New Features / Improvements
Removed features

Behaviour Change
Notes

avatar roland-d
roland-d - comment - 28 May 2018

@ggppdk

but we are talking about users (non-developers) reading this

Yes, but these words are not the exact words I would use indeed and they will be language strings so they are open to what we are going to put in. We can take your text for the English language.

avatar joomla-cms-bot joomla-cms-bot - change - 1 Jul 2018
Category SQL Administration com_admin Postgresql com_installer Language & Strings Installation Libraries SQL Administration com_admin Postgresql com_installer Language & Strings Installation Layout Libraries
avatar roland-d
roland-d - comment - 1 Jul 2018

I have started to bring this PR inline with the 4.0-dev codebase and work out the issues and improve the featureset.

I am sure @Quy will help me with codestyle :) Now I also need help with styling the modal containing the updates. Have a look at this:
image

This contains all the possible sections that are available. @ciar4n is this something you can help me with?

As for the changelog.xml I am now using this format, any feedback for this is appreciated as well.

<?xml version="1.0" encoding="utf-8"?>
<changelogs>
    <changelog>
        <element>com_lists</element>
        <type>component</type>
        <version>0.0.4</version>
	<entries>
        <security>
            <item>CVE 1</item>
            <item>CVE 2</item>
        </security>
        <fix>
            <item>FIX 1</item>
            <item>FIX 2</item>
        </fix>
        <language>
            <item>LANG 1</item>
            <item>LANG 2</item>
        </language>
        <addition>
            <item>ADD 1</item>
            <item>ADD 2</item>
        </addition>
        <change>
            <item>CHANGE 1</item>
            <item>CHANGE 2</item>
        </change>
        <removed>
            <item>REMOVE 1</item>
            <item>REMOVE 2</item>
        </removed>
        <note>
            <item>NOTE 1</item>
            <item>NOTE 2</item>
        </note>
</entries>
    </changelog>
</changelogs>

This PR is not ready yet but I would appreciate feedback already so we can get this into a ready state.

avatar wilsonge
wilsonge - comment - 2 Jul 2018

I don't think you need the type in your schema. This living on a foreign server where you are already matching against the element so I don't see what value it's providing?

Additionally I think we only need fix and note - not change - they should be covered by the other things

avatar roland-d
roland-d - comment - 3 Jul 2018

@wilsonge The reason the type is there is because we have it that way in the update XMLs as well. The only reason I took it as well is because I figured we can use it for better checking we have the correct type.

Additionally I think we only need fix and note - not change - they should be covered by the other things

As an extension developer I use all of them to clearly identify where the entry belongs to. Each has their own merit to me at least. I don't see any harm in offering them, extension developers don't have to use them of course. They are there for those who want to use more distinction.

avatar brianteeman
brianteeman - comment - 3 Jul 2018

Agree with roland - hardly changelog without listing any changes ;)

avatar roland-d
roland-d - comment - 26 Feb 2019

Closing this as I can't push to the repo anymore. Continuing in #24026

avatar roland-d roland-d - change - 26 Feb 2019
Status Pending Closed
Closed_Date 0000-00-00 00:00:00 2019-02-26 19:49:45
Closed_By roland-d
avatar roland-d roland-d - close - 26 Feb 2019

Add a Comment

Login with GitHub to post a comment