Giter VIP home page Giter VIP logo

talk-desktop's Introduction

๐Ÿ–ฅ๏ธ Nextcloud Talk Desktop ๐Ÿ’ฌ

REUSE status

Nextcloud Talk Desktop client based on Nextcloud Talk web application bundling โœจ

๐Ÿ“ฅ Download Binaries

๐Ÿ—๏ธ Prerequisites

๐Ÿ‘พ Drawbacks

  • Currently not supported:
    • Setting User Status (#26)
    • Search (#30)
    • Untrusted certificate on Linux (#23)
    • Dark/light theme (#17)
  • Works with limitations:
    • File Viewer โ€” only images and videos

๐Ÿ‘ฅ Multi-account

Full multi-account currently is not currently supported.

However, using portable zip distribution, you can have several Nextcloud Talk instances run simultaneously. Just rename the executable from default Nextcloud Talk to a custom name. For example:

/path/to/apps/
โ”œโ”€โ”€ home-apps/
โ”‚   โ””โ”€โ”€ Nextcloud Talk/
โ”‚       โ”œโ”€โ”€ ...
โ”‚       โ”œโ”€โ”€ Nextcloud Talk (Home).exe
โ”‚       โ””โ”€โ”€ ...
โ””โ”€โ”€ work-apps/
    โ””โ”€โ”€ Nextcloud Talk/
        โ”œโ”€โ”€ ...
        โ”œโ”€โ”€ Nextcloud Talk (Work).exe
        โ””โ”€โ”€ ...

๐Ÿง‘โ€๐Ÿ’ป Development Setup

Initial setup

# Install dependencies
npm ci

# Make .env file
cp .env.example .env

# Don't forget to configure ENV variables! 

Nextcloud Talk Desktop requires Nextcloud Talk source code.

No nextcloud/spreed is cloned?

Clone nextcloud/spreed and install dependencies:

# Clone in the repository root
git clone https://github.com/nextcloud/spreed

# Install dependencies
cd ./spreed/
npm ci

# Don't forget to return back
cd ../

nextcloud/spreed is already cloned?

Set TALK_PATH ENV variable or edit .env file:

TALK_PATH=/path/to/nextcloud-dev/apps/spreed/

Development

# Start development server
npm start

๐Ÿ“ฆ Packaging

#########################
# Package to executable #
#########################

# ๐Ÿง Linux
npm run package:linux

# ๐Ÿ Mac (Darwin)
npm run package:mac

# ๐ŸชŸ Windows (win32)
npm run package:windows

#  All
npm run package:all

#########################
# Make ZIP distribution #
#########################

# ๐Ÿง Linux
npm run make:linux

# ๐Ÿ Mac (Darwin)
# Note: doesn't work on Windows, use WSL
npm run make:mac

# ๐ŸชŸ Windows (win32)
npm run make:windows

#  All
npm run make:all

โœˆ๏ธ Release

  1. Create release/vX.Y.Z branch.
  2. Update CHANGELOG.md.
    1. If a built-in Talk version is to be changed - add a note:
      ### Build-in Talk update
      
      Built-in Talk in binaries is updated to $(VERSION) Talk changelog: https://github.com/nextcloud/spreed/blob/master/CHANGELOG.md
  3. Update package.json:
    • For minor update:
      npm version minor
    • For patch update:
      npm version patch
  4. Create a release PR.
  5. Merge the release PR.
  6. Create and push a tag:
    git tag -a v$(version) -m "Tagging the $(version) release."
    git push origin v$(version)
    git push releases v$(version)
  7. Draft a new release on GitHub in nextcloud-releases/talk-desktop
    1. Add release title: v$(version) - Talk v$(talkVersion), e.g. v0.10.0 - Talk v17.1.0-rc.1
    2. Choose a tag
    3. Add the respective CHANGELOG.md section
    4. Use the Generate release notes button and wrap put the result into
      ## What's Changed
      
      <details>
        <!-- Generated content -->
      </details>
  8. Draft a new release on GitHub in nextcloud/talk-desktop
    1. Copy everything from the previous step
    2. Add:
      > ๐Ÿ“ฅ Download Binaries on https://github.com/nextcloud-releases/talk-desktop/releases/tag/v$(version)
  9. Package release, specify version and platforms:
    npm run release:package -- --version v$(talkVersion) --windows --linux --mac
  10. Upload packages to the GitHub Releases on nextcloud-releases/talk-desktop
  11. Publish both releases on GitHub Releases

๐Ÿ‘ฅ Contribution Guidelines

See: https://github.com/nextcloud/spreed#contribution-guidelines

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.