Git Product home page Git Product logo

kitsune's Introduction

Kitsune

Status Sustain

Kitsune is the platform that powers SuMo (support.mozilla.org)

Usage

It is a Django application. There is documentation online.

Releasing a new version

  • Create a signed tag for the new version.

    We are using semantic versioning.

    Given a version number MAJOR.MINOR.PATCH, increment the:

    MAJOR version when you make incompatible API changes
    MINOR version when you add functionality in a backward compatible manner
    PATCH version when you make backward compatible bug fixes
    

    Example:

    git tag -s 1.0.1 -m "Bump version: 1.0.0 to 1.0.1

  • Draft a new release in GitHub for the new tag. Document the highlights of the release and also use the option to automatically document the release through the commit history.

  • Trigger the release for the specified tag in the deploy repository.

Tip

You can access the staging site at https://support.allizom.org/.

Code of Conduct

By participating in this project, you're agreeing to uphold the Mozilla Community Participation Guidelines. If you need to report a problem, please see our Code of Conduct guide.

Contribute

See our contribution guide, or dive into setting up your development environment.

Issues

We use Bugzilla for submitting and prioritizing issues.

Thanks to all of our contributors ❤️

kitsune's People

Contributors

akatsoulas avatar anushbmx avatar atopal avatar benspaulding avatar berkerpeksag avatar brittanydionigi avatar dependabot[bot] avatar emilghittasv avatar erikrose avatar escattone avatar glogiotatidis avatar hannajones avatar jgmize avatar jpetto avatar kkellydesign avatar leomca avatar mikeconley avatar mikkcz avatar mythmon avatar pmac avatar pollti avatar rehandalal avatar rlr avatar safwanrahman avatar smileychris avatar smithellis avatar tgavankar avatar tobbi avatar willkg avatar ziegeer 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  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

kitsune's Issues

Fix search related tests

The ElasticSearch upgrade to V2 broke a number of tests.

Currently all search related tests are marked as search_tests and get skipped in the test runs with -a '!search_tests'.

This issue tracks the update / re-write of those tests to work with current infra.

See also #2931

12 Factorize App

We want to 12factorize Kitsune. Some progress has been made in the docker branch already on which we should build upon and complete this.

Remove TokenLogin Backend and Middleware

In settings.py there's a TokenLogin backend in addition to the Model Backend for authetication. It appears that since bug 921480 are not using this in production. According to the bug this was somehow related to Persona Authentication.

Since this is not in use in production, we don't need to have the code laying around. I'll remove from default settings and this issue tracks it's removal from code.

Create legacy branch for the SCL3 deployments

The SCL3 datacenter and the AWS/K8S codebases will diverge to reduce conflicts and increase development speed.

It's decided to copy master to legacy and keep the later for SCL3 based deployments. The master branch will remain the active development branch, targeting AWS/K8S.

  • Create legacy branch
  • Update README with details on the current branch status.

Dev app does not redirect correctly

The dev instance deployed at http://sumo-dev.frankfurt.moz.works does not redirect correctly.

STR:

This should be related to mozmeao/infra#540

My preference would be to have mozmeao/infra#540 fixed which will benefit all apps (and also has to be done for the new portland k8s cluster) but I'm open to other suggestions to unblock this.

/cc @pmac @jgmize @metadave

Use AWS SES to send email

This will help consolidate billing and monitoring, as well as potentially help address or debug some email issues we've seen in the past.

[Bug 1385135] Adding new material to and links for the Social Support Program

Page for get-involved would look like:
Help people on twitter and Facebook

Step 1: Link to Guidelines
Step 2: Sign up process - sumo account -> redirect to form created (keeping the twitter account and sumo account from army of awesome is ideal here)
Step 3: Link to Training article (includes tweetdeck, filters, contact info and moderators)

Links on other pages would remain the same
Dashboards would be removed.

Content in progress:
https://bugzilla.mozilla.org/show_bug.cgi?id=1385135

Add whitenoise and serve static files from the app

Add whitenoise to serve static files in the dev (and stage?) instances.

In production we'll probably go with another more efficient approach which is being investigated in #2949.

Whitenoise activation should be configurable via the ENABLE_WHITENOISE env variable.

Meta Issue For Docker Install On Mac

Parking lot for issues I am having getting the install running on mac.

docker-compose Version Not Supported

3.4 does not appear to be supported by the version of docker I have installed (Version 17.09.0-ce-mac35, no update available). 3.3 does work

Missing Install Docs

We don't have install docs for docker.

What I have done thus far...

  1. Change version in docker-compose file to 3.3
  2. Run docker-compose up
  3. Made and drank a cup of tea.
  4. Copy .env-dist to .env
  5. docker exec into kitsune container and run the following:
    • ./manage.py migrate
    • ./manage.py createsuperuser
    • ./manage.py generatedata

