Giter VIP home page Giter VIP logo

thunderbird-website's Introduction

thunderbird-website

This repo contains the Thunderbird in-client Start page and the www.thunderbird.net website.

Build Instructions

Dependencies

On Ubuntu, you would need to use apt-get instead of yum, and similarly for different package managers.

pip install -r requirements-dev.txt
git clone https://github.com/thunderbird/thunderbird-notes.git libs/thunderbird_notes
git clone -b production https://github.com/mozilla-releng/product-details.git libs/product-details
sudo yum install npm
sudo npm install -g less

If you need the localizations to display pages translated from English into other languages:

git clone https://github.com/thunderbird/thunderbird.net-l10n.git libs/locale
l10n_tools/compile.sh

Run Build

A basic build is python build-site.py. It builds www.thunderbird.net into the thunderbird.net directory by default.

There are additional arguments:

  • --startpage

    • This builds the start page into the site directory.
  • --enus

    • This restricts builds to only the 'en-US' locale, for faster testing.
  • --debug

    • This logs output for each locale built and some of the templates, used to make debugging easier.
  • --watch

    • This starts an HTTP server on localhost port 8000, and watches the template and assets folders for changes and then does quick rebuilds.
    • Note that this only rebuilds when you modify a file. To add or remove files, you should start a new build.
  • --port

    • Sets the port to be used for the localhost server. Default is 8000. Format: --port 8000.
  • --buildcalendar

    • This builds the holiday calendars. Normally this will build every locale, but you can restrict the build to just US by using the --enus options.
  • thunderbird.net templates are in the sites/www.thunderbird.net directory, and start page in the sites/start.thunderbird.net dir. Assets are shared and in the assets dir.

View Website

To view the website for testing purposes, run python build-site.py --watch. This also works with the start page.

You can then navigate to: http://127.0.0.1:8000 to view the website. None of the apache redirects work in this mode, so you have to click your desired locale manually in the browser, but the site should behave normally after that.

Automated Builds

In general, you only need to manually build the website for testing and development purposes. Webhooks on each of the repositories trigger automatic rebuilds when:

Both of these update frequently enough(multiple times per week) that independent updates for localization are not necessary. Any triggered update will always use the most recent data available from all sources. If changes to one of the above repos don't produce any change in the built files, no actual update of the web server will occur.

Manual Site Updates

Occasionally you need to update the site manually, for example to move changes made to this repo to stage and production, or because the automation failed, or any reason like that. You'll need to either login to the control node as described in the https://github.com/thunderbird/thundernest-ansible documentation or check out and setup the thundernest-ansible scripts on your local machine. That is also covered in the documentation for thundernest-ansible.

Assuming you are logged into the control node or have thundernest-ansible set up:

For stage:

cd thundernest-ansible
source files/secrets.sh
ansible-playbook plays/website-build.yml

For prod:

cd thundernest-ansible
source files/secrets.sh
ansible-playbook --extra-vars="branch=prod" plays/website-build.yml

The website-build.yml ansible script performs complete builds of the website, including both the start page and thunderbird.net itself.

Localization

For Contributors

You can contribute to content translation of www.thunderbird.net pages using Pontoon.

For Developers

Most paths under /thunderbird path aren't localized. There's an override setting named ALWAYS_LOCALIZE that allows specific paths to be forwarded to the users locale.

Donation FAQ

Donation FAQ entries are found in sites/www.thunderbird.net/includes/faq.html.

Tests

There are several pytests located in ./tests. To run the full test-suite, simply use the command python3 -m pytest.

Calendar Generation

Calendar generation can be manually built by appending the option--buildcalendar. This queries our current calendar provider (Calendarific) and generates a .ics file per each locale specified in settings.py. For testing, you can limit this to just US by using the option --enus. This option requires setting the CALENDARIFIC_API_KEY= environment variable. If you're using a paid plan you can also set CALENDARIFIC_IS_FREE_TIER=false to remove the sleep time between calls.

thunderbird-website's People

Contributors

a42a avatar alecaddd avatar astrot1988 avatar atouchet avatar babolivier avatar bogomil avatar boyd25 avatar chiak597 avatar dependabot[bot] avatar freaktechnik avatar jfx2006 avatar justdave avatar kaie avatar killyourfm avatar melissaautumn avatar micahilbery avatar mik2 avatar mkmelin avatar mojo-hakase avatar mschroeder avatar pols12 avatar pyup-bot avatar rcmainak avatar ryanleesipes avatar sancus avatar sebastianlay avatar smmr0 avatar thomasd8 avatar thundernest-bot avatar tozo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thunderbird-website's Issues

Documentation, What we need and where it should live.

