Foswiki on GitHub is open for business! Next release meeting: Monday October 13, 1300Z

Item10506: BuildContrib differences with core Release v.s Core Extension builds.

Priority: CurrentState: AppliesTo: Component: WaitingFor:
Normal Closed Engine BuildContrib  
Not sure if this is BuildContrib or part of the manual release build process, but in the release file, something changes When building a core extension or a release, the ONLY files that should differ between release and extensions are those that are intentionally changed Otherwise the admin has to compare every file and manually decide if it should be updated or not.

Comparing Arthur's PatternSkin updates applied to to Foswiki-1.1.3-beta2, there are significant differences, but it's mostly noise in the metadata.

  • BuildContrib sanitizes the version= field in the TOPICINFO, setting it to 1.
  • _Something_ sets all the TOPICINFO date fields to 0 - not correct
  • Something changes the author to ProjectContributor
  • Most core extensions don't have noci set, so installing the extension later does a Checkin. The next release install finds the topic changed by the checkin, as well as a stale rcs file.


diff Foswiki-1.1.3-beta2/data/System/PatternSkinCssCookbookCenterPage.txt /usr/home/

< %META:TOPICINFO{author="ProjectContributor" date="1129333294" format="1.1" version="1"}%
> %META:TOPICINFO{author="BaseUserMapping_333" date="1299968861" format="1.1" version="9"}%
< %META:FILEATTACHMENT{name="centerpage.css" attr="" autoattached="1" comment="css to frame the page centered on the screen" date="1129323328" path="centerpage.css" size="259" user="ProjectContributor" version=""}%
> %META:FILEATTACHMENT{name="centerpage.css" attachment="centerpage.css" attr="" comment="css to frame the page centered on the screen" date="1299968746" size="88" user="BaseUserMapping_333" version="1"}%

 diff Foswiki-1.1.3-beta2/data/System/WebLeftBarLogin.txt /usr/home/

< %META:TOPICINFO{author="ProjectContributor" date="0" format="1.1" version="1"}%
> %META:TOPICINFO{author="BaseUserMapping_333" date="1299968872" format="1.1" version="5"}%
< </div>"}%</div>
> </div>"}%</div>
\ No newline at end of file

Ugh - this is painful. These files all appear to have changes on but are not modified between Beta1 and Beta2.

less upgrade-113b2-report-KEEP
data/System/PatternSkinCssCookbookFonts.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinColorSettings.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinTheme2009.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCss.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCustomization.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/SkinBrowser.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinThemeFatWilly.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebLeftBarSearch.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinHorizontalNavigationExample.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCssCookbook.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebLeftBarWebsList.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebLeftBarPersonalTemplate.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinElements.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCssCookbookCenterPageBorder.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebTopBarExample.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebBottomBarExample.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCssCookbookCenterPage.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebLeftBarExample.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCssCookbookEditTableStyle.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinGraphics.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCssCookbookNoTopBar.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebLeftBarLogin.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/WebLeftBarCookbook.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinWebCreateNewTopicTemplate.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/System/PatternSkinCssCookbookNoLeftBar.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/_default/WebLeftBar.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/Sandbox/WebLeftBarExample.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/Main/PatternSkinUserViewTemplate.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/Main/WebLeftBarExample.txt LOCALLY_CHANGED, DIST_SAME. KEEP
data/Trash/WebLeftBarExample.txt LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/column_right.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/column_right_flex.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/column_left.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/variant_foswiki_noframe.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/colors.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/layout.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/column_none.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/column_left_flex.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkinTheme/variant_foswiki_frame.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkin/pattern_edit.js.gz LOCALLY_CHANGED, DIST_SAME. KEEP
pub/System/PatternSkin/print.css.gz LOCALLY_CHANGED, DIST_SAME. KEEP
templates/view.famfamfam.tmpl LOCALLY_CHANGED, DIST_SAME. KEEP

And these files were added since 1.1.3beta1, but the file shipped with the PatternSkin Extension differes from the file in Beta2.