After the above got errors for all static content, example web_1 | ValueError: The file 'build/common-min.js' could not be found with <kitsune.sumo.storage.SumoFilesStorage object at 0x7f3471785fd0>.

Tried running collect static within container.. generates error AttributeError: 'NoneType' object has no attribute 'strip'

Stuck here for now, also tried this on my linode Linux machine..ran into the same problems.

Setup prod hosting of static media for AWS prod

For dev we'll probably just serve static media from the primary docker container via whitenoise, but that won't scale to prod traffic. We have some options:

  • Sync static files to S3 and serve via a CDN
  • Deploy a separate Nginx container for serving said files, optionally with a CDN in front
  • Put a CDN in front of the entire site (potentially a lot more work)

Fix unit tests.

Current unit test suite is broken. Fix it.

Update: We excluded a few tests from the test suite and it now completes successfully. An issue must be created for each (group of) test(s) which have been excluded and it should be linked to this tracker issue.

provision RDS instance

Using Terraform, create a multi-AZ RDS instance in AWS.

We'll need to specify a 30 minute window for backups, and a 30 minute window for general maintenance. @glogiotatidis Do you have an idea of when would be a good time for these windows?

See this issue for version info.

Improve Travis Build Time

Travis needs 15-20 minutes to complete testing a pull request. We need to improve this time to iterate faster.

Half of the time is spend re-building the image. Current docker version in Travis (17.03) does not support the cache_from directive in docker-compose.yml so we need to find another way to use pre-built docker images

Decide on the Database

Current database on SCL3

  • MySQL 5.6.33-log

We should investigate the existence of raw SQL queries in the codebase or in libraries (especially django-tidings) before deciding on the Engine type and version.

Switch user media to s3 + CDN

Uploaded media needs to go somewhere external to the servers in AWS. S3 is good for this with a CDN (probably CloudFront) in front.

Switch Celery Broker to Redis

Currently we use RabbitMQ as the Celery broker. Celery officially supports Redis too which makes more sense to use since we already have a running Redis instance.

Redis need to be configured to not evict any keys from the Celery database so we don't have missing jobs.

Memory leak on folder repair?

I have some issues with my emails, so I have to manually (by using OS commands) move messages from one folder to another. My Inbox folder has 11000+ messages in Maildir format.

When I move approx. 200 messages from Inbox to Inbox/BAD, and start folder repair of Inbox folder, memory usage of Thunderbird increases several GB and remains that high even after operation finishes.
It is always reproducible.
I'm using Thunderbird 52.4.0 (64bit) on Linux Gentoo.

Switch from MemCache to Redis

On SCL3 we use Memcache as a cache backend for Django.

We have Redis clusters already setup in AWS and we agreed to switch to Redis.

Calculate time needed to restore production database

The production database is a large (~100Gb). We need to calculate the time needed to restore it in the real database engine that's going to be used in AWS.

If the time needed is above the threshold considered acceptable to do the move we should investigate other options, like incremental import of data.

A dev import into a db.t2.small instance took about 30 hours. FTR the complete lithium migration took about 48 hours.

Fix test kitsune/wiki/tests/test_templates.py:NewRevisionTests.test_restore_draft_revision_with_older_based_on

Test gets skipped.

Traceback (most recent call last):
  File "/app/kitsune/wiki/tests/test_templates.py", line 1100, in test_restore_draft_revision_with_older_based_on
    trans_content = pq(trans_resp.content)
  File "/usr/local/lib/python2.7/site-packages/pyquery/pyquery.py", line 226, in __init__
    elements = fromstring(context, self.parser)
  File "/usr/local/lib/python2.7/site-packages/pyquery/pyquery.py", line 70, in fromstring
    result = getattr(lxml.html, meth)(context)
  File "/usr/local/lib/python2.7/site-packages/lxml/html/__init__.py", line 726, in fromstring
    doc = document_fromstring(html, parser=parser, base_url=base_url, **kw)
  File "/usr/local/lib/python2.7/site-packages/lxml/html/__init__.py", line 614, in document_fromstring
    value = etree.fromstring(html, parser, **kw)
  File "lxml.etree.pyx", line 3103, in lxml.etree.fromstring (src/lxml/lxml.etree.c:70569)
  File "parser.pxi", line 1828, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:106403)
  File "parser.pxi", line 1716, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:105194)
  File "parser.pxi", line 1086, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:99876)
  File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94350)
  File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:95786)
  File "parser.pxi", line 629, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:95015)
XMLSyntaxError: line 634: Tag footer invalid

See also #2931

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.