This is more of a meta bug for the website. As it relates to Thunderbird's web presence, but does not necessarily mean what we detail here will live on the website.

As per #28 - it appears as though we need to determine, more in-depth, what documentation is useful to contributors and where it should live. Right now we have the Wiki as well as MDN. I'd like to propose we have a discussion as to what it missing or hard to find currently, as well as the state of our existing documentation. And whether it should all remain where it is or be migrated.

Also related is @jerrac's Discourse post on Communication and Documentation: https://discourse.mozilla.org/t/consolidating-documentation-and-communication/27849/2

Putting this here so we can implement #28, and then carry on with the ancillary work detailed above.

Separate rendering code by template

We could write 'views' that separate the rendering code for each template, modifying env._env.globals['gettext'].self.langfiles and so on.

Started writing this, git stashed.

`pip install requirements.txt`, `python build-start.py`, `python build-site.py` all fail

I cloned the master branch so I could see what it would look like if I tried to contribute anything to it. Unfortunately, I can't get it to build.

$ pip install requirements.txt 
Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt

I ran into that, so I manually ran pip install commands for each item in requirements.txt.

After that:

$ python build-start.py 
Traceback (most recent call last):
  File "build-start.py", line 1, in <module>
    from staticjinja import make_site
ImportError: No module named staticjinja

and

$ python build-site.py 
Traceback (most recent call last):
  File "build-site.py", line 2, in <module>
    import helper
  File "/home/user/dev/sites/thunderbird-website/helper.py", line 3, in <module>
    import markdown
ImportError: No module named markdown

pip reported that both staticjinja and markdown were already installed when I tried manually installing them.

This is on Ubuntu 16.04.

Any suggestions?

Release Notes

Need to add release notes functionality, and system requirements templates.

Load Assets?

When I build and open up the index.html in thunderbird.net (for the website), it loads without assets! Is there anyway to fix this?

Update screenshots

With the release of Thunderbird 60, could you please add Thunderbird screenshots at the official Thunderbird website at:
https://www.thunderbird.net/
?

For an example, LibreOffice has screenshots at:
https://www.libreoffice.org/ β†’ Discover β†’ Screenshots
https://www.libreoffice.org/discover/screenshots/

This may be helpful for marketing Thunderbird 60 as journals can write articles which display current screenshots.

Another benefit is that the screenshots could be used in software repositories. For example:
https://flathub.org/apps/details/org.mozilla.Thunderbird
Code which is available at:
https://github.com/flathub/org.mozilla.Thunderbird/blob/master/org.mozilla.Thunderbird.appdata.xml

Thunderbird user interface will be updated with the release of version 60.0:
https://www-stage.thunderbird.net/thunderbird/60.0/releasenotes/

Thank you

installing requirements for start page fails: In --require-hashes mode, all requirements must have their versions pinned with ==

Setting up to build the start page I get

pip install -r requirements.txt

In --require-hashes mode, all requirements must have their versions pinned with ==. These do not:
setuptools from https://files.pythonhosted.org/packages/ff/f4/385715ccc461885f3cedf57a41ae3c12b5fec3f35cce4c8706b1a112a133/setuptools-40.0.0-py2.py3-none-any.whl#sha256=d68abee4eed409fbe8c302ac4d8429a1ffef912cd047a903b5701c024048dd49 (from icalendar==3.8.3->-r requirements.txt (line 28))

Initial Update

Hi πŸ‘Š

This is my first visit to this fine repo, but it seems you have been working hard to keep all dependencies updated so far.

Once you have closed this issue, I'll create separate pull requests for every update as soon as I find one.

That's it for now!

Happy merging! πŸ€–

Add Donate Button to top-right, and Social Media Icons

We should add a donate button to the top right corner and social media buttons to replace the current text list of Mozilla and Thunderbird's in the bottom right. In fact, I don't see why we don't just remove the Mozilla ones for now, it makes it difficult to separate the brand from Mozilla proper, which is a problem currently.

website wireframe tb

Dependencies failure

Hello,

As mentioned in a previous issue #31 about the new website redesign we at Ura are doing for Thunderbird, we have met some blockers along the way.

After following the steps as illustrated in the README file, I am getting errors such as:
Can't verify hashes for these requirements because we don't have a way to hash version control repositories:

Because of this, I can't continue building it locally to make the required changes. Can you please guide us to a solution?

System info: Thinkpad T420, Fedora 28 XFCE

Analytics on the Website?

Anyone really opposed to this? It would be nice to get some data on how much the website is being visited and by whom.

{{ current_year }} missing in website footer

On the website, the current year is not placed in the footer. This results in the sentence "Portions of this content are Β©1998– by individual mozilla.org contributors. "

