Zulip Documentation Release 1.7.1

Total Page:16

File Type:pdf, Size:1020Kb

Zulip Documentation Release 1.7.1 Zulip Documentation Release 1.7.1 The Zulip Team Nov 23, 2017 Overview 1 Zulip overview 3 1.1 Community................................................3 1.2 Installing the Zulip Development environment.............................4 1.3 Running Zulip in production.......................................4 1.4 Ways to contribute............................................4 1.5 Google Summer of Code.........................................4 1.6 How to get involved with contributing to Zulip.............................5 1.7 License..................................................6 2 Zulip architectural overview 7 2.1 Key Codebases..............................................7 2.2 Usage assumptions and concepts.....................................7 2.3 Components...............................................8 2.4 Glossary................................................. 11 3 Directory structure 13 3.1 Core Python files............................................. 13 3.2 HTML Templates............................................ 13 3.3 JavaScript and other static assets..................................... 14 3.4 Tests................................................... 14 3.5 Management commands......................................... 14 3.6 Scripts.................................................. 14 3.7 API and Bots............................................... 15 3.8 Production puppet configuration..................................... 15 3.9 Additional Django apps......................................... 15 3.10 Jinja2 Compatibility Files........................................ 15 3.11 Translation files............................................. 16 3.12 Documentation.............................................. 16 4 Zulip Roadmap 17 4.1 Introduction............................................... 17 4.2 Major projects.............................................. 17 4.3 Core User Experience.......................................... 18 4.4 Social features.............................................. 18 4.5 Real-time sync.............................................. 18 4.6 Onboarding issues............................................ 18 4.7 Production installation issues...................................... 19 i 4.8 Administration and management..................................... 19 4.9 Scalability and performance....................................... 19 4.10 Technology improvements........................................ 19 4.11 Technical Debt.............................................. 20 4.12 Security.................................................. 20 4.13 Testing.................................................. 20 4.14 Documentation.............................................. 20 4.15 Integrations and bots........................................... 20 4.16 Android app............................................... 21 4.17 iOS app.................................................. 21 4.18 Server/webapp support for mobile.................................... 21 4.19 Desktop apps............................................... 21 4.20 Community................................................ 21 5 Version History 23 5.1 Unreleased................................................ 23 5.2 1.7.1 – 2017-11-21............................................ 23 5.3 1.7.0 – 2017-10-25............................................ 23 5.4 1.6.0 – 2017-06-06............................................ 27 5.5 1.5.2 – 2017-06-01............................................ 30 5.6 1.5.1 – 2017-02-07............................................ 30 5.7 1.5.0 – 2017-02-06............................................ 30 5.8 1.4.3 - 2017-01-29............................................ 33 5.9 1.4.2 - 2016-09-27............................................ 33 5.10 1.4.1 - 2016-09-03............................................ 33 5.11 1.4.0 - 2016-08-25............................................ 33 5.12 1.3.13 - 2016-06-21........................................... 36 5.13 1.3.12 - 2016-05-10........................................... 37 5.14 1.3.11 - 2016-05-02........................................... 37 5.15 1.3.10 - 2016-01-21........................................... 38 5.16 1.3.9 - 2015-11-16............................................ 38 5.17 1.3.8 - 2015-11-15............................................ 38 5.18 1.3.7 - 2015-10-19............................................ 39 6 Zulip in production 41 6.1 Requirements............................................... 41 6.2 Install................................................... 41 6.3 Running................................................. 41 7 Requirements 43 7.1 Server................................................... 43 7.2 Credentials needed............................................ 44 8 Production Installation 45 8.1 Step 1: Install SSL Certificates...................................... 45 8.2 Step 2: Download and install latest release............................... 45 8.3 Step 3: Configure Zulip......................................... 46 8.4 Step 4: Test email configuration..................................... 46 8.5 Step 5: Initialize Zulip database..................................... 46 8.6 Step 6: Create a Zulip organization and login.............................. 47 8.7 Step 7: Next steps............................................ 47 8.8 Troubleshooting............................................. 47 9 Troubleshooting 49 9.1 Using supervisorctl............................................ 49 ii 9.2 Troubleshooting services......................................... 51 10 Customize Zulip 53 10.1 Making changes............................................. 53 10.2 Specific settings............................................. 53 10.3 Zulip announcement list......................................... 54 10.4 Enjoy your Zulip installation!...................................... 54 11 Mobile push notification service 55 11.1 How to sign up.............................................. 55 11.2 Why this is necessary.......................................... 56 11.3 Security and privacy implications.................................... 56 12 Secure, maintain, and upgrade 57 12.1 Upgrading................................................ 57 12.2 Upgrading from a git repository..................................... 59 12.3 Backups................................................. 60 12.4 Monitoring................................................ 61 12.5 Scalability................................................ 61 12.6 Securing your Zulip server........................................ 62 12.7 Management commands......................................... 62 12.8 Hosting multiple Zulip organizations.................................. 63 13 Security Model 65 13.1 Secure your Zulip server like your email server............................. 65 13.2 Encryption and Authentication...................................... 65 13.3 Messages and History.......................................... 66 13.4 Users and Bots.............................................. 67 13.5 User-uploaded content.......................................... 67 13.6 Final notes and security response.................................... 68 14 Authentication methods 69 14.1 Adding additional methods using python-social-auth.......................... 69 14.2 Remote User SSO Authentication.................................... 70 15 Postgres database details 73 15.1 Remote Postgres database........................................ 73 15.2 Debugging postgres database issues................................... 74 15.3 Stopping the Zulip postgres database.................................. 74 15.4 Debugging issues starting postgres.................................... 74 15.5 Postgres Vacuuming alerts........................................ 75 16 Development environment installation 77 16.1 Requirements............................................... 77 16.2 Recommended setup (Vagrant)...................................... 77 16.3 Advanced setup (non-Vagrant)...................................... 77 16.4 Slow internet connections........................................ 78 16.5 Installing remotely............................................ 78 16.6 Next steps................................................ 78 17 Vagrant environment setup tutorial 79 17.1 Requirements............................................... 80 17.2 Step 0: Set up Git & GitHub....................................... 80 17.3 Step 1: Install Prerequisites....................................... 80 17.4 Step 2: Get Zulip Code.......................................... 83 iii 17.5 Step 3: Start the development environment............................... 84 17.6 Step 4: Developing............................................ 87 17.7 Next Steps................................................ 88 17.8 Troubleshooting and Common Errors.................................. 89 17.9 Specifying a proxy............................................ 95 18 Zulip development environment setup without Vagrant 97 18.1 Installing directly on Ubuntu....................................... 97 18.2 Installing manually on Linux....................................... 97 18.3 Using Docker (experimental)...................................... 103 19 Using the Development Environment 105 20 Developing on a remote machine 107 20.1 Connecting to the remote environment................................. 107 20.2 Setting up the development environment................................ 107 20.3 Running the development server....................................
Recommended publications
  • The Sad State of Web Development Random Thoughts on Web Development
    The Sad State of Web Development Random thoughts on web development Going to shit 2015 is when web development went to shit. Web development used to be nice. You could fire up a text editor and start creating JS and CSS files. You can absolutely still do this. That has not changed. So yes, everything I’m about to say can be invalidated by saying that. The web (specifically the Javascript/Node community) has created some of the most complicated, convoluted, over engineered tools ever conceived. Node.js/NPM At times, I think where web development is at this point is some cruel joke played on us by Ryan Dahl. You see, to get into why web development is so terrible, you have to start at Node. By definition I was a magpie developer, so undoubtedly I used Node, just as everyone should. At universities they should make every developer write an app with Node.js, deploy it to production, then try to update the dependencies 3 months later. The only downside is we would have zero new developers coming out of computer science programs. You see the Node.js philosophy is to take the worst fucking language ever designed and put it on the server. Combine that with all the magpies that were using Ruby at the time, and you have the perfect fucking storm. Lets take everything that was great in Ruby and re write it in Javascript, I think was the official motto. Most of the smart magpies have moved on to Go at this point, but the people who have stayed in the Node community have undoubtedly created the most over engineered eco system that has ever appeared.
    [Show full text]
  • 16 Inspiring Women Engineers to Watch
    Hackbright Academy Hackbright Academy is the leading software engineering school for women founded in San Francisco in 2012. The academy graduates more female engineers than UC Berkeley and Stanford each year. https://hackbrightacademy.com 16 Inspiring Women Engineers To Watch Women's engineering school Hackbright Academy is excited to share some updates from graduates of the software engineering fellowship. Check out what these 16 women are doing now at their companies - and what languages, frameworks, databases and other technologies these engineers use on the job! Software Engineer, Aclima Tiffany Williams is a software engineer at Aclima, where she builds software tools to ingest, process and manage city-scale environmental data sets enabled by Aclima’s sensor networks. Follow her on Twitter at @twilliamsphd. Technologies: Python, SQL, Cassandra, MariaDB, Docker, Kubernetes, Google Cloud Software Engineer, Eventbrite 1 / 16 Hackbright Academy Hackbright Academy is the leading software engineering school for women founded in San Francisco in 2012. The academy graduates more female engineers than UC Berkeley and Stanford each year. https://hackbrightacademy.com Maggie Shine works on backend and frontend application development to make buying a ticket on Eventbrite a great experience. In 2014, she helped build a WiFi-enabled basal body temperature fertility tracking device at a hardware hackathon. Follow her on Twitter at @magksh. Technologies: Python, Django, Celery, MySQL, Redis, Backbone, Marionette, React, Sass User Experience Engineer, GoDaddy 2 / 16 Hackbright Academy Hackbright Academy is the leading software engineering school for women founded in San Francisco in 2012. The academy graduates more female engineers than UC Berkeley and Stanford each year.
    [Show full text]
  • Bebras International Workshop 2020 Delegates’ Guidelines for Working Groups
    Bebras International Workshop 2020 Delegates’ Guidelines for Working Groups Preparation for Working Group Participation Please read through this document thoroughly in order to make your work for the Bebras Workshop more efficient. Prepare Your Workplace You will need to have the following installed and running: ● A recent computer. ​ ​ ● A working microphone. ​ ​ ● If possible a webcam. ​ ​ ● A proper up-to-date web browser (for this year Chrome or Chromium derivatives like Vivaldi are ​ ​ preferred for compatibility reasons). ● A SVN client (except for guests or representatives without SVN access1). ​ ​ ○ Windows: TortoiseSVN is recommended (https://tortoisesvn.net/). ​ ​ ○ macOS: either use the command line (if you’re comfortable with it) or consider Versions https://versionsapp.com/ (not free); some people have also used integrated development ​ environments that offer SVN functionality; some people even run a virtualized Windows just for TortoiseSVN. ○ Linux: you know what you’re doing, right? ● LibreOffice 6.3 or 6.4 (https://www.libreoffice.org/download/download/). Older versions become ​ ​ ​ increasingly incompatible. OpenOffice is no longer an alternative. ● A proper text editor (not Word or LibreOffice but for HTML source code editing) ​ ​ ○ Windows: Notepad++ is recommended (https://notepad-plus-plus.org/downloads/). ​ ​ ○ macOS: TextWrangler 5.5.2 was recommended for pre-macOS 10.15, Atom is also working with macOS 10.15 (https://atom.io/). ​ ​ ○ Linux: you know what you’re doing, right? ● Our video conferencing tool for the working groups (a local installation of Jitsi Meet available at ​ ​ https://workshop.cuttle.org/BebrasYourRoomName ) will run fine in any web browser. There is an ​ ​ electron app available (https://github.com/jitsi/jitsi-meet-electron/releases), but watch out for ​ ​ security problems with electron apps because they tend to bundle older chromium versions with security problems.
    [Show full text]
  • CROP: Linking Code Reviews to Source Code Changes
    CROP: Linking Code Reviews to Source Code Changes Matheus Paixao Jens Krinke University College London University College London London, United Kingdom London, United Kingdom [email protected] [email protected] Donggyun Han Mark Harman University College London Facebook and University College London London, United Kingdom London, United Kingdom [email protected] [email protected] ABSTRACT both industrial and open source software development communities. Code review has been widely adopted by both industrial and open For example, large organisations such as Google and Facebook use source software development communities. Research in code re- code review systems on a daily basis [5, 9]. view is highly dependant on real-world data, and although existing In addition to its increasing popularity among practitioners, researchers have attempted to provide code review datasets, there code review has also drawn the attention of software engineering is still no dataset that links code reviews with complete versions of researchers. There have been empirical studies on the effect of code the system’s code base mainly because reviewed versions are not review on many aspects of software engineering, including software kept in the system’s version control repository. Thus, we present quality [11, 12], review automation [2], and automated reviewer CROP, the Code Review Open Platform, the first curated code recommendation [20]. Recently, other research areas in software review repository that links review data with isolated complete engineering have leveraged the data generated during code review versions (snapshots) of the source code at the time of review. CROP to expand previously limited datasets and to perform empirical currently provides data for 8 software systems, 48,975 reviews and studies.
    [Show full text]
  • Crawling Code Review Data from Phabricator
    Friedrich-Alexander-Universit¨atErlangen-N¨urnberg Technische Fakult¨at,Department Informatik DUMITRU COTET MASTER THESIS CRAWLING CODE REVIEW DATA FROM PHABRICATOR Submitted on 4 June 2019 Supervisors: Michael Dorner, M. Sc. Prof. Dr. Dirk Riehle, M.B.A. Professur f¨urOpen-Source-Software Department Informatik, Technische Fakult¨at Friedrich-Alexander-Universit¨atErlangen-N¨urnberg Versicherung Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als der angegebenen Quellen angefertigt habe und dass die Arbeit in gleicher oder ¨ahnlicherForm noch keiner anderen Pr¨ufungsbeh¨ordevorgelegen hat und von dieser als Teil einer Pr¨ufungsleistung angenommen wurde. Alle Ausf¨uhrungen,die w¨ortlich oder sinngem¨aߨubernommenwurden, sind als solche gekennzeichnet. Nuremberg, 4 June 2019 License This work is licensed under the Creative Commons Attribution 4.0 International license (CC BY 4.0), see https://creativecommons.org/licenses/by/4.0/ Nuremberg, 4 June 2019 i Abstract Modern code review is typically supported by software tools. Researchers use data tracked by these tools to study code review practices. A popular tool in open-source and closed-source projects is Phabricator. However, there is no tool to crawl all the available code review data from Phabricator hosts. In this thesis, we develop a Python crawler named Phabry, for crawling code review data from Phabricator instances using its REST API. The tool produces minimal server and client load, reproducible crawling runs, and stores complete and genuine review data. The new tool is used to crawl the Phabricator instances of the open source projects FreeBSD, KDE and LLVM. The resulting data sets can be used by researchers.
    [Show full text]
  • Letter, If Not the Spirit, of One Or the Other Definition
    Producing Open Source Software How to Run a Successful Free Software Project Karl Fogel Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel Copyright © 2005-2021 Karl Fogel, under the CreativeCommons Attribution-ShareAlike (4.0) license. Version: 2.3214 Home site: https://producingoss.com/ Dedication This book is dedicated to two dear friends without whom it would not have been possible: Karen Under- hill and Jim Blandy. i Table of Contents Preface ............................................................................................................................. vi Why Write This Book? ............................................................................................... vi Who Should Read This Book? ..................................................................................... vi Sources ................................................................................................................... vii Acknowledgements ................................................................................................... viii For the first edition (2005) ................................................................................ viii For the second edition (2021) .............................................................................. ix Disclaimer .............................................................................................................. xiii 1. Introduction ...................................................................................................................
    [Show full text]
  • Jetbrains Upsource Comparison Upsource Is a Powerful Tool for Teams Wish- Key Benefits Ing to Improve Their Code, Projects and Pro- Cesses
    JetBrains Upsource Comparison Upsource is a powerful tool for teams wish- Key benefits ing to improve their code, projects and pro- cesses. It serves as a polyglot code review How Upsource Compares to Other Code Review Tools tool, a source of data-driven project ana- lytics, an intelligent repository browser and Accuracy of Comparison a team collaboration center. Upsource boasts in-depth knowledge of Java, PHP, JavaScript, Integration with JetBrains Tools Python, and Kotlin to increase the efcien- cy of code reviews. It continuously analyzes Sales Contacts the repository activity providing a valuable insight into potential design problems and project risks. On top of that Upsource makes team collaboration easy and enjoyable. Key benefits IDE-level code insight to help developers Automated workflow, to minimize manual tasks. Powerful search engine. understand and review code changes more efectively. Smart suggestion of suitable reviewers, revi- IDE plugins that allow developers to partici- sions, etc. based on historical data and intel- pate in code reviews right from their IDEs. Data-driven project analytics highlighting ligent progress tracking. potential design flaws such as hotspots, abandoned files and more. Unified access to all your Git, Mercurial, Secure, and scalable. Perforce or Subversion projects. To learn more about Upsource, please visit our website at jetbrains.com/upsource. How Upsource Compares to Other Code Review Tools JetBrains has extensively researched various As all the products mentioned in the docu- tools to come up with a useful comparison ment are being actively developed and their table. We tried to make it as comprehensive functionality changes on a regular basis, this and neutral as we possibly could.
    [Show full text]
  • Phabricator 538D8f2... Overview
    Institute of Computational Science Phabricator 538d8f2... overview Dmitry Mikushin (for the Bugs Course) . October 17, 2013 Dmitry Mikushin Test-drive at http://devel.kernelgen.org October 17, 2013 1 / 14 . What is Phabricator? The LAMP-based web-server + command-line client for: peer code review task management project communication And it’s open-source Dmitry Mikushin Test-drive at http://devel.kernelgen.org October 17, 2013 2 / 14 . Test drive! Browse to http://devel.kernelgen.org, login and look around Dmitry Mikushin Test-drive at http://devel.kernelgen.org October 17, 2013 3 / 14 . Key features Peer code review Integrated environment for request reviewing, tasks/bugs and versioning system - in web environment - in command line Ergonomic task interface Dmitry Mikushin Test-drive at http://devel.kernelgen.org October 17, 2013 4 / 14 . Key features Peer code review Integrated environment for request reviewing, tasks/bugs and versioning system - in web environment - in command line Ergonomic task interface Dmitry Mikushin Test-drive at http://devel.kernelgen.org October 17, 2013 5 / 14 . Peer code review: traditional 1 RFC: Developer publishes a patch with the source and tests 2 Other developers comment on the patch issues/improvements 3 After all issues are addressed, reviewers ACK patch for commit 4 Developer himself or someone with rw rights commits the patch Everything is over email Relationship with Bugs: fixes for PRs are also reviewed this way Dmitry Mikushin Test-drive at http://devel.kernelgen.org October 17, 2013 6 / 14 . Peer code review: Phabricator approach 1 Developer check-ins the patch to the Phabricator over the command line (passing lint/unit tests, if any) $ arc diff .
    [Show full text]
  • Development and Deployment at Facebook
    Development and Deployment at Facebook Dror G. Feitelson Eitan Frachtenberg Kent L. Beck Hebrew University Facebook Facebook Abstract More than one billion users log in to Facebook at least once a month to connect and share content with each other. Among other activities, these users upload over 2.5 billion content items every day. In this article we describe the development and deployment of the software that supports all this activity, focusing on the site’s primary codebase for the Web front-end. Information on Facebook’s architecture and other software components is available elsewhere. Keywords D.2.10.i Rapid prototyping; D.2.18 Software Engineering Process; D.2.19 Software Quality/SQA; D.2.2.c Distributed/Internet based software engineering tools and techniques; D.2.5.r Testing tools; D.2.7.e Evolving Internet applications. Facebook’s main development characteristics are speed and growth. The front-end is under continuous development by hundreds of software engineers. These engineers commit code to the version control system up to 500 times a day, recording changes in some 3,000 files. Naturally, codebase size unique developers by week commits per month 14 800 10 700 12 600 10 8 500 8 6 400 6 300 4 4 200 LoC [millions] 2 100 2 active developers 0 0 0 ’05 ’06 ’07 ’08 ’09 ’10 ’11 ’12 ’05 ’06 ’07 ’08 ’09 ’10 ’11 ’12 number of commits [1000s] ’05 ’06 ’07 ’08 ’09 ’10 ’11 ’12 Figure 1: Different aspects of Facebook growth: growth of the number of engineers working on the code, growth in the total activity of these engineers, and growth of the codebase itself.
    [Show full text]
  • Polishing Zulip (Electron) Making the Desktop Client an Obvious Choice for Zulip Users
    Kanishk Kakar [email protected] github.com/kanishk98 GMT +05:30 India, fluent in English Polishing Zulip (Electron) Making the desktop client an obvious choice for Zulip users ABSTRACT With its innovative threading model and robust webapp, Zulip has received a lot of praise from remote teams that use it. While the desktop app is certainly complete in terms of features, it needs some polish and certain standout features to make it an obvious choice for a Zulip user to install. In this proposal, I suggest the implementation of multiple features to achieve the above goal. PROPOSED DELIVERABLES By the end of the summer, I intend to have implemented the following features: Enterprise deployment Currently, there is no Zulip-enabled way for admins to deploy the app with custom settings for multiple users in an enterprise setting. After ​discussions​ with the community, I’ve been working with Vipul Sharma to implement a system that allows the admin to write a script for configuring the app as they require via a .json file in the root directory. My role so far while developing this feature has been to add an ​ ​EnterpriseUtil ​module ​ that configures settings at various places in the app and allows admins to also configure whether keeping a setting admin-only is required or not. I expect to have completed this feature before the community bonding period begins. WIP PR #681 Replacing​ <webview> with​ BrowserView ​ ​ We currently use <​ webview> ​for rendering all content except the sidebar in the app window. ​ However, the Electron team has ​warned​ developers against using <​ webview>​ because of certain persistent bugs.
    [Show full text]
  • A Perfectly Good Hour
    A PERFECTLY GOOD HOUR 1. Social Capital 2. Social Intelligence 3. Listening 4. Identity 5. Language & Cursing 6. Nonverbal Communication 7. Satisfying Relationships 8. Consummate Love 9. Conflict Management 10. Styles of Parenting/Leading Modern Social Commentary Cartoons by David Hawker from PUNCH Magazine, 1981 A PERFECTLY GOOD HOUR Feel free to voice your opinion and to disagree. This is not a friction- free zone. AND, please do demonstrate social intelligence. Let’s Get Better Acquainted If you match this descriptor, keep your 1. You belong to an LLI Special Interest Group video on and unmute. 2. You are fluent in another language 3. You’ve received your flu shot If you don’t match this 4. You attended the LLI class on nanotechnology descriptor, temporarily 5. You have grandchildren stop your video. 6. You (have) participate(d) in Great Decisions 7. You have a pet 8. You play a musical instrument 9. You are/have been on the LLI Board 10. You think this is a fun poll How fortunate we are that during this global pandemic, we can stay home, attending LLI classes, reading, creating, baking, taking walks, and talking with our loved one. The last six months have exposed and magnified long standing inequities -- in our communities, in our hospitals, in our workplaces, and in schools. Too many of our school districts lack a fair share of resources to address the pandemic’s challenges; not every student can be taught remotely with attention to their need for social and emotional safe learning spaces. The current circumstances are poised to exacerbate existing disparities in academic opportunity and performance, particularly between white communities and communities of color.
    [Show full text]
  • Open Online Meeting
    Open online meeting Project report 2021 1 Content Page ➢ Objectives and background ○ Background, current situation and future needs 3 ○ Purpose and aim of the project 4 ○ Implementation: Preliminary study 5 ○ Functionalities 6 ➢ Results of the study ○ Group 1: Web-conferencing and messaging solutions 7 ○ Group 2: Online file storage, management and collaboration platforms 21 ○ Group 3: Visual online collaboration and project management solutions 30 ○ Group 4: Online voting solutions 37 ➢ Solution example based on the study results ○ Selection criteria 42 ○ Description of the example solution 43 ➢ Next steps 44 2021 2 Background, current situation and future needs Municipalities in Finland have voiced a need to map out open source based alternatives for well-known proprietary online conferencing systems provided by e.g. Google and Microsoft for the following purposes: ➢ Online meeting (preferably web-based, no installation), ➢ Secure file-sharing and collaborative use of documents, ➢ Chat and messaging, ➢ Solution that enables online collaboration (easy to facilitate), ➢ Cloud services, ➢ Online voting (preferably integrated to the online meeting tool with strong identification method that would enable secret ballot voting). There are several open source based solutions and tools available for each category but a coherent whole is still missing. 2021 3 Purpose and aim of the project The purpose in the first phase of the project was to conduct a preliminary study on how single open source based solutions and tools could be combined to a comprehensive joint solution and research the technical compatibility between the different OS solutions. The project aims to create a comprehensive example solution that is based on open source components.
    [Show full text]