# Mattermost separating /platform into two repositories on September 6th

**URL:** <https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708>\
**Category:** Announcements\
**Created:** [August 17, 2017, 3:48pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708 "2017-08-17T15:48:56Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![jasonblais](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/jasonblais/32/720_2.png) [@jasonblais](https://forum.mattermost.com/u/jasonblais)\
**Post date:** [August 17, 2017, 3:48pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/1 "2017-08-17T15:48:56Z")

</div>

Mattermost will be separating the `/platform` repo into two repositories on September 6th:

- a new repository for webapp client code, hosted at [github.com/mattermost/mattermost-webapp](http://github.com/mattermost/mattermost-webapp)
- existing repository (`/platform`) renamed to `/mattermost-server`, containing the server code.

#### Why the change?

Separates PRs for client and server with better naming conventions. This is similar to [React Native](https://github.com/mattermost/mattermost-mobile) and [Redux](https://github.com/mattermost/mattermost-redux/) repositories and helps us

- work on one part of the system (webapp/server) without worrying about the other.
- review PRs more easily as the webapp/server code is logically separated.

It’s also the first step towards de-coupling UI versions from the server, similar to the React Native apps, and helps model the architecture we want to achieve for the server.

#### How does this affect me?

Foremost, build process is not affected for most, with `make run` working as expected. There may however be some canges to the build process, which we’ll announce closer to September 6th.

Those running private forks would need to separate their server and webapp code after 4.2 is branched, and mimic what we’ll do when we split the platform repo. A doc with tips and best practices will be prepared to help with the transition.

Finally, those with work-in-progress PRs on September 6th may need to re-submit their pull request after the separation. For instance, PRs changing the UI would need to be re-submitted to the new `mattermost-webapp` repository.

#### Questions?

If you have any questions, let us know by responding to this post.

---

<div class="post-metadata">

**Author:** ![jasonblais](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/jasonblais/32/720_2.png) [@jasonblais](https://forum.mattermost.com/u/jasonblais)\
**Post date:** [August 17, 2017, 3:49pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/2 "2017-08-17T15:49:14Z")

</div>

Pinned globally on August 17, 2017, 3:49pm UTC



---

<div class="post-metadata">

**Author:** ![jasonblais](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/jasonblais/32/720_2.png) [@jasonblais](https://forum.mattermost.com/u/jasonblais)\
**Post date:** [August 30, 2017, 5:34pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/3 "2017-08-30T17:34:00Z")

</div>

A reminder that Mattermost will be separating the /platform repo into two repositories on September 6th.

If you have any questions, let us know by responding to this post.

---

<div class="post-metadata">

**Author:** ![jasonblais](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/jasonblais/32/720_2.png) [@jasonblais](https://forum.mattermost.com/u/jasonblais)\
**Post date:** [September 7, 2017, 12:30pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/4 "2017-09-07T12:30:48Z")

</div>

The webapp has been split from the main repository. There are now two new repositories:

- [https://github.com/mattermost/mattermost-server](https://github.com/mattermost/mattermost-server)
- [https://github.com/mattermost/mattermost-webapp](https://github.com/mattermost/mattermost-webapp)

For developers and those running private forks of Mattermost should make the following changes:

1. Clone the new mattermost-webapp repository. This should be done in the appropriate location in the golang source tree.
2. Rename the platform repository to mattermost-server or change the origin for your mattermost-server repository to point at the new URL. Then delete webapp directory from the new mattermost-server repository.
3. On the other copy created in step 1, run `git filter-branch --prune-empty --subdirectory-filter webapp` This rewrites the history as if the repository had always only contained the specified folder. This is now mattermost-webapp.

Sample commands:

1. `cd $GOPATH/src/gitthub.com/mattermost && git clone https://github.com/mattermost/mattermost-webapp` (or the ssh equivalent)
2. `cd $GOPATH/src/gitthub.com/mattermost && mv platform mattermost-server`
3. `git remote set-url origin https://github.com/mattermost/mattermost-server` (or the ssh equivalent)

Past these changes a normal make run should work. Note that if you where using any of the make targets “dist, package, build” They might not work as you expect. Use the make run family of commands instead.

`make help` also has some descriptions of useful make commands.

---

<div class="post-metadata">

**Author:** ![tejasbubane](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/tejasbubane/32/879_2.png) [@tejasbubane](https://forum.mattermost.com/u/tejasbubane)\
**Post date:** [September 8, 2017, 1:39pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/5 "2017-09-08T13:39:43Z")

</div>

I see issues are disabled on the `webapp` repository. Will they continue to be in `server`?

---

<div class="post-metadata">

**Author:** ![jasonblais](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/jasonblais/32/720_2.png) [@jasonblais](https://forum.mattermost.com/u/jasonblais)\
**Post date:** [September 8, 2017, 2:48pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/6 "2017-09-08T14:48:32Z")

</div>

Great question. Yeah, issue reports will continue to be in the `server` repository.

---

<div class="post-metadata">

**Author:** ![santos22](https://avatars.discourse-cdn.com/v4/letter/s/a8b319/32.png) [@santos22](https://forum.mattermost.com/u/santos22)\
**Post date:** [September 11, 2017, 4:33am UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/7 "2017-09-11T04:33:19Z")

</div>

Hi,

Should we be having any problems running `make test` after the split? I cloned both **server** and **webapp** repos to $GOPATH/src/github.com/mattermost and haven’t succeeded in running tests as shown in the screenshot below (I ran `make test` inside the **server** repo). Really looking forward to working on some issues for the webapp once I get this resolved 🙂

![06 PM](https://cdck-file-uploads-us1.s3.dualstack.us-west-2.amazonaws.com/flex020/uploads/mattermost/original/2X/1/199a4aa8fd2b470ef4b9396b660457d8b9716ad5.png)

---

<div class="post-metadata">

**Author:** ![jasonblais](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/jasonblais/32/720_2.png) [@jasonblais](https://forum.mattermost.com/u/jasonblais)\
**Post date:** [September 11, 2017, 2:29pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/8 "2017-09-11T14:29:33Z")

</div>

Thanks @santos22 for your interest contributing to the webapp 🙂

Can you help

1. try run it again,
2. if it fails, try run it with a clean database,
3. if neither help, let us know which test(s) failed?

---

<div class="post-metadata">

**Author:** ![santos22](https://avatars.discourse-cdn.com/v4/letter/s/a8b319/32.png) [@santos22](https://forum.mattermost.com/u/santos22)\
**Post date:** [September 11, 2017, 5:42pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/9 "2017-09-11T17:42:30Z")

</div>

Hi @jasonblais, thanks for the prompt response!

I ran a `make clean` and then a `make nuke` before re-running `make test` within the mattermost0server directory. Should there be a copy of package.json in the mattermost-server directory? I got a **npm ERR! enoent ENOENT: no such file or directory, open ‘/Users/ssolorzano/go/src/github.com/mattermost/mattermost-server/package.json’** message as shown in the screenshot below.

![01 AM](https://cdck-file-uploads-us1.s3.dualstack.us-west-2.amazonaws.com/flex020/uploads/mattermost/original/2X/6/69b8d222f5820d63782fc24742a7db4fcd3283d0.png)

I re-ran `make test` and didn’t get the npm message and saved the output of the run to a .txt file. I am going through this file but I don’t see any tests failing.

---

<div class="post-metadata">

**Author:** ![santos22](https://avatars.discourse-cdn.com/v4/letter/s/a8b319/32.png) [@santos22](https://forum.mattermost.com/u/santos22)\
**Post date:** [September 12, 2017, 7:30am UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/10 "2017-09-12T07:30:36Z")

</div>

Hi @jasonblais,

I re-cloned both repos and ran `make test` within the mattermost-server directory - the following was the exact same error message I was getting before the split occurred.

It looks like **TestZZWebSocketTearDown** is passing and then it fails on [github.com/mattermost/mattermost-server/api4](http://github.com/mattermost/mattermost-server/api4)

![43 AM](https://cdck-file-uploads-us1.s3.dualstack.us-west-2.amazonaws.com/flex020/uploads/mattermost/original/2X/f/fa893ddffe8314b0a7ceeccaccdaec0af7271c27.png)

---

<div class="post-metadata">

**Author:** ![prixone](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/prixone/32/1184_2.png) [@prixone](https://forum.mattermost.com/u/prixone)\
**Post date:** [September 13, 2017, 11:43am UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/11 "2017-09-13T11:43:40Z")

</div>

@santos22 any reason why you need `make test`? Do you need to test a specific method or anything you have implemented? Could you provide more details on your need?

---

<div class="post-metadata">

**Author:** ![santos22](https://avatars.discourse-cdn.com/v4/letter/s/a8b319/32.png) [@santos22](https://forum.mattermost.com/u/santos22)\
**Post date:** [September 13, 2017, 2:25pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/12 "2017-09-13T14:25:01Z")

</div>

HI @prixone,

I am working on the following issue [https://github.com/mattermost/mattermost-server/issues/7113](https://github.com/mattermost/mattermost-server/issues/7113) and noticed that `make test` is a part of the developer workflow required to submit a pull request.

---

<div class="post-metadata">

**Author:** ![prixone](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/prixone/32/1184_2.png) [@prixone](https://forum.mattermost.com/u/prixone)\
**Post date:** [September 13, 2017, 2:37pm UTC](https://forum.mattermost.com/t/mattermost-separating-platform-into-two-repositories-on-september-6th/3708/13 "2017-09-13T14:37:54Z")

</div>

Yes, indeed that is written in the work flow, however you seem to be missing the point in there:

> to make sure there are no errors with your syntax or tests.

Do you have any tests added with your changes? if so you could simple run the test directly.

You don’t need to run the whole `make test` to test only the tests you have changed or added, you can run those tests directly.

Furthermore, the ticket you’re working on, seems to be strictly webapp changes with no server changes(could be wrong here, but it seems so).

* * *

Also could you tell me what OS are you running the tests on and if possible could you run it as `make test > output.log` and attach the log somewhere as it does not fail at the end but some where else you will find a FAIL.
