Brian, thank you very much for this constructive feedback. It can be
confusing to new users to try to nagivate a project that a) hasn't
released a GA quality release and b) is the product of a merger. You
raise very important issues that we need to address. I'll discuss
possible solutions one by one. With each issue, I'll list the tickets,
if applicable, that I either just created or already existed.
Brian Pontarelli wrote:
1. Arrived at the Struts homepage and Struts 2 almost looked dead. No
activity since October and no news or release information. Adding some
news every few weeks will help keep new comers from bailing.
We should probably look at automating the website deployment from SVN.
This would allow us to more easily keep the website refreshed. I like
the idea of more frequent news items. Maybe the front page should
display a few feeds such as latest documentation edits, commits, or
Struts 2 plugin announcements. If we generated the website from Maven
each night, the material would stay pretty current.
https://issues.apache.org/struts/browse/SITE-17
https://issues.apache.org/struts/browse/SITE-18
2. Tried to download the release using the release navigation. Here I
was presented with the fact that there was a 2.0.1 BETA, which is the
latest development release. I spent the next while looking for the
2.0.0 release, figuring that was the last stable release. Couldn't
find it obviously. The versioning currently looks to the outside to be
a complete mess and it is very confusing and non standard. I would not
release a patch version (major.minor.patch) until the major version is
released. Therefore all the references to 2.0.1 through 2.0.6 are very
confusing because these are not really final releases, but all BETAs.
Plus, there is talk about 2.0.1 BETA and 2.0.4 and 2.0.6 and this is
all quite confusing. I would probably fix the version into a standard
alpha, beta, release candidate model. So, currently it would be
something like 2.0.0-RC6 or the like working towards a final release
of 2.0.0.
While I agree with you personally, Struts uses a different versioning
approach, similar to the one used by Tomcat and HTTPD. Basically, each
"test build" gets a version. After the "test build" is created, the
community votes on its quality. Furthermore, a test build could be
voted on twice - once as beta than again as GA if no issues have been
found. We should do a better job of explaining this system on the
download page.
https://issues.apache.org/struts/browse/SITE-19
3. The documentation for Struts 2 contains references to zero
configuration and the web.xml configuration file also contains this
stuff. There are also a number of references to all the annotations.
These are not available in the 2.0.1BETA JAR files and therefore I had
a hard time using them ;) I did find them in the nightly snapshots,
which aren't functional. I would keep the documentation inline with
the latest beta and not the latest nightly snapshot. Anyone who wants
bleeding edge will be willing to look at the source to see new stuff
or build the latest snapshot docs themselves.
Good idea. We should do a better job of archiving release documentation.
https://issues.apache.org/struts/browse/SITE-8
4. The tutorials reference a hybrid of WebWork 2 configuration,
classes, tags and files and Struts2 configuration and files. This
would definitely be confusing for a newcomer. I would probably keep
the tutorials using only struts2 configuration, classes, tags and
files since that is what the latest beta release uses. I would in turn
direct folks to the WebWork wiki for running WebWork 2 if they don't
want to use the BETA release.
https://issues.apache.org/struts/browse/WW-1719
5. There is really no getting started document for Struts2. It would
be a bit of a stumbling block for a newcomer to have various JAR files
in the distribution without any clue on which to use or what the
'struts2-all' jar contains. There should be a true Struts2 getting
started document that contains a complete step by step to getting an
application running. This could start with the CRUD made easy tutorial
for WW2 and make it more complete for Struts2.
We do have a bootstrap tutorial which covers this. Is there a better
way we could highlight it?
6. From the guide perspective, it is very difficult to figure out how
to write actions. This information is buried in the Struts
Configuration Elements guide and in the Action Configuration guide
under that. In fact many of the top level and nested guides are a bit
confusing and don't necessarily follow the standard path developers
will take when getting started as well as when trying new things. The
top level components should be items will be working on when building
an application such as AJAX, Actions, Validation, etc. rather than
items like "Struts Configuration Elements" Under these headings would
be the configuration, the code, the interfaces, examples, etc. This
will be how most folks are going to be using Struts2. They'll be
creating an action, adding validation, handling action results, adding
interceptors, etc. There are a number of guides that are on the right
track.
I'm open to a reorganization of the documentation. If you'd like to
help out, file a Contributor License Agreement -
http://apache.org/licenses/cla.txt - and I'll give you access.
7. I had a bit of trouble figuring out how to grab the code because
the link is on the main Struts page. Adding a link to the Struts2 page
will help a lot.
I didn't follow this one. Do you mean we need a better download link on
the Struts 2 page?
8. Running the unit tests from the subversion repository causes out of
memory errors on my machine using the standard 16M of memory that
maven defaults to run with. I found that after the tests had run it
required almost 150M of memory to run the tests. I gave maven 512M,
but this was a stumbling block. This seems like a rather incorrect
behavior for tests since after each test there should be very little
on the heap. Is there a memory leak or some reason very large objects
are hanging about?
Yeah, there must be a memory leak somewhere.
https://issues.apache.org/struts/browse/WW-1720
9. This is a bit nit picky.... The current code in subversion is
broken therefore I was unable to run from sources. One of the things I
really like about many frameworks I've worked with and coded on was
the fact that a clean checkout was almost guaranteed to compile, test
and run. This helps a lot for folks that want the bleeding edge and to
start contributing.
Doh, yeah, this one is rather embarassing. We usually do a pretty good
job and keeping the build running smoothly but apprently it isn't at the
moment. We have a continuous integration server, Bamboo, that runs our
builds, but it wasn't set to notify the list on failures. We are in the
process of configuring it to send notifications and the list to accept them.
As I said before, I really appreciate the time and effort that went into
this analysis. The tickets should be a good way to ensure the issue is
resolved in some manner, but as always, if you'd like to jump in and
help, feel free to attach patches and/or suggestions on fixes. Matt
Raible mentioned Appfuse 2.0 in half-jest, but if you are looking for an
easy way to get started with Struts 2, I'd recommend taking a look at it.
Thanks again,
Don
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]