Hello,
Right now class property hints are not supported right in the core of
XWiki (though it's been mentioned as a possible future item of the
roadmap for AWM, see http://markmail.org/message/ltuphlj7bnnso2yb ).
Once this will be implemented, it will rely on i18n message keys so
that hints are localizables (same strategy as for class property
pretty names)
I'd like to start the discussion and see if we can agree on a
convention that would be used in the future when this module is
implemented.
The reason for this is I'm starting to work on a LDAP admin UI, and I
find that their field pretty names are not self-explanatory. It's not
a matter of expression, it's just the fact that what they describe
needs more explanation than what the pretty name can offer). In this
light, I'm planning on displaying such longer hints in this admin
section.
Right now the format for a pretty name is :
Space.Class_property=Pretty name
The format for a hint could be something like :
Space.Class_property.xHint=Hint
This would need escaping rules I think, since I believe
"property.xHint" is a valid property name
Note that I use "xHint" and not "hint" to be consistent with the form
standards class names. This can be discussed though.
WDYT ? Do you have other ideas ?
Jerome.
--
Jérôme Velociter
Winesquare
http://www.winesquare.net/
Hi,
We are using mixed naming when referring to a document/page, not only on
different pages, but also in the same context (Rename step for example).
There is also an issue referring to this problem
XWIKI-5401<http://jira.xwiki.org/jira/browse/XWIKI-5401>and we need to
find an answer in order to move forward consistency.
So the question is which version we prefer: "Page" or "Document" ?
I'm voting +1 for "Page".
"Page" is more used IMO, especially in the "Space"/"Page" context.
"Page" is more general than "Document" and better fitted for a platform that
encapsulates all kind of content (not just documents).
Please cast your vote.
Thanks,
Caty
Hi devs,
Here's a proposal to move pages currently located in XE into platform modules:
* ColorThemes/*.xml --> xwiki-platform-colorthemes
* Main/Activity.xml --> xwiki-platform-activitystream-ui (move current xwiki-platform-activitytream into xwiki-platform-activitystream-api)
* Main/AllDocs.xml (and XWiki.Tableview, XWiki.Treeview, XWiki.OrphanedPages, XWiki.AllAttachments*, XWiki.DeletedDocuments, XWiki.DeletedAttachments and all pages used by those) --> new xwiki-platform-navigation module
* Main/RssFeeds.xml --> new xwiki-platform-help module or xwiki-platform-rss-ui module (see below)
* Main/SpaceIndex.xml --> xwiki-platform-navigation
* Main/Spaces.xml --> xwiki-platform-navigation
* Main/UserDirectory.xml --> xwiki-platform-user-ui
* Main/WebHome.xml --> xwiki-platform-dashboard-ui
* Main/WebRss.xml --> new xwiki-platform-rss-ui module, we would create a xwiki-platform-rss-api module too where we will move the feed plugin
* Main/Welcome.xml --> move to xwiki-platform-dashboard-ui since it's a dashboard gadget which we could consider as a default widget
* Sandbox/*.xml --> xwiki-platform-sandbox module (or xwiki-platform-help module)
* XWiki/XWikSyntax.xml --> xwiki-platform-help module
* XWiki/AttachmentSelector.xml --> xwiki-platform-user-ui or new xwiki-platform-attachmentselector module
* XWiki/ClassSheet, ClassTemplate, ObjectSheet, XWikiClasses,
* XWiki/GadgetClass.xml --> xwiki-platform-dashboard-ui
* XWiki/LiveTableResult*.xml --> new xwiki-platform-livetable module
* XWiki/MessageStreamConfig.xml --> new xwiki-platform-messagestream-ui module (and move xwiki-platform-message in xwiki-platform-message-api module)
* XWiki/RequestsStatus.xml --> xwiki-platform-administration module or remove from platform till we integrate it in the Admin as an admin tool somewhere since right now I think it's available in the Admin tools application
* XWiki/RequiredRightClass.xml --> since it's used in lots of other ui modules I'd propose to move it in java code as a class created on startup. Alternatively start creating a xwiki-platform-rights-ui module (or xwiki-platform-permission-ui module) and move it there
* XWiki/SharePage.xml --> not sure…. maybe in a xwiki-platform-share or xwiki-platform-sharepage module
* XWiki/TemplateProvider*.xml --> xwiki-platform-administration for the moment
* XWiki/WebHome.xml --> xwiki-platform-administration module
* XWiki/WebPreferences.xml --> xwiki-platform-administration module
WDYT?
Please try to tell me if you're ok for each line if you have time ;)
Thanks
-Vincent
Hi,
Im trying to fix http://jira.xwiki.org/jira/browse/XWIKI-4274
Basically if you do $xwiki.getDocument("someDoc").getRenderedContent()
it'll get executed in the context of the current doc which I believe
is wrong especially since other signatures of getRenderedContent()
execute in the target document's context.
I have fixed this locally but found that admin.vm for example is
assuming that getRenderedContent() will get executed in the context of
the calling doc (i.e. XWiki.Import when doing an import for example).
FYI the chain flow is admin.vm -- getRenderedContent() -->
XWiki.AdminSheet --> XWiki.AdminImportSheet --> importinline.vm, which
requires the current doc to be XWiki.Import (to get/put attachments
from/to it).
I can fix this easily using a new getRenderedContent signature I've
introduced.
However I'm wondering if we have other places that incorrectly use
getRenderedContent() and assume it won't be rendered in the context of
the target document.
Is this change too dangerous to make? If not know, we'll need to it
quickly (2.1M1?) since it's an important bug IMO.
WDYT?
Thanks
-Vincent
Hi devs,
Running mvn dependency:dependency-analyze produces interesting results.
For example:
[INFO] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[INFO] Building XWiki Commons - Properties 3.2-SNAPSHOT
[INFO] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…
[INFO] --- maven-dependency-plugin:2.3:analyze (default-cli) @ xwiki-commons-properties ---
[WARNING] Used undeclared dependencies found:
[WARNING] org.slf4j:slf4j-api:jar:1.6.1:compile
[WARNING] javax.inject:javax.inject:jar:1:compile
[WARNING] Unused declared dependencies found:
[WARNING] org.xwiki.commons:xwiki-commons-component-api:jar:3.2-SNAPSHOT:compile
[WARNING] org.xwiki.commons:xwiki-commons-test:jar:3.2-SNAPSHOT:test
[WARNING] org.hibernate:hibernate-validator:jar:4.2.0.Final:test
[WARNING] org.hamcrest:hamcrest-core:jar:1.1:test
[WARNING] org.jmock:jmock:jar:2.5.1:test
The question is (for this module but more generally for all others):
* Should we add slf4j and javax.inject reps in the pom.xml for this module? (for ex today slf4j and javax.inject are found in the component-api dep)
I think we should, wdyt?
Note that the "Unused declared dependencies found:" doesn't always generate correct results as is the case here. This is mostly because it's a static byte code check so any dep used at runtime will be considered unused.
See http://www.sonatype.com/books/mvnex-book/reference/optimizing-sect-dependen…
Thanks
-Vincent
Hi,
*Short version* for voting:
*A*. Creation of a new wiki on xwiki.org farm that will hold development
process details about a specific feature. This wiki will deprecate
dev.xwiki.org:Design and incubator.myxwiki.org
*B*. Vote on naming alternatives for this new wiki:
design.xwiki.orgincubator.xwiki.org
*C*. UI on how a Proposal will be displayed in this new wiki (example
AppWithinMinutes):
http://incubator.myxwiki.org/xwiki/bin/view/Improvements/XWikiOrgDesignWiki
------------------------------------------------
*Long version: *
Right now development process activities are located in multiple places:
- Analysis + Architecture: http://dev.xwiki.org/xwiki/bin/view/Design/
- Analysis + User Interface:
http://incubator.myxwiki.org/xwiki/bin/view/Improvements/
- Other: http://xwiki.markmail.org/, http://jira.xwiki.org, chats, git
comments, etc.
This process can be hard to optimize and information is hard to track if
you are looking for specific information.
And the worst part of it is that is hard to automatize and lots of the
items need manual gathering or search.
*Part A. *
This mail is about combining http://dev.xwiki.org/xwiki/bin/view/Design/andhttp://incubator.myxwiki.org/ work in a single place.
This has already been discussed several times before (
http://xwiki.markmail.org/thread/kc32dufsf7nyyt6s and
http://xwiki.markmail.org/thread/izj6aiyodwqia4vl) and the vote was
favorable in this direction.
The proposal was to create a new wiki called design.xwiki.org that will
contain the combined information and that will target developers.
The new wiki will be used to gather only proposal's development process
information: requirements, architecture, solutions alternatives, user
interface variants, planning, etc. for a specific feature/idea/improvement.
After the proposal is implemented it will be properly documented in the
right location for users (ex platform.xwiki.org).
It is acceptable to have CSS + JS code on this wiki in order to demonstrate
the functionality of the proposals, but we should not add
experimental/dangerous code (groovy scripts, jars, etc.). For this case it
is advisable to use a test machine, share your own instance or use the
contrib.xwiki.org repository for hosting.
The version upgrades will be handle by a community admin and the wiki
gardening by me.
The data from incubator.myxwiki.org and dev.xwiki.org:Design will be moved
gradually after the new wiki is created.
*Part B. *
You should state your opinion regarding which name is better for the new
wiki:
- design.xwiki.org
- incubator.xwiki.org
- we accept other proposals.
*Part C.*
I've made a proposal on how a proposal page would look like:
http://incubator.myxwiki.org/xwiki/bin/view/Improvements/XWikiOrgDesignWiki
The proposal page will gather all the information related to it, making it
easier to track it's progress.
The entries will be separated depending on 4 categories: Analysis,
Architecture, User Interface and Implementation, each category having it's
own status, participants, jiras and timeframe.
Categories are not mandatory for all proposals, smaller proposals will have
just the related pages for certain areas.
Each proposal will store it's data in a dedicated space.
The implementation of the proposal will be handled by me.
Let me know what you think.
Thanks,
Caty
Hi devs,
I think it would be great to have some indication of how many active instances of XWiki are out there in the wild. The idea is not so much to know the figure but to see how this figures evolves and thus to see if we're doing things right. It will also give us information about how quickly or slowly our user base upgrades from version to version.
Here's my proposal:
* When installing XWiki on a clean DB (ie first time install) generate a unique id and store it in the DB (similar to the version we're storing in the DB but using some UUID). Thus when an install is upgraded the same id is preserved.
* When the Extension Manager is used and thus connects to extensions.xwiki.org (default extension repository), this unique ID is sent too.
* In addition the version of XE is sent too
* On extensions.xwiki.org side, we only log the unique ID/XE version **without** logging the IP or any other information thus ensuring that the ID remains completely anonymous
* We display a counter on xwiki.org about the # of active instances of XE with a graph about XE versions used
WDYT?
Thanks
-Vincent
Hi devs,
We have recently voted a rule where we said that we will do the following:
* Always deprecate APIs
* Always move them to Legacy modules
* And when there's a technical issue to moving stuff to the Legacy module, only then, send a VOTE to remove an API
(see http://markmail.org/message/tino4ngttflc5i3s).
This means that from now on (starting on 26th of April 2012) we're not allowed to put excludes in CLIRR.
However I've seen that we have added some CLIRR excludes after the vote was passed.
I believe that the main issue we have is for "young" APIs that are not considered stable.
Proposal 1: Internal package
=========
* Young APIs must be located in the "internal" package till they become stable. I propose "internal" to reuse an existing package that we filter when testing for CLIRR. "internal" means that users should not use this API because it's considered unstable and can change at any time.
* When a Young API is considered stable enough and we want to open it to public consumption then we move it from "internal" to its target package (that's easy to with IDEs). From that point forward any changes to them goes through the standard mechanism of deprecation/legacy.
* If we want to add a new method to an existing public API then this should not be considered a "young" API. It's just an addition to an existing API and thus goes directly to the deprecation/legacy cycle.
* We need to be careful to isolate "young" APIs from public API so that users don't inadvertently use "young" unstable APIs by mistake. If not possible then directly go through the deprecation/legacy cycle.
The advantage of this proposal is that it doesn't change our current practices and is very easy to verify through CLIRR.
Proposal 2: Experimental package
=========
Another possibility I can think of is to introduce a new "experimental" package instead of reusing the "internal" one. It has the advantage of being able to follow "young" APIs and ensure they don't stay in that state indefinitely, while still allowing the user who uses it to notice it's experimental.
Proposal 3: Experimental Annotation
=========
Another idea is to just use an @Experimental javadoc tag for experimental code. It has the advantage of using the target package but it has drawbacks:
* It's impossible for users to notice that they're using Experimental APIs since when they import a class they won't see anything that'll tell them they're using a "young" API
* It's almost impossible to tell CLIRR to exclude those APIs from its checks. The only way to do this is to modify the source code of the CLIRR plugin AFAIK. Thus we would need to exclude those manually using CLIRR excludes and thus before we release we would need to go over the full list of CLIRR excludes to ensure the excludes listed are only for "young" APIs marked "experimental".
Note that I mentioned javadoc tag and not annotation because I believe we need to add information about when the Experimental API was first introduced so that we eventually move it as a proper API by removing the Experimental tag. Maybe we would need a rule such as: keep that tag for less or equal to 3 full minor releases (i.e. 6 months).
WDYT? Any other idea?
Thanks
-Vincent
Dear community,
I would like to request for a new contrib project to store the Mail
Archive application I'm currently writing.
Name: xwiki-application-mailarchive
Description: A mailing-list archive application.
- For now a GitHub project to store sources should be fine. My
username on GitHub is "jbousque".
- For Jira it might be useful to have a project once the application
is released "officially", that is still not the case. Meanwhile the
generic project is ok for me.
- There is a specific page in Design space on xwiki.org :
http://dev.xwiki.org/xwiki/bin/view/Design/MailArchiveApplication ,
but for now no extension has been added. I would like if possible to
test my extension (automatic install with dependencies) before
publishing it
The Design page also gives some info about the current state and
progress, and some screenshots. There is many remaining work, but it
begins to look like something usable. The bad side is the lack of unit
tests most of all ...
A question : the groupId "org.xwiki.contrib" is to be used, do I have
to use this exact groupId or can there be sublevels if needed ?
If so I would use org.xwiki.contrib.mailarchive as groupId.
Thanks,
Jeremie