Skip to content
This repository was archived by the owner on Aug 1, 2024. It is now read-only.

Commit d0ca941

Browse files
authored
feat!: Remove support for docker-sync (#836)
Removing the deprecated support for use of docker-sync, as well as all documentation regarding its usage and troubleshooting. See the deprecation ticket at https://openedx.atlassian.net/browse/DEPR-162 for more details. BREAKING CHANGE: Removed the dev.sync.* make targets
1 parent a86bd62 commit d0ca941

9 files changed

Lines changed: 20 additions & 249 deletions

Makefile

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@
5454
dev.shell.registrar dev.shell.studio \
5555
dev.shell.studio_watcher dev.shell.xqueue dev.shell.xqueue_consumer \
5656
dev.static dev.static.lms dev.static.studio dev.stats dev.status \
57-
dev.stop dev.sync.daemon.start dev.sync.provision \
58-
dev.sync.requirements dev.sync.up dev.up dev.up.attach dev.up.shell \
57+
dev.stop dev.up dev.up.attach dev.up.shell \
5958
dev.up.without-deps dev.up.without-deps.shell dev.up.with-programs \
6059
dev.up.with-watchers dev.validate docs e2e-tests e2e-tests.with-shell \
6160
help requirements impl-dev.clone.https impl-dev.clone.ssh impl-dev.provision \
@@ -90,17 +89,11 @@ COMPOSE_FILE := $(COMPOSE_FILE):docker-compose-themes-nfs.yml
9089
COMPOSE_FILE := $(COMPOSE_FILE):docker-compose-watchers-nfs.yml
9190
endif
9291

93-
# Files for use with Docker Sync.
94-
ifeq ($(FS_SYNC_STRATEGY),docker-sync)
95-
COMPOSE_FILE := docker-compose-host.yml
96-
COMPOSE_FILE := $(COMPOSE_FILE):docker-compose-sync.yml
97-
endif
98-
9992
ifndef COMPOSE_FILE
100-
$(error FS_SYNC_STRATEGY is set to $(FS_SYNC_STRATEGY). Must be one of: local-mounts, nfs, docker-sync)
93+
$(error FS_SYNC_STRATEGY is set to $(FS_SYNC_STRATEGY). Must be one of: local-mounts, nfs)
10194
endif
10295

103-
# All three filesystem synchronization strategies require the main docker-compose.yml file.
96+
# Both filesystem synchronization strategies require the main docker-compose.yml file.
10497
COMPOSE_FILE := docker-compose.yml:$(COMPOSE_FILE)
10598

10699
# Tell Docker Compose that the Compose file list uses a colon as the separator.
@@ -371,14 +364,12 @@ dev.restart-container.%: ## Restart specific services' containers.
371364
docker-compose restart $$(echo $* | tr + " ")
372365

373366
dev.stop: ## Stop all running services.
374-
(test -d .docker-sync && docker-sync stop) || true ## Ignore failure here
375367
docker-compose stop
376368

377369
dev.stop.%: ## Stop specific services.
378370
docker-compose stop $$(echo $* | tr + " ")
379371

380372
dev.kill: ## Kill all running services.
381-
(test -d .docker-sync && docker-sync stop) || true ## Ignore failure here
382373
docker-compose stop
383374

384375
dev.kill.%: ## Kill specific services.
@@ -388,7 +379,6 @@ dev.rm-stopped: ## Remove stopped containers. Does not affect running containers
388379
docker-compose rm --force
389380

390381
dev.down: ## Stop and remove containers and networks for all services.
391-
(test -d .docker-sync && docker-sync clean) || true ## Ignore failure here
392382
docker-compose down
393383

394384
dev.down.%: ## Stop and remove containers for specific services.
@@ -537,21 +527,6 @@ dev.nfs.setup: ## Sets up an NFS server on the /Users folder, allowing NFS mount
537527
dev.nfs.%: ## Run any 'dev.'-prefixed command, but using NFS configuration.
538528
FS_SYNC_STRATEGY=nfs make dev.$*
539529

540-
# TODO: Improve or rip out Docker Sync targets.
541-
# They are not well-fleshed-out and it is not clear if anyone uses them.
542-
543-
dev.sync.daemon.start: ## Start the docker-sycn daemon.
544-
docker-sync start
545-
546-
dev.sync.provision: dev.sync.daemon.start ## Provision with docker-sync enabled.
547-
FS_SYNC_STRATEGY=docker-sync make dev.provision
548-
549-
dev.sync.requirements: ## Install requirements for docker-sync usage.
550-
gem install docker-sync
551-
552-
dev.sync.up: dev.sync.daemon.start ## Bring up all services with docker-sync enabled.
553-
FS_SYNC_STRATEGY=docker-sync make dev.up
554-
555530

556531
########################################################################################
557532
# Support for "prefix-form" commands:

README.rst

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ The default devstack services can be run by following the steps below.
180180

181181
**NOTE:** This command will bring up both MySQL 5.6 and 5.7 databases until all services are upgraded to 5.7.
182182

183-
**NOTE:** If you are looking for instructions for NFS or docker-sync, see :ref:`Deprecated MacOS performance improvements`.
183+
**NOTE:** If you are looking for instructions for NFS, see :ref:`Deprecated MacOS performance improvements`.
184184

185185
#. Start the desired services. This command will mount the repositories under the
186186
``DEVSTACK_WORKSPACE`` directory.
@@ -193,7 +193,7 @@ The default devstack services can be run by following the steps below.
193193
194194
make dev.up.large-and-slow
195195
196-
**NOTE:** If you are looking for instructions for NFS or docker-sync, see :ref:`Deprecated MacOS performance improvements`.
196+
**NOTE:** If you are looking for instructions for NFS, see :ref:`Deprecated MacOS performance improvements`.
197197

198198
To stop a service, use ``make dev.stop.<service>``, and to both stop it
199199
and remove the container (along with any changes you have made
@@ -396,44 +396,31 @@ As a specific example, if ``OPENEDX_RELEASE`` is set in your environment as ``ju
396396
Deprecated MacOS performance improvements
397397
-----------------------------------------
398398

399-
**Warning:** We recommend that new devstack setups on MacOS **no longer use** NFS or docker-sync for MacOS. At this time, these technologies **lead to increased complexity and might cause errors**. Improvements to Docker's default FS have resolved bugs or performance issues that were previously dependent on these workaround technologies.
399+
**Warning:** We recommend that new devstack setups on MacOS **no longer use** NFS for MacOS. At this time, this technology **leads to increased complexity and might cause errors**. Improvements to Docker's default FS have resolved bugs or performance issues that were previously dependent on this workaround technology.
400400

401-
For further details, read more about the forthcoming `deprecation of NFS`_ and `deprecation of docker-sync`_.
401+
For further details, read more about the forthcoming `deprecation of NFS`_.
402402

403-
Until these deprecated technologies go through the deprecation and removal process, the following deprecated instructions are left here for legacy purposes:
403+
Until this deprecated technology goes through the deprecation and removal process, the following deprecated instructions are left here for legacy purposes:
404404

405405
Setup NFS before provisioning:
406406

407407
.. code:: sh
408408
409409
make dev.nfs.setup
410410
411-
Provision using `docker-sync`_:
412-
413-
.. code:: sh
414-
415-
make dev.sync.provision
416-
417411
Provision using NFS:
418412

419413
.. code:: sh
420414
421415
make dev.nfs.provision
422416
423-
Start using `docker-sync`_:
424-
425-
.. code:: sh
426-
427-
make dev.sync.up
428-
429417
Start using NFS:
430418

431419
.. code:: sh
432420
433421
make dev.nfs.up
434422
435423
.. _deprecation of NFS: https://openedx.atlassian.net/browse/DEPR-161
436-
.. _deprecation of docker-sync: https://openedx.atlassian.net/browse/DEPR-162
437424

438425
.. _Docker Compose: https://docs.docker.com/compose/
439426
.. _Docker for Mac: https://docs.docker.com/docker-for-mac/
@@ -446,7 +433,6 @@ Start using NFS:
446433
.. _Pycharm Integration documentation: docs/pycharm_integration.rst
447434
.. _devpi documentation: docs/devpi.rst
448435
.. _edx-platform testing documentation: https://github.com/edx/edx-platform/blob/master/docs/guides/testing/testing.rst#running-python-unit-tests
449-
.. _docker-sync: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/troubleshoot_general_tips.html#improve-mac-osx-performance-with-docker-sync
450436
.. |Build Status provisioning| image:: https://github.com/edx/devstack/actions/workflows/provisioning-tests.yml/badge.svg?branch=master
451437
:target: https://github.com/edx/devstack/actions/workflows/provisioning-tests.yml
452438
:alt: Provisioning tests

docker-compose-sync.yml

Lines changed: 0 additions & 71 deletions
This file was deleted.

docker-sync.yml

Lines changed: 0 additions & 65 deletions
This file was deleted.

docs/developing_on_named_release_branches.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Switch between your Devstack releases by doing the following:
4040
#. Check out the appropriate branch in devstack, e.g. ``git checkout open-release/ironwood.master``
4141
#. Use ``make dev.checkout`` to check out the correct branch in the local
4242
copy of each service repository
43-
#. Bring up the containers with ``make dev.up``, ``make dev.nfs.up`` or ``make dev.sync.up``.
43+
#. Bring up the containers with ``make dev.up`` or ``make dev.nfs.up``.
4444

4545
**NOTE:** Additional instructions on switching releases using ``direnv`` can be found in `How do I switch releases using 'direnv'?`_ section.
4646

docs/devstack_faq.rst

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,7 @@ To run migrations for all services at once, run:
189189
make dev.migrate
190190
191191
Alternatively, you can discard and rebuild the entire database for all
192-
devstack services by re-running ``make dev.provision.<service>`` or
193-
``make dev.sync.provision`` as appropriate for your configuration. Note that
192+
devstack services by re-running ``make dev.provision.<service>``. Note that
194193
if your branch has fallen significantly behind master, it may not include all
195194
of the migrations included in the database dump used by provisioning. In these
196195
cases, it's usually best to first rebase the branch onto master to
@@ -261,9 +260,8 @@ database migrations and package updates.
261260
When switching to a branch which differs greatly from the one you've been
262261
working on (especially if the new branch is more recent), you may wish to
263262
halt and remove the existing containers via ``make down``, pull the latest Docker
264-
images via ``make dev.pull.<service>``, and then re-run ``make dev.provision.<service>`` or
265-
``make dev.sync.provision`` in order to recreate up-to-date databases,
266-
static assets, etc.
263+
images via ``make dev.pull.<service>``, and then re-run ``make dev.provision.<service>``
264+
in order to recreate up-to-date databases, static assets, etc.
267265

268266
If making a patch to a named release, you should pull and use Docker images
269267
which were tagged for that release.

docs/pycharm_integration.rst

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,10 @@ Prerequisites
1818
Before running Run or Debug in PyCharm
1919
--------------------------------------
2020

21-
Every time you run/debug a server or test in PyCharm, you must first ensure the
22-
following:
23-
24-
1. Ensure that all Docker images are stopped outside of PyCharm before starting
25-
a server or tests from inside PyCharm. PyCharm will potentially disable the
26-
start button with no further error when this problem occurs. See `Jetbrains
27-
ticket PY-22893`_.
28-
29-
2. Ensure you are not using docker-sync (i.e. not using any make commands with ``sync`` in their name). Read more about the `deprecation of docker-sync`_.
30-
31-
.. _deprecation of docker-sync: https://openedx.atlassian.net/browse/DEPR-162
21+
Every time you run/debug a server or test in PyCharm, you must first ensure
22+
that all Docker images are stopped outside of PyCharm. PyCharm will
23+
potentially disable the start button with no further error when this problem
24+
occurs. See `Jetbrains ticket PY-22893`_.
3225

3326
Setup a Remote Interpreter
3427
--------------------------

0 commit comments

Comments
 (0)