Hi
On 23.03.2014 03:19, Jake Farrell wrote:
Hey Joe
Reviewing the staging site it looks like its almost 99% there other than
some styling within the code snippets. I'm good if we want to cut over to
using this and then work on the additional features that had been mentioned
afterwords. Any objections to cutting over?
I would really like to see this automatic README.md includes from source
tree, to have a real additional feature beside of what we already have
today.
I'm absolutely with you.
Apache projects shall use other Apache projects whenever possible.
On Sat, Mar 22, 2014 at 4:36 PM, Joe Schaefer <joe_schae...@yahoo.com>wrote:
May I suggest a script that creates files in content/
containing a single line
[snippet:path=...]
this sounds like a plan
(with no 'lang' argument) that lets the CMS pull raw content from
thrift.git
and add it directly to the built pages. That way you only need to run the
script that generates these files when a path changes in your thrift.git
repo.
What I had in mind is a automatic search of README.md files across the
source tree and generate the site with these automatically.
Kind of a central controller that maps all the URL's.
no additional work when a new README.md file is added.
however, a script can do this as interim soultion.
You can commit directly to the cms svn tree or via the webgui which does
the same thing.
Great!
What about local preview when doing perl modifications?
-roger
On Saturday, March 22, 2014 4:20 PM, Roger Meier <
ro...@bufferoverflow.ch> wrote:
I still see some issues and still miss to feature mentioned.
Now we have nonoc.ws and I'm able to hack this a bit.
We had no real big issue, the thing I missed was the code snippet thing
and this is in on nanoc.ws and now also on Apache CMS.
The thing we really need is the documentation located within source code
integrated on the web site.
most hosting platforms do render README.md and that's why lot of doc
will stay within the code and we should benefit as well by rendering
that to the web site and enhance the documentation very easily.
I would like to render the 41 README.md files to with the following
pattern, that's a must have before switching to another CMS.
test/README.md => thrift.apache.org/test
test/STATUS.md => thrift.apache.org/test/status
test/keys/README.md => thrift.apache.org/test/keys
lib/<lang>/README.md => thrift.apache.org/lib/<lang>
lib/<lang>/test/README.md => thrift.apache.org/lib/<lang>/test
lib/<lang>/examples/README.md =>
thrift.apache.org/lib/<lang>/examples
compiler/cpp/README.md => thrift.apache.org/compiler
debian/README.md => thrift.apache.org/debian
contrib/<topic>/README.md => thrift.apache.org/<topic>
CPP tutorial seems to be broken on staging.
Do you commit to https://svn.apache.org/repos/asf/thrift/cms-site/trunk
or is it web gui only?
How do you generate the site on your local machine?
Should I reactivate my perl or do we stay with ruby?
Committers and contributors, what do you think?
all the best
-roger
On 22.03.2014 18:07, Joe Schaefer wrote:
Ok I've now done the basic necessities involved in porting
the site over. Links have been adjusted, templates ported, files
created,
snippet feature activated. At this point I'm happy to declare
victory and migrate the thrift live site over, as anything broken that
still remains can be dealt with on a per-page basis with the
bookmarklet.
On Thursday, March 20, 2014 11:19 AM, Joe Schaefer
<joe_schae...@yahoo.com> wrote:
Modulo some bizarre content truncation out of git-wip-us.apache.org
the snippet support is now active. At this point I think all the build
support you need in this project to support every type of
brainstorming
activity we've discussed is now there, so it's just up to you
guys to
now familiarize yourselves with the build technology and how to apply
it to your needs. The site builds with snippet support are running
around
10 seconds, which is to be expected with the network interactions
involved.
I'm always willing to answer any questions that come up in the
interim,
but I wish you guys the best of luck in the remaining porting work to
be done.
All I see really are some links that need to have the trailing slashes
removed
and whatever <%= %> template constructs that remain need to be
ported to
django. So it should be smooth sailing, but as I said if you hit any
snags
holler. I'd really like to see the live site tech switched over to
the cms
stuff before Apachecon ends in early April, hint hint.
On Wednesday, March 19, 2014 10:41 PM, Joe Schaefer
<joe_schae...@yahoo.com> wrote:
> While I don't yet know the url magic to support branches
and tags
in git,
I can say that the snippet support is ready to play with. I
suggest just
focusing on the /index.md page first to see how it works in
practice
because
once it's fully enabled the build will break until all the
snippet
sources
have been altered to conform with the new style.
To turn it on for index.md testing, there are a couple of things
that need
to
happen. First the [snippet:...] marker should be edited to be
[XXXsnippet:...]
to enable testing without breaking the build. Second each marker
contains
a
"token" argument instead of line numbers for more
stability under
edits to the source code. The token argument is an arbitrary
string that
is
used to denote the boundaries of the snippet within the source
code.
ASF::Value::Snippet will pull out the lines from the source file
between
the
lines that contain the token argument and format them as a code
snippet
embedded
into markdown. To get started I'll copy over the code
highlighting css
from
www.apache.org but note that this is all based on python pygments
and there
are
a variety of online css files to choose from if this one is not
to the
group's liking.
On Wednesday, March 19, 2014 4:16 PM, Joe Schaefer
<joe_schae...@yahoo.com> wrote:
> Sorry I need to clarify with an example: look at
http://thrift.staging.apache.org/tutorial/ versus
http://thrift.staging.apache.org/tutorial.html. The
former is generated from content/tutorial/index.html
and the latter from content/tutorial.md. The latter file
needs to be removed from the tree now that it's content
has been ported to content/tutorial/index.html. This
uses django template inheritance to maintain simplicity.
Other directories that follow a similar pattern should
also be ported in the same fashion.
On Wednesday, March 19, 2014 9:46 AM, Joe Schaefer
<joe_schae...@yahoo.com> wrote:
> If someone's looking for a way to help with
the porting
effort, consider tackling the creation of an index.html
page in each subdir of the content/ tree (other than
the
base which has an /index.md). The contents of the file
should be just
{% include 'default' %}
(see the docs dir for an example page that can be
copied)
and the build system will take care of generating the
page
in a consistent fashion with the rest of the site.
Once
that is done there are a lot of pages that function
like
index pages but are written in markdown that can be
deleted,
like docs.md and its ilk. Nanoc transforms that file
into
/docs/index.html but that's kinda crufty and not
supported
by the CMS, which only lets you alter file extensions
not paths.
On Wednesday, March 19, 2014 8:54 AM, Joe Schaefer
<joe_schae...@yahoo.com> wrote:
> I just pencilled in snippet preprocessing
support into
the thrift builds. Once Jake and I have settled
on the
feature set of ASF::Value::Snippet, and we have
ported
the snippet calling text within the markdown pages
to the new format, things will just work (knock on
wood).
On Wednesday, March 19, 2014 6:48 AM, Joseph
Schaefer
<joe_schae...@yahoo.com> wrote:
> Sure I understand that need. If
there's a way
of
pulling the
document
sources directly from the web I can parse the
content
to
look for
snippet
markers and make those available to the
template
system.
That's
pretty
much
how www.apache.org is generated.
Sent from my iPhone
On Mar 19, 2014, at 5:28 AM, Henrique
Mendonça
<henri...@apache.org>
wrote:
Hi Joe,
Thanks for your effort. I just wanted to
add that
the
code
snippets
are a
crucial feature for this project, which
has way
more
target
languages
than
active contributors. In our case,
reducing manual
maintenance
costs is
much
more important than the total site build
time.
Perhaps
we
can
also
solve
this in the CMS, though.
- Henrique
On 19 March 2014 03:17, Joe Schaefer
<joe_schae...@yahoo.com>
wrote:
A couple more thoughts regarding the
background on
the
CMS...
the bulk of the focus of the CMS up
until now
has
been
to
support really big sites like maven
and
openoffice,
both
of
which have websites well over 5GB
worth of
text
files.
The
build system was hollowed out and
revamped to
support
external
builds in other programming
languages, as well
as
scaling up
the perl builds to provide about 8
child
processes
that
build
the site in parallel by default.
Full site
build
times
for
openoffice went from over 30 minutes
to
between 5
to 10
minutes
depending on disk activity, which
made
experimentation
with
site-wide
changes feasible on a reasonable
timeframe.
At
first
the
project
was
in
the habit of running the builds
locally before
checking
in
their
changes
because the delay in feedback
post-commit was
unreasonable,
but
with
smart
use of SSI the were able to cut down
on the
number
of
changes
that
required
full site builds and hence no longer
bother
with
the
whole
pre-build
mumbo
jumbo before checking in changes.
The CMS is
designed
to
only
build
pages
that were altered, and if you just
edit a page
or
two
only
those
pages
and
the pages that depend on them will
be built.
Now that I've turned my
attention to
thrift,
there
are
several
aspects
that are better off being retuned
based on the
modest
size of
the
site.
First of all you have a sitemap url
that lists
all
of
your
markdown-based
pages, which would be a nonstarter
for a site
like
openoffice.
The
implications of the sitemap url are
that every
page
needs to
be
built
in
memory just to generate that page,
which leads
to a
lot
of
redundancy
in a
build system designed to run as
forked child
processes.
We
can do
better...
I've done two things to make
this work
well-
first I
made
the
number of
child processes "aka
runners"
tunable on
a
per-project
basis,
and since the
sitemap is going to build every page
anyway as
the
slowest
page to
build, I
memoized the main view that builds
the
markdown
pages
for
thrift.
The
best
results are when there's only
one runner
so we
get
the
full
benefit
of
memoization: typical site build
times are
consistently
under
2
seconds
now.
You'll appreciate why I am such
a
performance
stickler
for the
CMS
when
you start using the bookmarklet,
since builds
are
the
only
asynchronous
part of the process from making a
change to a
page
and
publishing
the
results. Ideally when the system is
working
well
the
builds
happen
before
you have time to go looking for
them, but you
do
need to
be
mindful of
not
publishing before the built pages
have been
committed
back to
svn
by
buildbot.
On Monday, March 17, 2014 11:59
PM, Joe
Schaefer
<joe_schae...@yahoo.com>
wrote:
Ok there's enough of an
idea about
how
to
port
the
rest of
the site's
pages over based on the porting
work
I've
already
done
that
it's time
for me to step back and let you
guys catch
up.
Basically
the
idea
is
that while
there is templating support in
the
markdown
sources,
it's
fairly limited
compared to what nanoc offers,
but instead
of
writing a
lot of
complex
template
code into your sources, with the
cms you
just
add
code to
lib/view.pmand/or
lib/path.pm to keep the document
sources
simple
and
just
add
more
template
variables. What I just finished
in
lib/view.pm
and
lib/path.pm is
directory
listing support for /docs.html
but it can
be
carried
over
to
similar
pages.
On Monday, March 17, 2014
9:16 PM, Joe
Schaefer
<joe_schae...@yahoo.com>
wrote:
Interesting ideas,
thanks. FWIW I
think
that
sort
of thing might be best
supported as a
periodic
cron
if we can write something
stable
enough,
because
pulling
stuff out of the git repo is
something
the
CMS
isn't
going
to do all that well being an
svn
application.
The CMS build results are
available at
http://thrift.staging.apache.org/
feel free to play with the
sources in
repos/asf/thrift/cms-site/trunk.
It's very fast, probably
an order
of
magnitude
faster
than
your current
tech.
Whole site builds in two
seconds;
fractions
of a
second
for
typical
mods to
content/ markdown pages.
The CMS bookmarklet is
compatible with
the
staging
site
FWIW.
On Monday, March 17,
2014 7:40
PM,
Roger
Meier
<ro...@bufferoverflow.ch> wrote:
Hi Joe & Co
thanks for this test
run with
Apache
CMS!
What I would love to
see is this:
Source file: => Web
Site URL:
test/README.md =>
thrift.apache.org/test
test/STATUS.md =>
thrift.apache.org/test/status
test/keys/README.md
=>
thrift.apache.org/test/keys
lib/<lang>/README.md =>
thrift.apache.org/lib/<lang>
lib/<lang>/test/README.md
=>
thrift.apache.org/lib/<lang>/test
lib/<lang>/examples/README.md
=>
thrift.apache.org/lib/<lang>/examples
compiler/cpp/README.md
=>
thrift.apache.org/compiler
debian/README.md =>
thrift.apache.org/debian
contrib/<topic>/README.md
=>
thrift.apache.org/<topic>
just made the following
patch to
rename all
file
to
.md
within our
source
tree:
https://issues.apache.org/jira/browse/THRIFT-2407
... we have *41*
md's within
the
source
tree
and
that's the
place
where
people look for
documentation
first.
=>
simple to
manage
Would be user friendly
to have
all of
this
online
with
each release
with the URL layout
mentioned
above.
just received the
buildboot...
Do you have kind of a
preview of
your
prototype?
all the best!
-roger
;-r
Quoting Jake Farrell
<jfarr...@apache.org>:
No objections from
me
-Jake
On Mon, Mar 17,
2014 at
12:04 PM,
Joe
Schaefer
<joe_schae...@yahoo.com>wrote:
Any objections
to me
making a
copy
of
the
site
tree alongside
it called
cms-site?
I'd
like
to
get cracking
on knocking
up
the
supporting
perl
for this so we
can
continue
to
brainstorm...
On Sunday,
March 16,
2014
1:53
PM,
Joe
Schaefer
<joe_schae...@yahoo.com>
wrote:
On
Sunday, March
16,
2014
1:40
PM,
Jake
Farrell
<jfarr...@apache.org>
wrote:
Hey Joe
Thanks
for
reaching
out, we
chose
to
go
with a site
generator
over the
Apache
CMS due to
it
initially
not
meeting
all of
our
needs.
Our current
needs
for the site
are
-
Markdown to html
conversion
That
one's easy-
its
the
default
for
the
cms.
- Global
variables/config
usable
throughout
in a
template
based layout
Easy too-
just create
a
perl
hash
somewhere and
make it
available
to
your views.
Code your
views to
pass
that
hash
along to
your
templates
and you
are
all set.
Note if your
hash
contains
objects
you can
make
method
calls
on
them in
your
templates.
Note:
while I
wouldn't
recommend this in
general,
for smaller
projects
like thrift
that
prefer
convenience
over
separation
of
concerns
you can
have the
django
template
engine
do a
pass
over
your
markdown
before
passing it
along to
your actual
template
page,
just
as is
seemingly
common to
other
popular
site
generation
software.
- Syntax
highlighting
Comes with
python's
markdown
support,
but
some
people
prefer
the look of
javascript
highlighters.
- Easily
include
code
snippets
from
our
source code
base
Statically I
hope. No
idea
how
to
pull
snippets out of
your
git
repo
via the
cms.
-
Ability to
locally
test
before
committing
Belt and
suspenders
with
the
cms- you
can
build
your
changes
before
committing
with the
build
scripts,
browse
your
changes
before
committing
via
the cms
webgui, or
simply
commit
your
changes
and
view
the
staging
site
prior to
live
publication
(which is
a
separate
step).
-Jake
On Sun,
Mar 16,
2014 at
12:44 PM,
Joe
Schaefer
<joe_schae...@yahoo.com>wrote:
As
it so
happens I
am
interested
in
working on
supporting
thrift's
use
case as
a
potential
user of
the
Apache
CMS.
While the CMS
works
well
for
massive
projects
there
are
things it
could do
better at
supporting
for
more
moderate
sized sites
like
thrift's.
I'd
therefore
like
to
engage
you
folks in a
brainstorming session
about what
sorts of
features
you
want
for your
site
and
to find
simple ways of
supporting
those
features for
you.
Thanks.