Hi vincent,
On 2 nov. 2010, at 08:56, Vincent Massol <vincent(a)massol.net> wrote:
> Hi Ludovic,
>
> On Nov 1, 2010, at 6:05 PM, Ludovic Dubost wrote:
>
>>
>> I've been thinking a little more about the XE 3.0 idea and I came to the conclusion that there should be no XWiki version called 3.0.
>>
>> Here is my thinking. I agree with something that was discussed by multiple people which is that a potential main version switch is the sign of a progress and of a cycle of development (preferably of a coherent feature set that we have thought about).
>> The probleme is that if you call this version 3.0 then people will think of what software usually is developped (in the proprietary world), where 3.0 is a start with major changes in the software.
>>
>> Now when we look at the way open source and XWiki in particular develop software, this is not at all the case. We make gradual changes in the whole cycle of the software and there is not that many more changes between 1.9 and 2.0 then there was betwee 1.6 and 1.7. In this life we introduce new features all the time. Usually the first time a features goes in, it's not perfect and it's improved in the next release (with the biggest bugs fixed in minor releases).
>>
>> In order to recognize that and make it more understandable I suggest we don't call ANYTHING a .0 release. Instead I suggest that we start calling things the way they are, which are releases of a cycle which are improvements on a path that has been explained.
>> Therefore we should NAME the major releases (instead of numbering them, although we keep the number for tracking) and we number the sub releases starting with 1 and not 0.
>>
>> For example if we call the 2.x cycle XXXXX and the 3.x cycle YYYYY, then we release
>>
>> XWiki 2.1 -> Cycle XXXXX release 1 -> subname for that release
>> XWiki 2.2 -> Cycle XXXXX release 2 -> subname for that release
>> XWiki 2.3 -> Cycle XXXXX release 3 -> subname for that release
>> XWiki 2.4 -> Cycle XXXXX release 4 -> subname for that release
>>
>> For each release we show with features are in beta/stable state. Then at some point we work on full stabilitization and we advertise
>>
>> XWiki XXXXX release 7 with all features in there being stable
>>
>> Then we start the next cycle with release 1
>>
>> XWiki YYYYY release 1
>> etc..
>>
>> And we show the path and objectives of the whole cycle in order to show some coherency.
>>
>> This way we avoid the .0 issues where it's not clear if a .0 is stable or not, the beginning or the end.
>>
>> --
>>
>> Concerning the plan, I'm +1 for stabilitzation work. -0 for calling the result 3.0.
>> +1 for calling the next release following 2.7, version 3.1 but having new features in them showing the path of the next development cycle.
>> and +1 for finding a text naming instead of numbers
>>
>> For the next cycle (3) we would need to find a nice name that shows the path we want to follow.
>
> I don't like skipping a version. It's confusing and not logical (from a number POV) IMO.
>
> I'd be ok with one of the following strategies (listed in the order of my preference):
>
> 1) Same as now. I don't see it a problem at all. I'm not completely sure why we're having this discussion. Have many users raised a question regarding our current release scheme?
If we balance marketing needs in release numbering i am +1
The question is therefore : how do we merge those interrest in a reliable process ?
>
> 2) Same as now but we don't release major versions for "marketing" reasons (like we did for the 2.0 release), i.e. we only make a major release when there's a large non backward compatible change (say for example when we introduce the new model, or a move to JCR for example as the new storage mechanism, etc). This means we could have a 2.55 version.
-0 on this, i am not sure this reaches our goals
>
> 3) No major releases at all. This means that we acknowledge that we don't need them since we're making evolutive changes (without major breakages or breakages are done evolutively too with deprecation cycles, etc). This would mean a new numbering scheme that doesn't have a major value. For ex: Release 25, 26, ... 150, etc. I like that it's based on numbers since you know the previous and the next one easily (and technically it'll work with Maven, no need for a custom version comparator).
+0 it could be a good way to remove any marketing issue from the numbering strategy, but it kills value
>
> Thanks
> -Vincent
>
>> Ludovic
>>
>>> On Nov 1, 2010, at 12:50 PM, Gregory GUENEAU wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> I am +1 to make stabilization work, on a couple of releases
>>>> I am +1 to have soon a 3.0 release
>>>> And i am +1 on the content vincent propose
>>>>
>>>> But my point of view is -1 stepping the release family number because the main purpose of what is discussed here is stabilization, and not showing the path of 3.x family.
>>>>
>>>> Therefore :
>>>> - do we consider a january 2011 release to be stable enough ?
>>> Speaking for myself of course...
>>>
>>> yes (otherwise I wouldn't have proposed it obviously).
>>>
>>>> - stabilization work wouldn'it be leading then to the last 2.x version instead of the first 3.x family version ?
>>> no, it's the same.
>>>
>>>> - is there behind it a consensus on what we will concentrate our effort in 3.x versions ? I mean thematics we can talk about.
>>> not needed to decide on the 3.0 release, this is a topic for another mail.
>>>
>>>> - therefore, are we in a situation where we can vote on the global thematics we will develop in 3.x releases ?
>>> not needed at this stage
>>>
>>>> - do we have a clear consensus short list of features that show the path of 3.x family ?
>>> not needed at this stage
>>>
>>>> - in consequence of that, is the release content here send a clear message to uneducated publics about what is in this future 3.x versions ?
>>> not needed at this stage
>>>
>>>> - do educated people care this much about release number, that we absolutely have to release a 3.0 with the content presented below ?
>>> yes (the content is open of course but provided it's not important new stuff IMO since otherwise it won't be about stabilization).
>>>
>>>> We have to make 100% sure our message will be understood by market. We are now in the Gartner magic quadrant and will increase our visibility outside the opensource community.
>>>> In a world where new release number families means : "we show the path of the future of this software, even if the features we present are not perfect", i will strongly promote to answer in details the questions i mentionned before deciding 2.8 to be in fact 3.0.
>>>>
>>>> Then here is the two elements that are probably the biggest things in the roadmap for 3.x versions :
>>>> - going social (workspaces in xem, twitter like app, page stats for the user, etc.)
>>>> - going to be an easy place to develop in (extension manager of course, but also documentation for dummies and a first app like "app within minute" proposed by guillaume and strongly needed by our front team)
>>>>
>>>> Is there a consensus on this list ? Then what should be the "demo" features we could present to be consistent for a 3.0 release ?
>>> Again this is not the topic of this mail. You're talking about deciding what's in for 4.0 when this mail is about deciding the 3.0 release.
>>>
>>> Thanks
>>> -Vincent
>>>
>>>> Best
>>>>
>>>>
>>>>
>>>> On 1 nov. 2010, at 09:23, Vincent Massol<vincent(a)massol.net> wrote:
>>>>
>>>>> Hi everyone,
>>>>>
>>>>> Sergiu started mentioning the idea of a XE 3.0 when we defined the XE 2.6 roadmap. We need a more general agreement that we want a XE 3.0 and how to reach it.
>>>>>
>>>>> As Sergiu I believe we need a XE 3.0 ASAP for the following reasons:
>>>>>
>>>>> - it's been a bit more than 1 year since the XE 2.0 release and I feel it's good to have one major release every year
>>>>> - we've added **lots** of features since XE 2.0. Check http://www.xwiki.org/xwiki/bin/view/Main/ReleaseNotes to get a feeling
>>>>> - it's good for open source marketing
>>>>>
>>>>> Before being able to release XE 3.0 I think:
>>>>>
>>>>> - XE 2.6 is already planned for the 18th of November (with "mail this page" and "recent activity" features + icon/emoticon and wikiword support that was sneaked in surreptitiously)
>>>>> - We should have a XE 2.7 release (1 month duration, ie leading us to the 18th of December) to finish started stuff:
>>>>> -- Finish the Gadget integration since it's been started already and it's important. That said I'd actually be ok to not finish it if we think it's too much to release XE 3.0 quickly according to the dates below. Anca to tell us if it's possible in the timeframe.
>>>>> -- First working extension manager that can be used to install XARs (replaces the old Packager on the back end side). Thomas to tell us if it's possible in the timeframe.
>>>>> -- Recent Activity with apps sending events (XE 2.6 will already have a good part of it)
>>>>> -- UI finishing touches
>>>>> -- Some additional Security and Performance improvements if possible
>>>>> -- etc (add what you'd like to see absolutely here - it should be work already started as much as possible and no new stuff)
>>>>> - Release XE 3.0 one month after the XE 2.7 release, ie around 18th of January - ie end of January 2011)
>>>>>
>>>>> Very important: XE 3.0 should be a maturation/conclusion release, i.e. concluding all the work started in the 2.x series (same as what we did for XE 2.0). It shouldn't be seen as revolutionary stuff that we should add from now on since it'll take a year more before those can be fully stabilized and we would loose the window of opportunity of doing a major release now.
>>>>>
>>>>> Note: We shouldn't try to cram too much things in since that'll extend the lead time to release XE 3.0 and we'll loose the stabilization effect.
>>>>>
>>>>> WDYT?
>>>>>
>>>>> Thanks
>>>>> -Vincent
> _______________________________________________
> devs mailing list
> devs(a)xwiki.org
> http://lists.xwiki.org/mailman/listinfo/devs
In light of the need for better attachment handling, I spent the past few days working on the basic
framework for a new module to support large objects. The code can be viewed here:
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/xwiki-blob/src/main/java…
Use case #1: Multiple methods of storing content and the ability to define more.
Use case #2: Thread safe locking to prevent concurrent modifications from damaging content.
Use case #3: ACID commit/rollback protection.
The API user has 2 access points.
BinaryObject is a thread safe interface with ACID and option of using OutputStream or InputStream to
set and get data.
StorageItem is a simplistic interface modeled after a small subset of the methods in java.io.File.
If you create a component which implements StorageItem, BinaryObjectProvider will allow you to
access a BinaryObject which uses your StorageItem for persistent storage.
Example:
@Requirement
private BinaryObjectProvider provider;
private BinaryObject binaryObj;
public void initialize()
{
this.binaryObj = this.provider.get("myImpl");
}
"myImpl" is the hint for the StorageItem which you may define.
The next step is of course to add versioning support but I think this will provide a solid
foundation to build that on.
WDYT?
Caleb
Hi,
Following this thread http://markmail.org/thread/jbd62pddnuqvm5ku and
after trying the same example in the new XE 2.6-SNAPSHOT.32286, I see
that variables set in the body of the document keep being well
rendered/printed in the title of the document but not in the breadcrumbs.
I would like to know if there is some design reason for printing
breadcrumbs before the content of the document or we could expect that
in some future version this could be possible.
Thanks!
Ricardo
--
Ricardo RodrÃguez
CTO
eBioTIC.
Life Sciences, Data Modeling and Information Management Systems
On Oct 31, 2010, at 5:48 AM, sdumitriu (SVN) wrote:
> Author: sdumitriu
> Date: 2010-10-31 05:48:50 +0100 (Sun, 31 Oct 2010)
> New Revision: 32285
>
> Modified:
> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/pdf/impl/PdfExportImpl.java
> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/pdf/impl/PdfURLFactory.java
> Log:
> XWIKI-5639: PDF export doesn't contain images if the document name contains non-ASCII characters
> Fixed.
[snip]
> - for (int i = 0; i < filelist.length; i++) {
> - filelist[i].delete();
> + try {
> + FileUtils.deleteDirectory(tempdir);
> + } catch (IOException ex) {
> + // Should not happen, but it's nothing serious, just that temporary files are left on the disk.
> + log.warn("Failed to cleanup temporary files after a PDF export", ex);
I thought our strategy was to not display stack trace unless the log was about an error? (at least this is the strategy I've always followed since a stack trace takes up a lot of space, draws the eye, etc). What I do usually is just display the nested message without the stack trace. Note: It might be good to have a utility method somewhere to extract all messages from all nested exceptions without the stack trace.
WDYT?
Thanks
-Vincent
[snip]
Hello devs,
I installed the latest stable version of XWiki (2.5) and I found out
that the document information panel does not include a parent field.
Therefore, I tried to include that field, as in the older version I
had (2.4.3) but saving the document does not save the parent in the
database.
Is this a bug or was there a change in the way we say what is the
parent page of a given document?
I tried to search for known issues in Jira but had no success on this one.
Best,
Paulo Zenida
Hi devs,
I'd like to commit a console.log wrapper in xwiki.js that does some
checking before logging, in the spirit of
http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
Something like :
var XWiki = {
//snip
/**
* console#log wrapper for your developer own convenience
*/
log: function(){
if(typeof console != "undefined"){
console.log( Array.prototype.slice.call(arguments) );
}
},
// snip
}
WDYT ?
Jerome
Hi devs,
I'd like to propose we adopt the module pattern for our XWiki's
javascript modules.
The pattern and its variations is well described here :
http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth
I would follow the author advice and go for loose augmentation and
sub-modules. I don't think we need private states.
Main avantages I see over what we currently are doing are :
* It enforces namespacing and the use of a private scope versus manual
namespacing in the global window scope
* It easily supports global imports (can be useful for example when
using jQuery in addition to prototype)
* It's more elegant and easier to read. For example :
var XWiki = (function(XWiki, $j){
var mySubModule = XWiki.mySubModule = XWiki.mySubModule || {};
// my sub module code here
return XWiki;
})(XWiki, jQuery)
instead of the tedious :
if (typeof XWiki == "undefined") {
XWiki = new Object();
}
if (typeof XWiki.mySubModule == "undefined") {
XWiki.mySubModule = new Object();
}
// my sub module code here
I'm +1 to adopt it.
WDYT ?
Jerome
Hi,
I'd like to propose that we have a short XE 2.6 release. The rationale is that we've been developing lots of new features in the past releases and I think it's time to stabilize what we have. By stabilize I mean:
- fix bugs
- homogenize UI
- clean up stuff (refactoring, etc)
In addition we have 2 features we had planned for 2.5 which have slipped and we could finish them in 2.6 too (Sergiu said he was almost done with the "Email this page" feature and didn't have the time to slip it in the 2.5):
- Email this page: Sergiu
- Recent Activity (refactoring of Recent Changes based on the Activity Stream): Raluca + Caty + JV to apply the patch
The idea would be to have the following dates:
- 2.6RC1: 1st of November 2010 (there's no M1)
- 2.6 final: 18h of November
If we agree, is there anyone who'd like to be the release manager for this release? If nobody volunteers I can do it.
If we agree, I'll send another mail afterwards with some ideas for XE 2.7 and a potential XE 3.0 release. Note that XE 2.6 would be a first step in stabilizing XE for an upcoming 3.0 release :) But even without this vision doing a short stabilization release from time to time is always a good think I believe. It's also not too long so that people don't need to hold new stuff for too long.
Here's my +1
Thanks
-Vincent
Hi,
Requirement
==========
UC1: ability to package transformations in the platform that are not enabled by default (for ex WikiWordTransformation)
UC2: ability in the future to install a new transformation using the extension manager and make it active without restarting xwiki (and without complex operations to activate it)
UC3: ability to have a list of transformations active in a given part of the xwiki code and another list in another part of the code
Proposal
=======
* Introduce a XWikiTransformationManager implementation (hint = "xwiki"), located in xwiki-core/
* Make it use CoreConfiguration and introduce core.viewTransformations configuration properties (in some future we'll have a separate module to perform page rendering - The rendering module is about rendering content not pages). Ex: core.transformations = macro, icon (values are role hints)
* Default property value would be: macro, icon
* DefaultTransformationManager will continue to exist and be part of the rendering module (and runs all transformation it can find). We could decide to remove it at some point if we don't see any value although it could stay as an example implementation in the rendering module (which can be used standalone).
This proposal solves UC1 and UC3. It's less clear how it can solve UC2.
When the extension manager is available we could simply remove this configuration property and simply "deactivate" a given transformation, thus making it inactive. I believe this will be the best practice in the future for activating/deactivating (set of) components. There could be 2 ways: making it not part of the classloader and/or telling the component manager to unregister/register a component.
Thus I believe this proposal is good enough for now.
WDYT?
Thanks
-Vincent