-
Notifications
You must be signed in to change notification settings - Fork 18
Tarbell 0.9 Release Roadmap
The core Tarbell templating and publishing components have been relatively stable for the better part of a year. However, to reach a 1.0 release, some major architectural work is needed. The 0.9 release (October, 2013) will be the next step towards a 1.0 release (end of 2013/early 2014).
- One-liner installer script for OS X and Ubuntu. (Must have) #6
- Friendly starter template with integrated, interactive docs. (Interactive docs: Nice to have; templates: Must have)
- Allow reliable publication to arbitrary paths (e.g.
/sports/bears/special-feature-about-bears
). CurrentURL_ROOT
directive is primitive and not thoroughly tested. (Must have) -
tarbell
command: A command to create, manage and publish projects. (Must have) - Branch-based workflow: Use one branch per project. (Must have)
- Rethink base template architecture: The current base template should become more of a dependency system. Base assets and templates should be mounted under current project directory and can be directly overridden with templates/assets of the same name in the project's 'static' dir. (Must have in some form) Flask-Tarbell #2
- Custom routes: Allow static publication of custom routes under the root dir. (Nice to have) #26
- Use s3cmd for s3 deployment: Allow automatic asset deletion and faster syncing (allow per-project override settings). (Nice to have)
- Upgrade to Bootstrap 3 (Arguably nice to have)
- Javascript: Move to Bootstrap-like component architecture (jQuery plugins that read
data-
attributes) - Destroy templates / static distinction, run all text files through Jinja... carefully, e.g. potentially using
<%= ... %>
-style markers for Javascript. (Very nice to have) Flask-Tarbell #1 - Design/front end development user testing (Must have)
- Deployment / development user testing (Must have)
- Automated testing (Must have)
- Project linting/checking on publication (Very nice to have)
- Use Drive API consistently (Nice to have) #22
Display project name only in preview server or display full path ex. news/local/project-name?
- Opening screen should by type focused or a single dominant image, not both. Using a drop cap can create the visual drama a half size photo cannot.
- I completely agree with the phone first model. Phone version doesn't and shouldn't have to include all the story assets, but should incorporate more sophisticated elements on larger break points. What about media query to add and subtract contact, leaving a link to a free standing page if the content doesn't fit with the page? Ex. dropping a large image in favor of a head and deck and linking to a photo gallery
- Reduce project size
- Share buttons after the byline are a good alternative to the header --- Add to base template
- Add credits to templates
- I'd like to tear up the way we do landing pages in general in favor of developing a universal design that accounts for:
- Title design
- Introduction/abstract
- Dominant visual - Image, visualization (subject of the story(s))
- Advertisement
- Initial stories
- Background content (about the reporting, basic visual explainer of topics)
- Place for updates
- Users guide -- trouble shooting > training
Freeze current version in 0.8 branch. Next version is 0.9
New command:
$ tarbell unpublish
$ tarbell switch
: I'm a little confused by some of the commands. Isn't this the same as Git legit? Are we not using git? Activate virtual env, change directory, restart the server. (This is outlined below...)
Ask what template to set as index.html with $ tarbell create : ex. I'm making a story page, can I have a story page template be my index.html (TODO Turn into newtemplate command)
$ tarbell newtemplate: Create a new template in the project's "templates" directory. Should ask what to name the file and what type of template, story page, graphic, photo(gallery), landing page.
Variable in the Google spreadsheet that must be filled out to publish. (Kill switch!)
Fail safe to keep a project from publishing without changing the headline, deck, byline or any other content that comes with a template. Give report of what's missing -- Check string > built into publishing -- check add paths (Can we try the kill switch and do this in a later iteration if it's not enough -- @eads)
When publishing to staging are there any validator type tools we can automatically run to tip a developer off to a potential error? -- Built into publishing
Add resources to launch page - W3S, Moz, bootstrap docs
Add browser stack to testing
Automated test for base template -- page load time, console errors, regressions
Uses ~/.tarbell
configuration file to set up default directories -- this file will be created by the install script.
If the user is in a Tarbell directory, the current parent will be used. If not, the default directory specified in the configuration file will be used. (@TODO: Perhaps all site-specific commands can take an optional site argument and offer an error if no site has been created).
Create a new site based on a git repository (by default, Chicago Tribune News Apps open source template will be used). By default, the command will prompt for a directory. If a target directory is specified, it will be used.
$ tarbell newsite https://github.com/newsapps/tarbell-template
What domain do you plan to publish to? (e.g. http://apps.chicagotribune.com)
[Required]: projects.mydomain.tld
Where would you like to install `tarbell-template`?
[Default: /home/eads/Repos/projects.mydomain.tld]
Installing `tarbell-template` in /home/eads/Repos/projects.mydomain.tld
...
Done!
Would you like to set up Amazon S3 publication now? [y/N] Y
Awesome!
What's your production bucket (e.g. projects.mydomain.tld)?
What's your staging bucket (e.g. beta.projects.mydomain.tld)?
What's your Amazon S3 access key ID?
What's your Amazon S3 access key?
Aliases: tarbell create <projectname>
Create a new Tarbell project that uses optional directory name <projectname>
.
$ tarbell create
@TODO stuff related to create
Aliases: tarbell projects
List projects.
$ tarbell list
Use `tarbell switch <projectname>` to work on a project.
under-the-gun Under the Gun /news/local/crime/under-the-gun Last update 12-01-2012 @ 10:00am by Heather Billings
democracy-denied Democracy Denied /news/local/politics/democracy-denied Last update 01-17-2013 @ 01:32pm by Jen Lindner
hadiyas-friends Hadiya's Friends /news/local/crime/hadiyas-friends Last update 01-16-2013 @ 09:05am by Alex Bordens
school-utilization School Utilization /news/local/education/school-utilization Last update 01-19-2013 @ 11:15am by Abe Epton
Aliases: tarbell workon <projectname (required)>
Use the switch
command to work on an existing project. By default, this command activates the default virtual environment and runs a local preview server.
Flags:
--no-env
: Don't activate Python virtualenv.
--no-server
: Don't run preview server.
$ tarbell switch hadiyas-friends
You are now working on "Hadiya's Friends". To preview this site, visit
http://localhost:5000/
To stop the development server, run
tarbell stop
Publish to staging:
tarbell publish
Publish to production:
tarbell publish -t production
(hadiyas-friends) $
Conflicting projects
$ tarbell switch gamechangers
Project `gamechangers` exists in:
[1] /home/eads/Repos/apps.chicagotribune.com
[2] /home/user/Code/mysite.com
Which project would you like to switch to? [1]
No project
$ tarbell switch truancy
Project 'truancy' does not exist. To create a new project with this name, run:
tarbell newproject truancy
Manually run a Tarbell preview server. Defaults to parent directory or local config.
No project
(litfest) $ tarbell serve
Running Tarbell preview server for "Lit Fest 2013". To preview this site, visit
http://localhost:5000/
To stop the server, run
tarbell stop
Improve the project by editing the files in </path/to/project>.
Project specified
$ tarbell serve --project elections-general-2013
Running Tarbell preview server for "2013 General Elections". To preview this site, visit
http://localhost:5000/
To stop the server, run
tarbell stop
Improve the project by editing the files in </path/to/project>.
Error
$ tarbell serve
No active project. Work on a new project with `tarbell switch <projectname>`
or specify a project with the `--project` flag.
Stop the currently running server.
(hadiyas-friends) $ tarbell stop
Stopping preview server for "Hadiya's Friends"...
Done!
Error
$ tarbell stop
No server running. Oh well!
Update the current project with any base updates.
(hadiyas-friends) $ tarbell update
This command will update your current project's dependencies to their latest versions.
Here are the outstanding changes:
v1.01: Fix bug in navigation, upgrade to Flask-Tarbell v1.1.
v1.02: Update Google analytics component to use spreadsheet variables.
Would you like to continue (y/N):
Merging base changes...
Installing new requirements....
It worked! Your project is up to date.
Error
$ tarbell update
No project specified. To work on a project, run:
tarbell switch <projectname>
To list available projects, run:
tarbell list
Publish a project to Amazon S3.
Basic
(democracy-denied) $ tarbell publish
This will publish "Democracy Denied" to Staging at:
http://apps.beta.tribapps.com/news/local/democracy-denied
Do you want to continue (y/N):
Rendering HTML...
Uploading to Amazon S3...
Done!
Specify target
(democracy-denied) $ tarbell publish --target production
This will publish "Democracy Denied" to Production at:
http://apps.tribapps.com/news/local/democracy-denied
Do you want to continue (y/N):
Rendering HTML...
Uploading to Amazon S3...
Done!
Specify project and target
$ tarbell publish --project restaurant_app --target restaurant_production
This will publish "Chicago Tribune Restaurant Reviews" to Restaurant Production at:
http://restaurants.chicagotribune.com/entertainment/dining/reviews
Do you want to continue (y/N):
Rendering HTML...
Uploading to Amazon S3...
Done!
Delete a project from the specified target.
Specify target
(gamechangers) $ tarbell unpublish --target production
This will remove "Game Changers" from Production at:
http://apps.chicagotribune.com/sports/hawks/gamechangers
Do you want to continue (y/N):
Deleting files...
Done!
Specify project and target
$ tarbell unpublish --project under-the-gun --target staging
This will remove "Under The Gun" from Staging at:
http://apps.beta.tribapps.com/news/local/under-the-gun
Do you want to continue (y/N):
Deleting files...
Done!
Deactivate a project.
(rabies) $ tarbell deactivate
No longer working on a Tarbell project.
$