Compare commits

...

27 Commits

Author SHA1 Message Date
f7bec3fc08 fix: try to use other numpy types to store data collection 2022-06-11 14:00:36 +02:00
629f2e1cdb feat: update changelog 2022-03-11 18:52:30 +01:00
b8fed806ed feat: update version 2022-03-11 18:38:38 +01:00
8190846b59 fix: blender 3.1 numpy loading compatibility 2022-03-11 18:38:09 +01:00
c228b6ad7f refactpr: snapshot logs 2022-03-09 11:19:09 +01:00
48651ce890 fix: uuid error when joining a server 2022-03-09 10:42:44 +01:00
26847cf459 fix: server crashing during snapshots 2022-03-08 18:06:54 +01:00
bfa6991c00 fix: server docker file 2022-03-02 14:26:01 +01:00
70b6f9bcfa feat: update changelog for 0.5.2 2022-02-18 11:28:56 +01:00
8d176b55e4 Merge branch '250-geometry-nodes-attribue-toogle-doesn-t-sync' into 'develop'
Resolve "Geometry nodes attribue toogle doesn't sync"

See merge request slumber/multi-user!172
2022-02-17 09:51:41 +00:00
4c0356e724 fix: geometry node boolean parameter loading
related to #250
2022-02-17 10:43:47 +01:00
6b04d1d8d6 Merge branch '248-objects-not-selectable-after-user-leaves-session' into 'develop'
Resolve "objects not selectable after user leaves session"

See merge request slumber/multi-user!171
2022-02-15 10:03:58 +00:00
edfcdd8867 feat: bump version 2022-02-15 11:00:18 +01:00
bdd6599614 fix: objects not selectable after user leaves session (or kicked)
Related to #248
2022-02-15 10:55:26 +01:00
047bd47048 Merge branch '247-auto-updater-breaks-dependency-auto-installer' into 'develop'
feat: bump addon version

See merge request slumber/multi-user!170
2022-02-10 15:20:58 +00:00
d32cbb7b30 feat: bump addon version 2022-02-10 16:20:22 +01:00
adabce3822 Merge branch '247-auto-updater-breaks-dependency-auto-installer' into 'develop'
Resolve "Auto updater breaks dependency auto installer"

See merge request slumber/multi-user!168
2022-02-10 15:10:37 +00:00
62f52db5b2 fix: auto updater with tags 2022-02-10 16:06:53 +01:00
745f45b682 fix: addon directory not cleared during an update 2022-02-10 15:44:46 +01:00
f84860f520 feat: update changelog 2022-02-10 12:06:29 +01:00
c7ee67d4dd fix: replication typo (@kromar) 2022-02-10 11:58:09 +01:00
7ed4644b75 feat: added 0.5.0 update to the changelog 2022-02-10 11:55:14 +01:00
e0c4a17be9 feat: update version 2022-02-10 11:23:46 +01:00
2a6181b832 fix: replication typo 2022-02-10 11:23:01 +01:00
0f7c9adec5 fix: Panel calss prefix warning 2022-02-10 11:20:11 +01:00
f094ec097c doc: remove replication version 2022-02-10 11:15:08 +01:00
2495b5b0e7 Merge branch '245-skin-modifier-vertex-radius-not-synchronized' into 'develop'
Resolve "skin modifier vertex radius not synchronized"

See merge request slumber/multi-user!165
2022-02-07 14:08:22 +00:00
10 changed files with 74 additions and 23 deletions

View File

@ -217,3 +217,51 @@ All notable changes to this project will be documented in this file.
- GPencil fill stroke
- Sculpt and GPencil brushes deleted when joining a session (@Kysios)
- Auto-updater doesn't work for master and develop builds
## [0.5.0] - 2022-02-10
### Added
- New overall UI and UX (@Kysios)
- Documentation overall update (@Kysios)
- Server presets (@Kysios)
- Server online status (@Kysios)
- Draw connected user color in the user list
- Private session (access protected with a password) (@Kysios)
### Changed
- Dependencies are now installed in the addon folder and correctly cleaned during the addon removal process
### Fixed
- Python 3.10 compatibility (@notfood)
- Blender 3.x compatibility
- Skin vertex radius synchronization (@kromar)
- Sequencer audio strip synchronization
- Crash with empty after a reconnection
## [0.5.1] - 2022-02-10
### Fixed
- Auto updater breaks dependency auto installer
- Auto updater update from tag
## [0.5.2] - 2022-02-18
### Fixed
- Objects not selectable after user leaves session
- Geometry nodes attribute toogle doesn't sync
## [0.5.3] - 2022-03-11
### Changed
- Snapshots logs
### Fixed
- Server crashing during snapshots
- Blender 3.1 numpy loading error during early connection process
- Server docker arguments

View File