pub/System/PatternSkinThemeFatWilly/style.css.gz NEW FILE, BUT DIFFERENT IN LOCAL AND UPGRADE
pub/System/PatternSkinThemeFatWilly/colors.css.gz NEW FILE, BUT DIFFERENT IN LOCAL AND UPGRADE
pub/System/PatternSkinThemeFatWilly/layout.css.gz NEW FILE, BUT DIFFERENT IN LOCAL AND UPGRADE

Finally these files differ between the local install, Beta1 and Beta2 and need a 3-way diff.

data/System/HistoryPlugin.txt CONFLICT, MERGE
data/System/PatternSkinThemeFatWillyNavigation.txt CONFLICT, MERGE
data/System/PatternSkin.txt CONFLICT, MERGE
data/System/PatternSkinTheme.txt CONFLICT, MERGE
data/System/SpreadSheetPlugin.txt CONFLICT, MERGE
data/System/VarCALC.txt CONFLICT, MERGE
data/System/PatternSkinCssCookbookSidebarBackground.txt CONFLICT, MERGE
pub/System/PatternSkinTheme/style.css.gz CONFLICT, MERGE
pub/System/PatternSkin/pattern.js.gz CONFLICT, MERGE

-- GeorgeClark - 18 Mar 2011

I think this is partly correct and partly incorrect.


  • Many .txt files in core does not have any META:TOPICINFO line. When you build a release the build script adds one if it is missing and it gets the timestamp of "now". So these files change each time.
  • For beta2 I had fixed an issue in the build script so it correctly replaced the $Rev$ with a 1. It replaced the $Rev: 12345 $ correctly but it seems some devs have an SVN version that does not replace $Rev$ by the checkin number. There were quite many of these so the beta2 has an unusual lot of changed topics. That is not a problem. The problem was that we had 100s of topics showing $Rev$ instead of 1. There is no good reason to have a $Rev$ in the TOPICINFO. Why not just a 1?? The build script puts a 1 anyway.
  • Some topics were checked in a rev 2 or rev 3. That is an error. I fixed the build script so that the rev is always 1. These will also show up as changed and they should

If you guys add TOPICINFO to the topics where they are missing, the furture versions will not appear as changed.

That said I do not think the foswiki-upgrade-check is of any use for a normal upgrader. You are not supposed to change the documentation in the System web and you put people in the situation where they have to confirm a gzillion times if they want to keep their own now out of date topic or have it overwritten by a new and hopefully more correct or more feature rich version.

In 99% of all files the user should answer yes to overwriting but no normal admin can make this decision correctly and will often say No where he should not and will end up with a broken installation.

I do not recommend using that script unless you are a Foswiki developer or a very very experienced old admin.

One thing to check out is why plugins are different when built in a full release vs a plugin release. This is not supposed to be the case. The build script first builds all core plugins in what appears to be a normal build. And then does the core part. It may be that some post processing should be in the plugin build also.

It should be noted that I do not do ANY manual processing of the Foswiki builds. The full release package is purely the result of running the build script. The upgrade package is a manual process where I remove a list of topics and the manual part is because I sometimes take the decision to include some more topics if we fixed a serious issue in the file.

-- KennethLavrsen - 20 Mar 2011

Thanks Kenneth, I am pursuing some of this to try to understand how it all comes together. i suspect that foswiki-upgrade-check could begin to be the model of an "installer" - rewritten in perl, and using md5 maybe for the comparison instead of raw file compares. Determination of local vs. upstream changes will probably be important. It appears that different versions of gzip also generates different compression results, For example this last time around, the css and js files didn't change between a locally build PatternSkin package and the beta build. But many of the gz files had changes. So as with we may need to link the base and compressed versions of files.


-- GeorgeClark - 21 Mar 2011

Closking this task, I've not seen any issues with the 1.1.4 and 1.1.5 builds.

-- GeorgeClark - 08 Mar 2012

ItemTemplate edit

Summary BuildContrib differences with core Release v.s Core Extension builds.
ReportedBy GeorgeClark
Codebase 1.1.3 beta1
SVN Range
AppliesTo Engine
Component BuildContrib
Priority Normal
CurrentState Closed
Checkins distro:5c4b393df047 distro:dfaa6a92dfd5
TargetRelease patch
ReleasedIn n/a
Topic revision: r9 - 08 Mar 2012, GeorgeClark
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. see CopyrightStatement. Creative Commons License