David Crossley wrote:
Ross Gardler wrote:
Ross Gardler (JIRA) wrote:
[ https://issues.apache.org/jira/browse/FOR-742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12486778 ]
Ross Gardler commented on FOR-742:
----------------------------------

I've deployed the plugins by manually copying the relevant versioned plugins to as the unversioned plugin.
I added these by ssh to people.apache.org then doing copying the files in /www/forrest.apache.org/plugins/* followed by relevant svn add.

Am I correct in thinking these changes will make it to the live server on the next automated update?

Yes they would be picked up on the next rsync.
http://www.apache.org/dev/project-site.html

I have a local SVN working copy of forrest/site/ so i do
such things locally. I didn't think to do it via ssh.
That should work.

You should have done an 'svn copy' rather than manual copy
and then 'svn add'. Also i notice that you haven't done 'svn commit'.

Yes, I should have done copy, not sure why I didn't. As for the commit, I tried to, but it wouldn't let me. I assumed that I didn't have the permissions because it was going to commit to the public server.

I also should have done it in http://svn.apache.org/repos/asf/forrest/site/plugins (as you suggest) as this is a read only repo.

I was going from memory. Unfortunately it is faulty, I thought that in the past I have done things things here to speed things up. In fact, what needs to be done is you do it in the above then do an SVN up from people.apache.org. this forces an immediate website update. Serves me right for doing it from memory.

I've cleared up this mess now.

However there are other issues ...

-----------
The plugins have been deployed haphazardly over the time
since the 0.7 release. I was hoping that someone would
review and deploy each. Then we would follow up with copying
them to the unversioned space.

This cannot be done without alot of work, and I don't think it is necessary. We would have to find the point in SVN that the plugin became a 0.8 plugin, roll back to that time and deploy.

Recall that we introduced a two phase aproach recently, deploy and release. I don't think we have actually released any plugins recently (certainly we have not voted for one).

The deployment/release problem was fixed immediately after we realised the problem with the projectInfo plugin, which was the first to be upgraded to Forrest 0.8. Since then all deployments have been to the correct directoy. Therefore, whatever is in the plugins/0.7 directory is a working plugin for 0.7.

-----------
I wonder if you done things the wrong way around.
When we deploy a plugin, it goes into the forrest/site SVN
at plugins/0.8/ directory.

Not wuite right.

When we deploy, as opposed to release, a plugin it is put into the
plugins root directory (no forrest version number). This plugin version has no version number.

When we release it goes into plugins/[FORREST_VERSION]. This version has a version number.

So by specifying a plugin version number in forrest.properties we say we want a specific plugin version that works on my current Forrest version.

By not specifying a plugin version number we are saying we want the most recent plugin that is known to work with my current Forrest version.

I'll explore the significance of this below.

Also i see a lot of additions in the 0.7 directory. Why?

When we try and retrieve a plugin the order is:

- local plugin
- remote plugin, versioned Forrest
- remote plugin, unversioned forrest

Whether we are looking for a versioned or unversioned plugin depends on the settings in forrest.properties.

So, lets imagine our Forrest content object specifies an unversioned copy of the projectInfo plugin and that the local source files are not available. The process is:

- look for local src files [NOT FOUND]
- look for a remote unversioned copy in forrest.apache.org/plugins/0.7/

Previously this second step would fail since there was no unversioned copy in that directory. And so it would progress to the third step:

- look for a remote unversioned copy in forrest.apache.org/plugins

This would succeed, but the plugin would be for forrest version 0.8, and would therefore break in 0.7

What I have done is made an unversioned copy of the latest release in plugins/o.7 so the second step would succeed.

Why do it this way?

So that we can have development (i.e. none released) versions of plugins available for multiple versions of Forrest. This means someone using Forrest 0.7 can still work on the plugin without it interfering with the latest head development of the plugin. In addition, plugins can have independent release cycles for different versions of Forrest. This allows a bug to be fixed in a Forrest 0.7 version of a plugin independantly of changes in the Forrest 0.8 version.

---

So, in sumamry.

forrest.apache.org/plugins/0.x should contain *released* versioned and unversioned plugins for Forrest 0.x

forrest.apache.org/plugins should contain *deployed* (but not released) plugins for Forrest 0.8

This is not the tidiest way of doing things, but currently the download mechanism is written as an ANT script and therefore we are limited to what is possible (and still readable) in an Ant script. There is an issue to rewrite this in Java, but it has not received attention yet and may well be superceeded by the 0.9 move Ivy.


-----------
Should this action of "copying to the unversioned space"
have happened at a later stage of the release process?
I wonder if they are now busted for users of the current
0.7 release.

No, it will not affect current users. See explanation above.

In fact this duplication of downloads should be done at plugin release time.

BUT...

It does need testing to make sure my assumptions and reading of the build files are correct.

-----------
I see that you don't have your 'umask' set, so now the files
that you copied have the wrong group permissions and so the
other committers cannot update.
http://www.apache.org/dev/new-committers-guide.html#shell

Really? I've set that in the past. Still I'ce done it again, thanks for the heads up. I've also sorted out the SVN status.

Ross