Replace existing Earlybird Start Page with text informing users to migrate off Aurora channel to another channel

Aurora is dead, and we don't plan to auto-migrate them. Users should move to beta or release channel.

We don't need the old text. A simple, short paragraph in big bold letters with just a couple download links, with a nasty background color. Not worth localizing IMO, but we might include the text translated in a couple of the big languages - German, Spanish, etc.

Reference https://bugzilla.mozilla.org/show_bug.cgi?id=1366893

Languages writes

We need to do Accept-Language rewrites from non-lang urls like /thunderbird/ as opposed to /en-US/thunderbird.

Website Redesign

(bringing this conversation from the Job Post @ryanleesipes posted on Open Source Design opensourcedesign/jobs#297 )

After talking with Ryan and the next steps for a potential refresh of the Thunderbird website,
@AnXh3L0 and me started a redesign of the Thunderbird website and this is how it looks right now as a mockup:

image

We would be happy to receive your feedback on the design and do changes where necessary.

Additionally, @AnXh3L0 had some CSS problems with the current site when he tried to do changes. Is there anything we need to keep in mind when working on the CSS? (sorry for the vague definitions, I'm no web developer)

A/B Testing for Start Page

Sancus, Magnus,

What is the best method to set up A/B testing for the start page? I feel like it would be most beneficial if we could test various wording around donations and see what sticks.

Let me know what you think.

Don't store built site in git.

We should probably just generate the website and store it on the web servers only, because commits and merging of the built files is turning into a mess.

Can we Incorporate Bootstrap into Start Page?

Currently I'm working on updating the start page, but it seems as though we don't have as much control over how content appears as I'd like. I was looking at how the CSS is compiled from less. I was curious as to how hard it would be to implement bootstrap into the website, and how this would properly be done? If it is as trivial as just dropping the css file in as a dependency that's great. Please advise.

[Feature Request] Add a "Get Involved" section

Could you add a Get Involved section in the main navigation?

It would be a page, or pages, that contain (or link to) the following information:

  • Where to get the Thunderbird code
  • How to start developing for Thunderbird
  • Where to get help with development problems
  • Where to initiate discussions about new features.
  • A summary of all the ways you can communicate with/about Thunderbird

I, personally, like how LibreOffice did it.

Location of JS code

Maybe a stupid question, but I can only find the minified/uglified javascript sources. Arent there any sources file for them here? Cheers, V

lang selector shouldn't redirect to front page

Right now the lang selector has a form with action set to redirect to front page, just because this was simplest and getting it to actually work correctly on a static site was difficult.

To function properly, it should keep you on the same page you were on when you change languages. This isn't high priority.

Enable Wiki on this Repo

@Sancus can you enable the wiki on this repo? I think that for folks like myself and new contributors it would be nice to have a place to detail where files are and what they do.

Improve Channel page for beta

  • Remove "Earlybird or" - it no longer exists
  • Shorten the verbose "and be one of the first to try the newest features in the next version of Thunderbird". Perhaps "to try the newest features."
  • Maybe put a link in "Provide feedback" - but to where? :)

What else can we improve?

Note, this page is localized so we will want to do this well once and then leave it alone.

Add documentation about where to get latest build ppa

I just read that Thunderbird 54 supports matrix.org - but I can not find a way to install it on Ubuntu 16.04. The website does not provide any hint about a way to install newer releases. I can find lots of (outdated) information about several ppa and other sources, but I would like to read that kind of info on the official thunderbird site.

Thank you very much for your attention!

for pip install -r requirements.txt, getting THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes.

Trying to set up the website locally I get this:

pip install -r requirements.txt
Collecting staticjinja from https://github.com/Ceasar/staticjinja/archive/3476a3977a5dc67b24cd6a9eff874e2cfbc1d35d.tar.gz#egg=staticjinja (from -r requirements.txt (line 1))
Downloading https://github.com/Ceasar/staticjinja/archive/3476a3977a5dc67b24cd6a9eff874e2cfbc1d35d.tar.gz
Collecting Jinja2==2.10 (from -r requirements.txt (line 3))
Using cached https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl
Collecting webassets==0.12.1 (from -r requirements.txt (line 6))
Using cached https://files.pythonhosted.org/packages/9a/35/d86c6d3bd31e2e9c8351c8766ef3688c75d56bc5233ed49061e522efc3cc/webassets-0.12.1.tar.gz
Collecting babel==2.6.0 (from -r requirements.txt (line 8))
Using cached https://files.pythonhosted.org/packages/b8/ad/c6f60602d3ee3d92fbed87675b6fb6a6f9a38c223343ababdb44ba201f10/Babel-2.6.0-py2.py3-none-any.whl
Collecting webob==1.7.3 (from -r requirements.txt (line 11))
Using cached https://files.pythonhosted.org/packages/40/4a/893f8ee79460865f5bafb8a8fa90cbc5b099585cedbe9179c83511aab319/WebOb-1.7.3-py2.py3-none-any.whl
Collecting python-dateutil==2.6.0 (from -r requirements.txt (line 13))
Using cached https://files.pythonhosted.org/packages/40/8b/275015d7a9ec293cf1bbf55433258fbc9d0711890a7f6dc538bac7b86bce/python_dateutil-2.6.0-py2.py3-none-any.whl
Collecting markdown==2.6.8 (from -r requirements.txt (line 16))
Using cached https://files.pythonhosted.org/packages/1d/25/3f6d2cb31ec42ca5bd3bfbea99b63892b735d76e26f20dd2dcc34ffe4f0d/Markdown-2.6.8.tar.gz
Collecting polib==1.1.0 (from -r requirements.txt (line 18))
Using cached https://files.pythonhosted.org/packages/30/a2/e407c3b00cace3d7fc8df14d364deeecfeb96044e1a317de583bc26eae58/polib-1.1.0-py2.py3-none-any.whl
Collecting icalendar==3.8.3 (from -r requirements.txt (line 20))
Using cached https://files.pythonhosted.org/packages/f4/98/6d24c45dbeae0010d8fbe9cb9393d11b8439147e8a46d1c1c4790ff088e8/icalendar-3.8.3.tar.gz
Collecting docopt (from staticjinja->-r requirements.txt (line 1))
Collecting easywatch (from staticjinja->-r requirements.txt (line 1))
Collecting MarkupSafe>=0.23 (from Jinja2==2.10->-r requirements.txt (line 3))
Collecting pytz>=0a (from babel==2.6.0->-r requirements.txt (line 8))
Requirement already satisfied: setuptools in /home/magnus/.local/lib/python2.7/site-packages (from icalendar==3.8.3->-r requirements.txt (line 20)) (19.4)
In --require-hashes mode, all requirements must have their versions pinned with ==. These do not:
docopt from https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz#sha256=49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491 (from staticjinja->-r requirements.txt (line 1))
easywatch from https://files.pythonhosted.org/packages/0c/12/986a41d59e4d4512536b78999a21283aff5692a6c9bfb412fab7a32ecd8d/easywatch-0.0.3.tar.gz#sha256=79f4edbaef815d0b3692a12f37c95f54b33c87570b741053f6dc9531976f71d1 (from staticjinja->-r requirements.txt (line 1))
MarkupSafe>=0.23 from https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz#sha256=a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665 (from Jinja2==2.10->-r requirements.txt (line 3))
pytz>=0a from https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl#sha256=a061aa0a9e06881eb8b3b2b43f05b9439d6583c206d0a6c340ff72a7b6669053 (from babel==2.6.0->-r requirements.txt (line 8))
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
python-dateutil==2.6.0 from https://files.pythonhosted.org/packages/40/8b/275015d7a9ec293cf1bbf55433258fbc9d0711890a7f6dc538bac7b86bce/python_dateutil-2.6.0-py2.py3-none-any.whl#sha256=537bf2a8f8ce6f6862ad705cd68f9e405c0b5db014aa40fa29eab4335d4b1716 (from -r requirements.txt (line 13)):
Expected sha256 1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0
Expected or 832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb
Got 537bf2a8f8ce6f6862ad705cd68f9e405c0b5db014aa40fa29eab4335d4b1716

Download Daily Page

We should add this to the channel page or give it its own.

If we don't want it on either of those, we could give it an entry on the Get Involved page.

redirect to donations page missing the "force download" functionality

Since #40, there is no longer any "In case your download didn't begin, click here" functionality.

It shouldn't really open a new window (tab) either... we need to fix that.

There's an number of people writing to the donation support following this change. They do not realize the download started - or do not understand how to download since all they get is the donate request page. The page should say that download began etc...

One of the reports is from a blind user who can no longer download - just to keep in mind that opening a new window/tab and then not telling the user what's happening may be confusing especially for certain groups and less tech-savy users.

Create About page explaining who owns/manages Thunderbird, and relationship to Mozilla

We sometimes come across both users and contributors who say something like "I thought Thunderbird was dead" or in my latest experience "is Mozilla planning on keeping Thunderbird? I remember a while ago they were looking to dump Thunderbird and give it to some other open source organization"

I looked for a page that explains who owns Thunderbird, what the council is, and what the relationship between Thunderbird and Mozilla is, but I couldn't find anything. The closest was this blog post.

I was thinking of creating a support article for it, but I think it would be more appropriate on thunderbird.net.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.