@ -206,9 +206,9 @@ You can run the dedicated server on any platform by following these steps:
.. code-block:: bash
python -m pip install replication==0.1.13
python -m pip install replication
4. Launch the server with:
3. Launch the server with:
.. code-block:: bash
@ -562,7 +562,7 @@ The default Docker image essentially runs the equivalent of:
.. code-block:: bash
replication.serve -pwd admin -p 5555 -t 5000 -l DEBUG -lf multiuser_server.log
replication.server -pwd admin -p 5555 -t 5000 -l DEBUG -lf multiuser_server.log
This means the server will be launched with 'admin' as the administrator password, run on ports 5555:5558, use a timeout of 5 seconds, verbose 'DEBUG' log level, and with log files written to 'multiuser_server.log'. See :ref:`cmd-line` for a description of optional parameters.

View File

@ -19,7 +19,7 @@
bl_info = {
"name": "Multi-User",
"author": "Swann Martinez",
"version": (0, 4, 1),
"version": (0, 5, 4),
"description": "Enable real-time collaborative workflow inside blender",
"blender": (2, 82, 0),
"location": "3D View > Sidebar > Multi-User tab",

View File

@ -1015,16 +1015,18 @@ class Singleton_updater(object):
for path, dirs, files in os.walk(base):
# prune ie skip updater folder
dirs[:] = [d for d in dirs if os.path.join(path,d) not in [self._updater_path]]
for directory in dirs:
shutil.rmtree(os.path.join(path,directory))
for file in files:
for ptrn in self.remove_pre_update_patterns:
if fnmatch.filter([file],ptrn):
try:
fl = os.path.join(path,file)
os.remove(fl)
if self._verbose: print("Pre-removed file "+file)
except OSError:
print("Failed to pre-remove "+file)
self.print_trace()
try:
fl = os.path.join(path,file)
os.remove(fl)
if self._verbose: print("Pre-removed file "+file)
except OSError:
print("Failed to pre-remove "+file)
self.print_trace()
# Walk through the temp addon sub folder for replacements
# this implements the overwrite rules, which apply after
@ -1701,7 +1703,7 @@ class GitlabEngine(object):
def parse_tags(self, response, updater):
if response == None:
return []
return [{"name": tag["name"], "zipball_url": self.get_zip_url(tag["commit"]["id"], updater)} for tag in response]
return [{"name": tag["name"], "zipball_url": f"https://gitlab.com/slumber/multi-user/-/jobs/artifacts/{tag['name']}/download?job=build"} for tag in response]
# -----------------------------------------------------------------------------

View File

@ -267,7 +267,7 @@ class addon_updater_update_now(bpy.types.Operator):
clean_install: bpy.props.BoolProperty(
name="Clean install",
description="If enabled, completely clear the addon's folder before installing new update, creating a fresh install",
default=False,
default=True,
options={'HIDDEN'}
)

View File

@ -172,7 +172,7 @@ def load_modifier_geometry_node_props(dumped_modifier: dict, target_modifier: bp
for input_index, inpt in enumerate(get_node_group_properties_identifiers(target_modifier.node_group)):
dumped_value, dumped_type = dumped_modifier['props'][input_index]
input_value = target_modifier[inpt[0]]
if dumped_type in ['INT', 'VALUE', 'STR']:
if dumped_type in ['INT', 'VALUE', 'STR', 'BOOL']:
logging.info(f"{inpt[0]}/{dumped_value}")
target_modifier[inpt[0]] = dumped_value
elif dumped_type in ['RGBA', 'VECTOR']:

View File

@ -24,9 +24,10 @@ import numpy as np
BPY_TO_NUMPY_TYPES = {
'FLOAT': np.float32,
'INT': np.int32,
'BOOL': np.bool}
'FLOAT': np.float,
'INT': np.int,
'BOOL': np.bool,
'BOOLEAN': np.bool}
PRIMITIVE_TYPES = ['FLOAT', 'INT', 'BOOLEAN']

View File

@ -1036,7 +1036,7 @@ class SessionLoadSaveOperator(bpy.types.Operator, ImportHelper):
def poll(cls, context):
return True
class SessionImportUser(bpy.types.Panel):
class SESSION_PT_ImportUser(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Users"
@ -1300,7 +1300,7 @@ classes = (
SessionNotifyOperator,
SessionSaveBackupOperator,
SessionLoadSaveOperator,
SessionImportUser,
SESSION_PT_ImportUser,
SessionStopAutoSaveOperator,
SessionPurgeOperator,
SessionPresetServerAdd,

View File

@ -22,4 +22,4 @@ RUN pip install replication==$replication_version
# Run the server with parameters
ENTRYPOINT ["/bin/sh", "-c"]
CMD ["replication.serve -apwd ${password} -spwd '' -p ${port} -t ${timeout} -l ${log_level} -lf ${log_file}"]
CMD ["replication.server -apwd ${password} -spwd '' -p ${port} -t ${timeout} -l ${log_level} -lf ${log_file}"]