TypeError when running R2D2 using CUDA

[x] I have marked all applicable categories:

[x] exception-raising bug
[ ] RL algorithm bug
[ ] system worker bug
[ ] system utils bug
[ ] code design/refactor
[ ] documentation request
[ ] new feature request

[x] I have visited the readme and doc
[x] I have searched through the issue tracker and pr tracker
[x] I have mentioned version numbers, operating system and environment, where applicable:

v0.4.5 1.12.1 3.7.15 (default, Nov 24 2022, 21:12:53)
[GCC 11.2.0] linux

Log
/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/gym/utils/passive_env_checker.py:21: UserWarning: WARN: It seems a Box observation space is an image but the `dtype` is not `np.uint8`, actual type: float32. If the Box observation space is not an image, we recommend flattening the observation to have only a 1D vector.
  f"It seems a Box observation space is an image but the `dtype` is not `np.uint8`, actual type: {observation_space.dtype}. "
/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/gym/utils/passive_env_checker.py:26: UserWarning: WARN: It seems a Box observation space is an image but the upper and lower bounds are not in [0, 255]. Generally, CNN policies assume observations are within that range, so you may encounter an issue if the observation values are not.
  "It seems a Box observation space is an image but the upper and lower bounds are not in [0, 255]. "
Env Space Information:
	Observation Space: Box(0.0, 1.0, (3, 84, 84), float32)
	Action Space: Discrete(4)
	Reward Space: Box(-inf, inf, (1,), float32)
Evaluation: Train Iter(0)	Env Step(0)	Episode Return(0.031)
Traceback (most recent call last):
  File "r2d2_memorygym.py", line 166, in <module>
    main()
  File "r2d2_memorygym.py", line 162, in main
    task.run()
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 168, in run
    self.forward(fn)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 48, in runtime_handler
    return func(task, *args, **kwargs)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 232, in forward
    g = fn(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 201, in forward
    g = self.forward(fn, ctx, async_mode=False)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 48, in runtime_handler
    return func(task, *args, **kwargs)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 232, in forward
    g = fn(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/middleware/learner.py", line 55, in __call__
    self._trainer(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 201, in forward
    g = self.forward(fn, ctx, async_mode=False)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 48, in runtime_handler
    return func(task, *args, **kwargs)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 232, in forward
    g = fn(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/middleware/functional/trainer.py", line 34, in _train
    train_output = policy.forward(ctx.train_data)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/policy/r2d2.py", line 260, in _forward_learn
    data = self._data_preprocess_learn(data)  # output datatype: Dict
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/policy/r2d2.py", line 193, in _data_preprocess_learn
    data = to_device(data, self._device)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/torch_utils/data_helper.py", line 54, in to_device
    raise TypeError("not support item type: {}".format(type(item)))
TypeError: not support item type: <class 'treetensor.torch.tensor.Tensor'>
srun: error: cgpu03-001: task 0: Exited with exit code 1

Steps to reproduce:
Run CartPole R2D2 example while setting cfg["policy"]["cuda"]=True.

I have fixed this bug in above commit, you can test this demo again.

Thanks for investigating this issue so quickly!
I'm running now into another (probably related) exception:
Traceback (most recent call last):
  File "r2d2_memorygym.py", line 166, in <module>
    main()
  File "r2d2_memorygym.py", line 162, in main
    task.run()
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 205, in run
    self.forward(fn)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 51, in runtime_handler
    return func(task, *args, **kwargs)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 273, in forward
    g = fn(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 237, in forward
    g = self.forward(fn, ctx, async_mode=False)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 51, in runtime_handler
    return func(task, *args, **kwargs)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 273, in forward
    g = fn(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/middleware/learner.py", line 60, in __call__
    self._trainer(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 237, in forward
    g = self.forward(fn, ctx, async_mode=False)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 51, in runtime_handler
    return func(task, *args, **kwargs)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/task.py", line 273, in forward
    g = fn(ctx)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/framework/middleware/functional/trainer.py", line 31, in _train
    train_output = policy.forward(ctx.train_data)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/policy/r2d2.py", line 260, in _forward_learn
    data = self._data_preprocess_learn(data)  # output datatype: Dict
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/policy/r2d2.py", line 193, in _data_preprocess_learn
    data = to_device(data, self._device)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/ding/torch_utils/data_helper.py", line 34, in to_device
    return item.to(device)
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/treevalue/tree/func/func.py", line 134, in _new_method
    _result = _treelized(self, *args, **kwargs)
  File "treevalue/tree/func/cfunc.pyx", line 176, in treevalue.tree.func.cfunc._w_func_treelize_run
  File "treevalue/tree/func/cfunc.pyx", line 151, in treevalue.tree.func.cfunc._c_func_treelize_run
  File "treevalue/tree/func/cfunc.pyx", line 75, in treevalue.tree.func.cfunc._c_func_treelize_run
  File "/work/mmarplei/anaconda3/envs/ding/lib/python3.7/site-packages/treetensor/torch/tensor.py", line 225, in to
    return stream_call(self.to, *args, **kwargs)
AttributeError: 'list' object has no attribute 'to'

I fixed this problem when processing prev_state field in the training data of R2D2.

Thanks for this fix! The Cartpole training runs now for some time, but eventually runs into a new exception:
INFO:root:Training: Train Iter(800)	Env Step(216384)	Loss(0.020)
INFO:root:Evaluation: Train Iter(810)	Env Step(217728)	Episode Return(14.125)
INFO:root:Evaluation: Train Iter(840)	Env Step(225792)	Episode Return(9.375)

[<ipython-input-5-ad3710b91483>](https://localhost:8080/#) in main()
     41         task.use(OffPolicyLearner(cfg, policy.learn_mode, buffer_))
     42         task.use(CkptSaver(cfg, policy, train_freq=100))
---> 43         task.run()
     44
     45

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in run(self, max_step)
    203         for i in range(max_step):
    204             for fn in self._middleware:
--> 205                 self.forward(fn)
    206             # Sync should be called before backward, otherwise it is possible
    207             # that some generators have not been pushed to backward_stack.

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in runtime_handler(task, async_mode, *args, **kwargs)
     49             return task
     50         else:
---> 51             return func(task, *args, **kwargs)
     52
     53     return runtime_handler

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in forward(self, fn, ctx)
    271         if not ctx:
    272             ctx = self.ctx
--> 273         g = fn(ctx)
    274         if isinstance(g, GeneratorType):
    275             try:

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in forward(ctx)
    235                     g = self.forward(fn, ctx, async_mode=False)
    236             else:
--> 237                 g = self.forward(fn, ctx, async_mode=False)
    238
    239             def backward():

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in runtime_handler(task, async_mode, *args, **kwargs)
     49             return task
     50         else:
---> 51             return func(task, *args, **kwargs)
     52
     53     return runtime_handler

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in forward(self, fn, ctx)
    271         if not ctx:
    272             ctx = self.ctx
--> 273         g = fn(ctx)
    274         if isinstance(g, GeneratorType):
    275             try:

[/usr/local/lib/python3.8/dist-packages/ding/framework/middleware/learner.py](https://localhost:8080/#) in __call__(self, ctx)
     53         train_output_queue = []
     54         for _ in range(self.cfg.policy.learn.update_per_collect):
---> 55             self._fetcher(ctx)
     56             if ctx.train_data is None:
     57                 break

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in forward(ctx)
    235                     g = self.forward(fn, ctx, async_mode=False)
    236             else:
--> 237                 g = self.forward(fn, ctx, async_mode=False)
    238
    239             def backward():

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in runtime_handler(task, async_mode, *args, **kwargs)
     49             return task
     50         else:
---> 51             return func(task, *args, **kwargs)
     52
     53     return runtime_handler

[/usr/local/lib/python3.8/dist-packages/ding/framework/task.py](https://localhost:8080/#) in forward(self, fn, ctx)
    274         if isinstance(g, GeneratorType):
    275             try:
--> 276                 next(g)
    277                 self._backward_stack[id(g)] = g
    278                 return g

[/usr/local/lib/python3.8/dist-packages/ding/framework/middleware/functional/data_processor.py](https://localhost:8080/#) in _fetch(ctx)
    129             if isinstance(buffer_, Buffer):
    130                 if unroll_len > 1:
--> 131                     buffered_data = buffer_.sample(
    132                         cfg.policy.learn.batch_size, groupby="env", unroll_len=unroll_len, replace=True
    133                     )

[/usr/local/lib/python3.8/dist-packages/ding/data/buffer/buffer.py](https://localhost:8080/#) in handler(buffer, *args, **kwargs)
     32                 return func(func_name, chain, *args, **kwargs)
     33
---> 34             return wrap_handler(buffer._middleware, *args, **kwargs)
     35
     36         return handler

[/usr/local/lib/python3.8/dist-packages/ding/data/buffer/buffer.py](https://localhost:8080/#) in wrap_handler(middleware, *args, **kwargs)
     24             def wrap_handler(middleware, *args, **kwargs):
     25                 if len(middleware) == 0:
---> 26                     return base_func(buffer, *args, **kwargs)
     27
     28                 def chain(*args, **kwargs):

[/usr/local/lib/python3.8/dist-packages/ding/data/buffer/deque_buffer.py](https://localhost:8080/#) in sample(self, size, indices, replace, sample_range, ignore_insufficient, groupby, unroll_len)
    142             sampled_data = [hashed_data[index] for index in indices]
    143         elif groupby:
--> 144             sampled_data = self._sample_by_group(
    145                 size=size, groupby=groupby, replace=replace, unroll_len=unroll_len, storage=storage
    146             )

[/usr/local/lib/python3.8/dist-packages/ding/data/buffer/deque_buffer.py](https://localhost:8080/#) in _sample_by_group(self, size, groupby, replace, unroll_len, storage)
    330         sampled_groups = []
    331         if replace:
--> 332             sampled_groups = random.choices(group_names, k=size)
    333         else:
    334             try:

[/usr/lib/python3.8/random.py](https://localhost:8080/#) in choices(self, population, weights, cum_weights, k)
    397                 _int = int
    398                 n += 0.0    # convert to float for a small speed improvement
--> 399                 return [population[_int(random() * n)] for i in _repeat(None, k)]
    400             cum_weights = list(_accumulate(weights))
    401         elif weights is not None:

[/usr/lib/python3.8/random.py](https://localhost:8080/#) in <listcomp>(.0)
    397                 _int = int
    398                 n += 0.0    # convert to float for a small speed improvement
--> 399                 return [population[_int(random() * n)] for i in _repeat(None, k)]
    400             cum_weights = list(_accumulate(weights))
    401         elif weights is not None:

IndexError: list index out of range

Can you always reproduce this IndexError?

This bug is not always reproducible.

This means that there is no group in the buffer.
Another question, why use group sample in cartpole training, can you provide your main file?

R2D2_CartPole_v1_0.zip
Here is the Jupyter Notebook that I'm running on Colab.

unroll_len is set to 42 in the configuration of r2d2, which may be too large for some environments. So not enough samples are collected and stored in the buffer. When sampling, it will actively filter out the group with insufficient unroll_len, which may happen the exception above. The solution is reduce the value of unroll_len.

@MarcoMeter Are you still dealing with this issue？

I ran the CartPole training three times using an unroll_len of 20. The exception did not occur again. How can I determine an unroll_len that does not cause this exception?


try to fix leaky pythonpath

This weekend I was working on adding a test suite for https://github.com/abathur/lilgit, which has a python38 ~daemon component built with buildPythonPackage, and a bash script built with resholvePackage.
While running tests inside the build, I caught it throwing these errors:
# Traceback (most recent call last):
#   File "/nix/store/m8z2yhhk3zz2m54m5j5gis1knkx7hmzl-python3.8-lilgitd/bin/.lilgitd-wrapped", line 10, in <module>
#     import pygit2
#   File "/nix/store/sszh0x02c6kaazkvvnxax4iis2akfhm5-python3.8-pygit2-1.4.0/lib/python3.8/site-packages/pygit2/__init__.py", line 36, in <module>
#     from .config import Config
#   File "/nix/store/sszh0x02c6kaazkvvnxax4iis2akfhm5-python3.8-pygit2-1.4.0/lib/python3.8/site-packages/pygit2/config.py", line 26, in <module>
#     from cached_property import cached_property
#   File "/nix/store/5way8wx6hfd7p3c84lzr0rcycahqlkpk-python3.8-cached-property-1.5.1/lib/python3.8/site-packages/cached_property.py", line 12, in <module>
#     import asyncio
#   File "/nix/store/cf88yvm21kwal2bvgk8pgyjsbw3v0ixj-python3-3.8.6/lib/python3.8/asyncio/__init__.py", line 8, in <module>
#     from .base_events import *
#   File "/nix/store/cf88yvm21kwal2bvgk8pgyjsbw3v0ixj-python3-3.8.6/lib/python3.8/asyncio/base_events.py", line 45, in <module>
#     from . import staggered
#   File "/nix/store/cf88yvm21kwal2bvgk8pgyjsbw3v0ixj-python3-3.8.6/lib/python3.8/asyncio/staggered.py", line 6, in <module>
#     import typing
#   File "/nix/store/ky3z16f20y7gklmrz2r21f2f7bljwlwq-python2.7-typing-<IP_ADDRESS>/lib/python2.7/site-packages/typing.py", line 782, in <module>
#     AnyStr = TypeVar('AnyStr', bytes, unicode)
# NameError: name 'unicode' is not defined

When I poked around, I realized that resholve's python27 dependencies were in the PYTHONPATH. The current PR seems to fix this (not sure how canonically...) for resholvePackage, but I guess that ignores the real issue(s):

resholve itself is built with buildPythonApplication and uses propagatedBuildInputs for its module dependencies (which, AFAIK, is correct).
I thought the point of buildPythonApplication was to avoid leaking PYTHONPATH, so I'm a little confused. The docs say Python applications can be installed in your profile, and will be wrapped to find their exact library dependencies, without impacting other applications or polluting your user environment.

Am I holding it wrong?
Is there some subtle distinction between how they're treated when used as a buildInput vs added to a profile? 😬

2. I thought the point of buildPythonApplication was to avoid leaking PYTHONPATH, so I'm a little confused. The docs say Python applications can be installed in your profile, and will be wrapped to find their exact library dependencies, without impacting other applications or polluting your user environment.

As pointed out on IRC, there is a difference between buildInputs and profile dependencies. propagatedBuildInputs of dependencies in buildInputs are essentially added to buildInputs, which is by definition.
There is a PR to switch Python derivations away from propagatedBuildInputs https://github.com/NixOS/nixpkgs/pull/102613 but until then, I would recommend removing the support file in postFixup like we do in Meson:
https://github.com/NixOS/nixpkgs/blob/02828f91f15668ce6a757b6ef1d2d8430a403194/pkgs/development/tools/build-managers/meson/default.nix#L77-L79

2. I thought the point of buildPythonApplication was to avoid leaking PYTHONPATH, so I'm a little confused. The docs say Python applications can be installed in your profile, and will be wrapped to find their exact library dependencies, without impacting other applications or polluting your user environment.

As pointed out on IRC, there is a difference between buildInputs and profile dependencies. propagatedBuildInputs of dependencies in buildInputs are essentially added to buildInputs, which is by definition.
There is a PR to switch Python derivations away from propagatedBuildInputs https://github.com/NixOS/nixpkgs/pull/102613 but until then, I would recommend removing the support file in postFixup like we do in Meson:
https://github.com/NixOS/nixpkgs/blob/02828f91f15668ce6a757b6ef1d2d8430a403194/pkgs/development/tools/build-managers/meson/default.nix#L77-L79


Python interpreter

Description

Extract utils.py as a individual module camel.utils
Add PythonInterpreter class in camel.utils, an abstraction controlable python code executor. It contains several features than eval() like variable accessing control, module import, and fuzzy variable matching. It is also extendable and flexiable.
Change code executor of EmbodiedAgent from built-in function eval() to PythonInterpreter

Motivation and Context
#150

[x] I have raised an issue to propose this change (required for new features and bug fixes)

Types of changes
What types of changes does your code introduce? Put an x in all the boxes that apply:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds core functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)
[x] Documentation (update in the documentation)
[ ] Example (update in the folder of example)

Implemented Tasks

[ ] Subtask 1
[ ] Subtask 2
[ ] Subtask 3

Checklist
Go over all the following points, and put an x in all the boxes that apply.
If you are unsure about any of these, don't hesitate to ask. We are here to help!

[x] I have read the CONTRIBUTION guide. (required)
[x] My change requires a change to the documentation.
[x] I have updated the tests accordingly. (required for a bug fix or a new feature)
[x] I have updated the documentation accordingly.

The example in hugging_face_tool.py has been run successfully.

Thanks, @dandansamax. Looks amazing. I will look into it soon!

Please resolve the remaining comment about the reference to the original code.

Updated. Could you please review it?


AssignChiralTypesFromBondDirs depends on bond creation order?

It might be that I am wrong, but I would assume AssignChiralTypesFromBondDirs should not depend on bond creation order, but should consider only BEGINDASH BEGINWEDGE params of given bonds. See below example:
from rdkit import Chem
from rdkit.Chem import AllChem

def create_mol1():
    editable_mol = Chem.EditableMol(Chem.Mol())
    atoms_id = dict()
    bonds_id = dict()
    atoms_id['Cq'] = editable_mol.AddAtom(Chem.Atom('C'))
    atoms_id['Cl'] = editable_mol.AddAtom(Chem.Atom('Cl'))
    atoms_id['F'] = editable_mol.AddAtom(Chem.Atom('F'))
    atoms_id['CH3'] = editable_mol.AddAtom(Chem.Atom('C'))
    atoms_id['CH2'] = editable_mol.AddAtom(Chem.Atom('C'))
    atoms_id['I'] = editable_mol.AddAtom(Chem.Atom('I'))
    bonds_id['F-Cq'] = editable_mol.AddBond(atoms_id['F'], atoms_id['Cq'], Chem.BondType.SINGLE) # 1 n 2 0
    bonds_id['CH2-I'] = editable_mol.AddBond(atoms_id['CH2'], atoms_id['I'], Chem.BondType.SINGLE) # 1 n 3 5
    bonds_id['Cq-Cl'] = editable_mol.AddBond(atoms_id['Cq'], atoms_id['Cl'], Chem.BondType.SINGLE) # 1 n 0 1
    bonds_id['Cq-CH2'] = editable_mol.AddBond(atoms_id['Cq'], atoms_id['CH2'], Chem.BondType.SINGLE) # 1 w 0 3
    bonds_id['Cq-CH3'] = editable_mol.AddBond(atoms_id['Cq'], atoms_id['CH3'], Chem.BondType.SINGLE) # 1 h 0 4
    mol = editable_mol.GetMol()
    mol.GetBondWithIdx(bonds_id['Cq-CH3'] -1).SetBondDir(Chem.BondDir.BEGINDASH)
    mol.GetBondWithIdx(bonds_id['Cq-CH2'] -1).SetBondDir(Chem.BondDir.BEGINWEDGE)
    Chem.SanitizeMol(mol)
    AllChem.Compute2DCoords(mol)
    Chem.AssignChiralTypesFromBondDirs(mol)
    Chem.AssignStereochemistry(mol, force=True, cleanIt=True)
    return Chem.MolToSmiles(mol)

def create_mol2():
    editable_mol = Chem.EditableMol(Chem.Mol())
    atoms_id = dict()
    bonds_id = dict()
    atoms_id['Cq'] = editable_mol.AddAtom(Chem.Atom('C'))
    atoms_id['Cl'] = editable_mol.AddAtom(Chem.Atom('Cl'))
    atoms_id['F'] = editable_mol.AddAtom(Chem.Atom('F'))
    atoms_id['CH3'] = editable_mol.AddAtom(Chem.Atom('C'))
    atoms_id['CH2'] = editable_mol.AddAtom(Chem.Atom('C'))
    atoms_id['I'] = editable_mol.AddAtom(Chem.Atom('I'))
    bonds_id['F-Cq'] = editable_mol.AddBond(atoms_id['F'], atoms_id['Cq'], Chem.BondType.SINGLE) # 1 n 2 0
    bonds_id['CH2-I'] = editable_mol.AddBond(atoms_id['CH2'], atoms_id['I'], Chem.BondType.SINGLE) # 1 n 3 5
    bonds_id['Cq-Cl'] = editable_mol.AddBond(atoms_id['Cq'], atoms_id['Cl'], Chem.BondType.SINGLE) # 1 n 0 1
    bonds_id['Cq-CH3'] = editable_mol.AddBond(atoms_id['Cq'], atoms_id['CH3'], Chem.BondType.SINGLE) # 1 h 0 4
    bonds_id['Cq-CH2'] = editable_mol.AddBond(atoms_id['Cq'], atoms_id['CH2'], Chem.BondType.SINGLE) # 1 w 0 3
    mol = editable_mol.GetMol()
    mol.GetBondWithIdx(bonds_id['Cq-CH3'] -1).SetBondDir(Chem.BondDir.BEGINDASH)
    mol.GetBondWithIdx(bonds_id['Cq-CH2'] -1).SetBondDir(Chem.BondDir.BEGINWEDGE)
    Chem.SanitizeMol(mol)
    AllChem.Compute2DCoords(mol)
    Chem.AssignChiralTypesFromBondDirs(mol)
    Chem.AssignStereochemistry(mol, force=True, cleanIt=True)
    return Chem.MolToSmiles(mol)
print(create_mol1())
print(create_mol2())

C[C@@](F)(Cl)CI
C[C@](F)(Cl)CI

Both functions (create_mol1, create_mol2) are actually the same, but bond: Cq-CH3 and Cq-CH2  (the two which should be hashed and wedged) are created in oposite order. As we can see as a result moles with opposite stereochemistry are created. My impression is that it is not correct behaviour and both moles should have the same configuration. If we set BEGINDASH, BEGINWEDGE for only one bond, then bonds creation order should matter, otherwise IMHO shouldn't.
Rdkit version: 2020.09.1
Python version: 3.7
Python and rdkit source: anaconda

@greglandrum. Well I do not fully agree with you. What you presented is depiction made by software due to the wrong chirality calculation. I fully agree with you, that from that type of picture everyone would have problems to assign stereochemistry, but at the begining one does not have any coordinates, any picture. There can't be any ambigouity. You have only bonds and the information which is dashed and which is wedged. For a human it is enought to sketch the molecule correctly - it might be more difficult for computer, I agree.
I understand how it is internally calculated in rdkit, but in my opinion if two bonds are defined, and they are not ambiguous rdkit should deal with the situation.
I agree that it is not easy to say whether it is a bug or a feature. If you think everything is OK, then please close the ticket.

I don't understand what you mean. You set which bonds were wedged in your code. The drawing just shows the wedging that you provided. You set the wedges information without paying attention to where the atoms were positioned (wedges don't make any sense without atom positions) and ended up providing contradictory information.

I selected two bonds to be wedged and dashed respectively. And you are right, I did not pay attention what are atoms position, as at the time i SetBondDir this information was unknown. I assumed  Compute2DCoords would use this information for proper calculation, but apparently I was wrong (actually Compute2DCoords is used only because AssignChiralTypesFromBondDirs did not work without) which in my opinion should be the case. But if it is not considered a bug, then I do not have any problems with closing the ticket. I've just need to revrite some code due to the wrong assumptions I made, and which were not clear for me from documentation.
Thanks Greg.

Ok, now I get it.
To be explicit:

Compute2DCoords() does not currently use information about bond wedging when it works. The RDKit supports bond wedging because it's required to generate drawings and to deal with mol blocks, but the primary representation for stereochemistry that it uses are the atomic tags which lead to the @ and @@ in SMILES.
AssignChiralTypesFromBondDirs() does in fact need a conformer since a wedged bond without coordinates (ideally 2D coordinates) carries no meaning. This is a bit part of the reason why the primary stereochemistry representation is atom-centered.


Purge Fastly CDN after import_versions.

fixes https://github.com/boostorg/website-v2/issues/1277

Makes the required POST requests to Fastly to purge the cache for /release/ as described in the issue above.

Chain the purge function to the import_version task group so that it runs only after all of the import_version tasks have completed

looks good, can you also add @sdarwin as a reviewer, as he would better understand what effects your PR would have.

When you think it's ready, feel free to merge


Support custom items in context menu

The current contextMenuBuilder is pretty damn good, but let's say you want to add just one more field (for instance Exit Fullscreen, you'd have to go back to building your own).
This adds the ability to add custom MenuItems. No breaking change.

@paulcbetts Updated!

💖


Add topics for climate earth system discipline

From the existing AHL we could have (under surface based observations):

T1
T2
A1
II
Data type
BUFR data category
BUFR data sub-category
Proposed topic

I
S
C
01-45
Climatic observations from land station
0
20
./CLIMAT

I
S
C
60
Climatic observations (monthly reports of daily climate data)
0
21
./DAYCLI

It would be good to move away from the historic TAC keywords, I'd like to propose updating to monthly and daily, e.g.
cache/a/wis2//data/core/climate/surface-based-observations/monthly
cache/a/wis2//data/core/climate/surface-based-observations/daily

Should we close this issue, because these are included in https://github.com/wmo-im/wis2-topic-hierarchy/issues/147

No, I think it's useful to keep the issues separate to make consultation easier.


Improve request evaluator cycle diagnostics

This PR:

Refactors DiagnosticEngine's declaration-pretty-printing facility to allow it to be used from extractNearestSourceLoc(), improving cycle diagnostics that were previously emitted at <invalid>:0.
Modifies the -debug-cycles output to indicate which request in the dumped stack was repeated.

I haven't figured out how to test these changes yet, which is why this is still currently a WIP.

@swift-ci please test

The previous test case was very fragile and is, in itself, a bug we probably ought to fix. I've filed that bug as SR-14324 and added a command-line argument to the frontend which artificially creates a request cycle involving arbitrary types that we can diagnose.

Build failed
Swift Test Linux Platform
Git Sha - 0e13dba14885d604f830a322d4129bd5f3b6a29a

@swift-ci please test Linux platform

Build failed
Swift Test Linux Platform
Git Sha - 0e13dba14885d604f830a322d4129bd5f3b6a29a

Build failed
Swift Test OS X Platform
Git Sha - 0e13dba14885d604f830a322d4129bd5f3b6a29a

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test macOS platform


Step content is hidden when navigating to a route with parameters

Step content is hidden when navigating to a route with parameters. The backdrop is still there but the popover won't show
// app.component.ts
this.tour.initialize([
    {
        anchorId: 'dashboard',
        content: 'Dashboard sample content',
        route: '/dashboard',
    },
    {
        anchorId: 'omnisearch',
        content: 'Search for a zip code',
        route: '/zipcode/95001',
    },

]);
this.tour.start();

// app.routing.ts
const routes: Routes = [
    {
      path: 'dashboard',
      component: DashboardComponent,
    },
    {
      path: 'zipcode',
      children: [
        {
          path: '',
          component: ZipcodeLandingComponent,
          pathMatch: 'full'
        },
        {
          path: ':zipCode',
          component: ZipcodeReport,
        }
      ]
    },
  ];

Do you get any errors in console?

No errors. The step is hidden on this part of tour.service
private setCurrentStep(step: T): void {
    this.currentStep = step;
    this.showStep(this.currentStep);
    this.router.events
        .pipe(filter(event => event instanceof NavigationStart), first())
        .subscribe(() => {
            if (this.currentStep && this.currentStep.hasOwnProperty('route')) {
                this.hideStep(this.currentStep);
            }
        });
}

Can you create a demo project reproducing the issue?

I think this only exist on the project I'm currently working on. I've tested it on a new project with similar structure of routing and it worked. After adding delayAfterNavigation the step is now showing.
Thank you for checking! closing this one


Periodic dep lock update because we're a library

Manual ping to update locked dependencies. Being a library, xaitk-saliency should strive to be compatible with its stated abstract requirements when installed in the wild. Since developers and CI use our checked in, locked updates for consistency, we should check that updating these periodically does not break anything. Breakage may either lead to a constraint being added to the abstract dependencies specified or an issue in need of fixing.
Maybe this should be incorporated into CI somewhere/how, but I don't have an immediate vision on that right now.

@brianhhu about to push an update that adds documentation to the "design decisions" page (couldn't think of a better place).

LGTM, thanks for adding the extra documentation.


Update Retirement Receipt Page

As part of the Fiat 2 Retirement workstream, the retirement receipt page design was enhanced.

[ ] Include new CTA button in top retirement info section called "Claim Your Pledge Dashboard".
[ ] Remove current social share icons.
[ ] Include new section called "Share Your Impact" (note new location of social share icons).

@theprofessora can you make sure my to-do list above captures a summary of all the design changes compared to current production version of the receipt (example here)

yes, if you go to the figma file, you'll see 2 "claim your pledge dashboard" ctas. Please include both of them in the enhancement

@0xAeterno @Atmosfearful with fiat2retire now live, I think the updates to this page become more of a priority given the connection of the journey through to the pledge page.

@jabby09 Could I please be added to the figma file with these changes?
https://www.figma.com/file/gIsDanJUvVwQE4QqSh36Rr/Fiat-2-Retirement?node-id=11%3A9010

@jabby09 Could I please be added to the figma file with these changes?
https://www.figma.com/file/gIsDanJUvVwQE4QqSh36Rr/Fiat-2-Retirement?node-id=11%3A9010

@0xemc email to use?
@theprofessora another figma file share request coming your way

All sorted now @jabby09 thanks 🙏

OK as I discussed with @theprofessora a large "claim your pledge" button does not make sense for two reasons:

It only applies to a user who is connected, and the beneficiary of this retirement
going from Offset -> Retirement Page requires you to reconnect your wallet.

Ignoring the larger architectural problem of having two apps for the same journey (a solution for that is being explored), I recommended a few options to Professor but we need a design. Let's split that into a separate ticket @jabby09
So hold off on that bit. We can continue with the improved Social Share section @0xemc @jabby09

@Atmosfearful @jabby09 @0xemc new retirement receipt as discussed: https://www.figma.com/file/HXwNOLfM9CQHgwmouz0rpk?node-id=1609:1771#307609267

@0xemc you should be good to go now!

Hey @jabby09, on it now. Will  be ready by 19th Nov at the latest.
There are also a few other small differences between the designs and the current page, if you're ok with it I will go ahead and update those too.

@theprofessora @jabby09 quick design task that has been mentioned on calls but never made it to the figmas:

Each receipt page should only have one project (designs show several).
We currently show the "total available tonnes" below each project which isn't that informative IMO Remove that number entirely?

@jabby09 there are a fair few differences between the design and the current page.

Poppins font has been replaced with Inter for headers (h1...h5)
Some colors I can't find in the design system (eg. surface-05) I think they're no longer in the new system?
Font sizes don't match any existing definitions in the codebase (20px for the titles in the retirement summary)

Happy to make these changes here specifically but I want to make sure it's consistent with the rest of the site (if so we might need to update our defined styles in the codebase)

@theprofessora please see atmos and Oxemc comments above, sounds like this design might need one more pass?

Hi everyone, I think I've fixed everything. Sorry a lot of the components were legacy from previous designers and from before we had a slight font rebrand. I hadn't taken the time to go through the minutia; had instead dragged the components in and placed them. Spent all morning fixing the root components so they're all aligned now. @Atmosfearful I can't find where you're talking about the hyperlink icon

@theprofessora what @Atmosfearful is referring to is the icon beside the project hyperlink that indicates you will be redirected to a different site, so for example:

OK All set!

@0xemc you should be good to go now, let me know if there are still any questions or unclear requirements

Thanks @jabby09 on it! 👍

Hello @0xemc hope things are going well. Do you have an ETA on when this would be ready for QA? thanks!

Hey @jabby09 sorry for the delay. The fixes have been deployed now as part of this PR:
https://github.com/KlimaDAO/klimadao/pull/804

@0xemc I left a comment in #804 with feedback.

I'll wait for #816  to be addressed and referenced here. Meanwhile moving this to "In Progress". The social share portion is complete and passed QA.


How to set Bouncycastle as the security provider for Kafka broker?

To set security.providers do not work well for kafka broker and bouncycastle(BC) does not take effection. So we should make the bouncycastle(BC) with highest priority in the JVM.
security.providers=org.bouncycastle.jce.provider.BouncyCastleProvider,org.bouncycastle.jsse.provider.BouncyCastleJsseProvider

1. To find the java.security file with the command
cd /usr/lib/jvm/
find . -name java.security
vim ./java-17-openjdk-amd64/conf/security/java.security

2. Edit the java.security File. Here is the default configuration in Java 17
security.provider.1=SUN
security.provider.2=SunRsaSign
security.provider.3=SunEC
security.provider.4=SunJSSE
security.provider.5=SunJCE
security.provider.6=SunJGSS
security.provider.7=SunSASL
security.provider.8=XMLDSig
security.provider.9=SunPCSC
security.provider.10=JdkLDAP
security.provider.11=JdkSASL
security.provider.12=SunPKCS11

3. Add Bouncy Castle Provider: to make the bouncycastle(BC) with highest priority in the JVM
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
security.provider.3=SUN
security.provider.4=SunRsaSign
security.provider.5=SunEC
security.provider.6=SunJSSE
security.provider.7=SunJCE
security.provider.8=SunJGSS
security.provider.9=SunSASL
security.provider.10=XMLDSig
security.provider.11=SunPCSC
security.provider.12=JdkLDAP
security.provider.13=JdkSASL
security.provider.14=SunPKCS11

4. At last, to reboot the system to make bouncycastle(BC) with highest priority take effection.
5. Restart Kafka Broker

After  security.providers in jvm works, the broker should config as following. Then the kafka broker will use org.bouncycastle.jce.provider.BouncyCastleProvider as jce provider and use org.bouncycastle.jsse.provider.BouncyCastleJsseProvider as jsse provider.
security.providers=org.bouncycastle.jce.provider.BouncyCastleProvider,org.bouncycastle.jsse.provider.BouncyCastleJsseProvider

The difference between JCE and JSSE from ChatGPT 3.5
In the context of Java, JCE (Java Cryptography Extension) and JSSE (Java Secure Socket Extension) are two different providers used for different purposes within the realm of cryptography and security.
JCE (Java Cryptography Extension):
Purpose: JCE is primarily focused on cryptographic operations and provides a framework for implementing cryptographic algorithms, such as encryption, decryption, hashing, and digital signatures, in Java applications.
Common Use Cases: It is commonly used for securing data at rest, like encrypting files or sensitive data stored in databases. It can also be used for secure communication over non-network protocols.
Examples of Usage: Encrypting and decrypting data using AES, RSA, or DES; creating and verifying digital signatures; calculating hash values; generating random numbers for cryptographic purposes.
Providers: JCE provides a standard set of cryptographic algorithms and allows different cryptographic providers to be plugged in. Providers like "SunJCE" (the default provider in the Oracle JDK) offer implementations of these algorithms.
JSSE (Java Secure Socket Extension):
Purpose: JSSE is primarily focused on securing network communication using SSL/TLS protocols. It provides the necessary APIs and implementations for creating secure network connections, typically over TCP/IP.
Common Use Cases: JSSE is commonly used in Java applications for securing communication between clients and servers, such as HTTPS (HTTP over TLS/SSL) for web applications, secure email communication (SMTPS, POP3S, IMAPS), and securing other network protocols.
Examples of Usage: Creating secure socket connections, configuring SSL/TLS parameters, verifying server certificates, and establishing encrypted communication channels.
Providers: JSSE also supports different cryptographic providers. "SunJSSE" is the default provider for SSL/TLS functionality in the Oracle JDK.

As to kafka client, we sholuld let bouncycastle JCE and JEES with highest poriority in the code.
        // Register BouncyCastleProvider when client (producer or consumer) start in main
        Security.insertProviderAt(new BouncyCastleProvider(), 1);
        Security.insertProviderAt(new BouncyCastleJsseProvider(), 2);

       //Set the client (producer and consumer) properties and configurations
      p.setProperty("security.providers",
          "org.bouncycastle.jce.provider.BouncyCastleProvider,org.bouncycastle.jsse.provider.BouncyCastleJsseProvider");

You can find detailed info from the code of client (producer or consumer)


Add cff-validator to Tooling table

Related issues
Fix #340
Describe the changes made in this pull request

Adds a link to to cff-validator GH Action to the Tooling table.

Review checklist

[x] Please check if the pull request is against the correct branch
(format/schema/semantic documentation changes: develop; typos, meta files, etc.: main)
[x] Please check if all changes are recorded in CHANGELOG.md and adapt if necessary. N/A
[x] Please run tests locally. N/A

cd $(mktemp -d --tmpdir cff.XXXXXX)
git clone https://github.com/citation-file-format/citation-file-format .
git checkout <branch>
python3 -m venv env
source env/bin/activate
pip install --upgrade pip wheel setuptools
pip install -r requirements.txt
pytest

[x] Click the link in the table :wink:

Good to go

Cheers, that was quick :taco: :+1:.


How-to Trust internal CA through Operator ?

Hi team,
When using internal services with TLS authentication, we are facing problems with integrating of our root certificate. What would be the best solution?
1st case where this is a problem, using an internal smtp with TLS for email notifications on Opensearch Dashboard:
EmailException javax.mail.MessagingException: Could not convert socket to TLS;                                                             │
│   nested exception is:                                                                                │
│     javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

We tried the use general.keystore with our CA Cert inside a secret without conclusive result:
 general:
    # ...
    keystore:
    - secret:
        name: internal-root-ca
      keyMappings:
        ca.crt: ca.crt

Using initContainer would be the solution?
Thanks a lot

[Triage]
Hey @piellick if I'm not wrong you trying to connect to an smtp server through dashboards pod and you end up this PKIX error? If so you can try add the root CA cert, by the way did you try with keytool manually inside the pod to update the cacerts?
https://docs.microfocus.com/SM/9.41/Classic/Content/security/tasks/update_the_cacerts_keystore_file.htm


Update broadway, gen_stage and other dependencies

This PR tries to reflect the relevant changes in the Elixir world over the last 4 years to bring the package more or less up to date. Mainly the compatibility with Broadway and Tortoise, also deprecation warnings, linter errors, flaky tests.
It's far from perfect, but seems to work in the current state.

I'll go on and merge already to be able to use the package, but feedback is welcome and I would address it afterwards.


Updated code & cordova ios version

Updated Dockerfile
Updated from watson-developer-cloud npm package to ibm-watson
Updated cordova ios version since the earlier version was throwing an error.

Thanks Riya!


API Endpoints for Export

API Endpoints for:
Export Endpoint
QA Export

Swagger link for QA API:
https://api-easey-dev.app.cloud.gov/qa-certification-mgmt/swagger/#/
Parameters:
Begin Date: not required
End Date: not required
Must provide a facility and atleast one unit and stack
unit and stack will not be marked as required on swagger

Test Case: TC773


It's because the content format of SYS type message is not the same as the other message.


docs: fix incorrect word, change "搜搜" to "搜索"

修复readme中的错别字，"搜搜"修改为"搜索"。

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Considering android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS support on Android

I compared https://pub.dev/packages/flutter_background and https://pub.dev/packages/flutter_foreground_task and I wonder if it was possible to add support for android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS permissions on Android. Not sure if https://stackoverflow.com/questions/44862176/request-ignore-battery-optimizations-how-to-do-it-right is something to watch out for (Android 6 is API 23, currently the package min SDK is 21 so theoretically yes). I haven't looked deeper into https://github.com/JulianAssmann/flutter_background yet to see what else is needed for that permission.

The function to request the android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS permission is already implemented.
https://github.com/Dev-hwang/flutter_foreground_task#lollipop-requestignorebatteryoptimization-android

Gotcha. I see that https://github.com/Dev-hwang/flutter_foreground_task/blob/master/android/src/main/kotlin/com/pravera/flutter_foreground_task/utils/ForegroundServiceUtils.kt has the ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS mechanisms and the host app has to add the android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS


Where is version 1.4.7 ?

Version 1.4.7 is missing which Abot depends on - where has it gone?

Hello @paulbackhouse ,
It seems this version doesn't exist at all on NuGet (even in the unlisted version).
I would recommend you to upgrade to a newest version, perhaps 1.4.8 since I don't have any idea why this version is not on NuGet or how to recover it.
Best Regards,
Jonathan

I get manifest errors within the crawl method of Abot based on Manifest version differencies.
I fixed by rolling abot to version <IP_ADDRESS> - this restored HtmlAgilityPack to 1.4.7 (:S), you should add to dependency list though as it is currently not listed as a dependency

Abot has a dependency on HtmlAgilityPack, perhaps it is within AngleSharp - you may be right, both Abot and AngleSharp do not mention this dependency though

Hello @parsalotfy ,
This issue will be closed since it has been answered.
Feel free to reopen it if you feel otherwise.
Best Regards,
Jonathan


chore: updates dep-graph

@homu r+

:pushpin: Commit c625c77 has been approved by kbknapp

:zap: Test exempted - status


Where is the changlog？

I don't see it in the docs.

We no longer maintain an explicit change log. We have Release Notes, that are manually curated.
You may also take a look at closed issues per milestone, if you are looking for a more detailed, technical view.

I want to use 3.0 from 2.x，but I can't see all changelog in 3.0 release note，Some are included in milestone releases. It's good to include all changelogs when it is released steadily.


Calling get-updates in a loop makes the software crashes

Hello,
When a drakma http request uses :want-stream t a stream is returned; as far as i can see in get-updates the stream is never closed, this results in a great number of socket opened that keeps growing until an error 'to many file openened' is raised. Eventually the software crashes.
Please consider the patch you can find at this mirror (the last commit should mitigate this issue).
https://notabug.org/cage/cl-telegram-bot
Bye.
C.

You're right.

Thank you!
I am a bit recluctant to make a fork here on github, is ok for you if i sent the patch to a your personal email?
You can find mine here: https://notabug.org/cage/cl-pslib/src/master/README#L136 :))
Or I can attach the patch here if you prefer.
Bye and thank you again!
C.

It's ok. I just want your contribution to appear here so you're given proper credit for it.

The only (irrelevant) issue with this fix is that I don't feel closing the stream belongs to the decoder, which is the reason I overlooked it (the user should close the stream, and I forgot that in the example); this is reasonable though, as decoding should only happen once. Merged, thank you. If you want, with your permission, I would merge your other changes.

Hello!
Sure you can apply the other changes! :)
Bye.
C.

Hello,
Also please merge the last commit.
Bye!
C.


Feat/backend/ticket interaction

Linting errors for some of the backend. I will quickly fix them and approve the PR.


Update cypress to 9.1.1

Codecov Report

Merging #110 (d0de6d2) into main (03db9e5) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #110   +/-   ##
=======================================
  Coverage   51.57%   51.57%
=======================================
  Files          15       15
  Lines         539      539
=======================================
  Hits          278      278
  Misses        210      210
  Partials       51       51

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 03db9e5...d0de6d2. Read the comment docs.

@ramchale closing this as cypress is now at v10.3.0


[test-only] Port tests from #5771

Port tests from #5771

:boom: Acceptance test localApiTests-apiGraph-ocis failed. Further test are cancelled...

@ScharfViktor There are no changes in this PR. Are the changes merged already in another PR? or maybe it got removed by a force push?


Docs/pipeline docs update

Comments addressed.  I've already deployed to https://kitware.github.io/dive/Pipeline-Documentation/ but if I need to make more tweaks i can.  I think this gets everything though.


add compatibility with encryptssh

Having to type a long passphrase is not always very easy.
I prefer to log into my linux system from another computer or phone, and use a password manager to copy/paste the decryption phrase. Or sometimes, I want to be able to boot my computer from afar, when I cannot plug my yubikey in it
For that, I use dropbear and encryptssh from mkinitcpio-utils
The issue is that encryptssh is lost when ykfde did successfully opened my disk.
To fix it, I just touch /.done, which encryptssh use to know that the luks volume is opened.
That way, in the normal setup, when my yubikey is plugged, the boot is automatic, but if it's not, I can start my computer from afar.

thx


Update organizations-on-nuget-org.md

Document the transfer packages to organization

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/organizations-on-nuget-org.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Improvement: Add BundleClone and EntityBuilderClone::add_bundle

Currently, there is no add_bundle or alike function to the cloneable entity builder due to the fact that there is no trait for a cloneable bundle of components or similar.
A helper trait similar to Bundle which is auto implemented for tuples that implement clone would enable this behaviour and could be published without breakages.

Released in 0.7.1.


Checkout: The Continue button remains disabled on the Address Details Page if the fields are prefilled

Environment Details

Spartacus:  develop branch
Browser: chrome Version 70.0.3538.110 (
OS: MacOS 10.14.1
Device:
Other environment details:

Expected Results
The "Continue" Button should be enabled if all the required fields are filled
Observed Results
The "Continue" button remains disabled
Steps to Reproduce
Prerequisite: Have performed a checkout previously where you saved your info on the browser.
Go to Homepage
Add a product to cart
Go to cart page
Proceed to checkout, use the same info as before, and choose to use the "prefilled" values.
Make sure all the required fields are not empty.
Repository Used
Offer to Fix
Additional Information

This is not UX as there are no styling issues, although I tested it and it seems to work now.
The prefill in chrome doesn't seem to support elements from select fields, therefore al text inputs get prefilled but it isn't until a country gets chosen that it make the button active.

Yeah it's been fixed now. The "Continue" button becomes active now. Before it wasn't. Can close.


[dv/chip] fixed chip_sw_lc_ctrl_scrap_vseq

This PR solves a problem in CS where external clock transition request might complete in the middle of booter operations, where the booter will read values from the OTP and write them to AST registers upon startup.
Changes:

Waiting for the boot process to end (sync_with_sw) before changing to external clock and performing a LC state transition
Waiting forLC_CTRL.STATUS.EXT_CLOCK_SWITCHED == 1 in order to be sure the external clock is switched and stable

It seems that the changes cause several other tests to fail.
Please do not merge until the issue is resolved.

Issues with other EXT_CLK dependent tests are resolved

CI failures are unrelated, merged


2D to 3D image from realtime camera [Python]

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ R200 / F200 / SR300 / ZR300 / D400 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{Win (8.1/10) / Linux (Ubuntu 14/16/17) / MacOS

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
PC/Raspberry Pi/ NVIDIA Jetson / etc..

SDK Version
{ legacy / 2.. }

Language
{C/C#/labview/nodejs/opencv/pcl/python/unity }

Segment
{Robot/Smartphone/VR/AR/others }

Issue Description
<Describe your issue / question / feature request / etc..>
In video stream, how can I covert 2D image to 3D image? Intel camera D435, Python 3, windows 10.
I tried using PCL but i am not good with setting up.

The Python guide linked to below on getting RGB and depth and converting them to an RGBD point cloud may fit your needs.
https://github.com/dorodnic/binder_test/blob/master/pointcloud.ipynb


asdftool repr for Time objects

Using asdftool info <file> on an ASDF file containing astropy.time.Time objects produces the following (excerpted) output:
  │ │ ├─type (str): WFI_IMAGE
  │ │ ├─start_time (Time) # UTC exposure start time
  │ │ ├─mid_time (Time) # UTC exposure mid time
  │ │ ├─end_time (Time) # UTC exposure end time

Is it possible to add some kind of repr to this to display the time (maybe in ISOT or some other format?).

Thanks for opening the issue.
Would you give the source branch for https://github.com/asdf-format/asdf/pull/1687 a try? The output should be improved for Time objects:
  │ │ ├─start_time (Time): 2021-01-01T00:00:00.000
  │ │ ├─mid_time (Time): 2021-01-01T00:01:16.020
  │ │ ├─end_time (Time): 2021-01-01T00:02:32.040

However I went with a hopefully general solution so it's possible (and likely) that other objects will also now display values (whatever is returned from str(foo)).

That certainly did something! I'm seeing a little odd behavior though, which I don't think was expected. Running it on a Roman file I have did this:
  │ ├─exposure (TaggedDict)
  │ │ ├─id (int): 1
  │ │ ├─type (str): WFI_IMAGE
  │ │ ├─start_time (TaggedDict)
  │ │ │ ├─base_format (str): datetime
  │ │ │ └─value (str): 2027-09-12T13:30:22.000
  │ │ ├─mid_time (TaggedString): 2021-01-01T00:01:09.940
  │ │ ├─end_time (TaggedString): 2021-01-01T00:02:19.880

So they're not rendering as (Time) anymore, but as (TaggedString). And the meta.exposure section now shows as (TaggedDict). You can see it also seems to have dropped the descriptions from the schema in the rendered tree. Comparison to the same section with the v2.15.1 of asdf:
  │ ├─exposure (Exposure) # Exposure information

  │ │ ├─id (int): 1 # Exposure id number within visit
  │ │ ├─type (str): WFI_IMAGE
  │ │ ├─start_time (Time) # UTC exposure start time
  │ │ ├─mid_time (Time) # UTC exposure mid time
  │ │ ├─end_time (Time) # UTC exposure end time

Thanks for testing this.
Was the first example run with a installed version of roman_datamodels compatible with the file? Without that package asdf will not know how to interpret things like exposure (without asdf-astropy asdf won't know how to interpret Time)? When asdf doesn't know how to convert an object, it is returned as a Tagged object which explains why you're seeing the TaggedDict TaggedString etc.

Ah, okay, you're right. Good catch! Okay, looks good to me in that case! Thanks, Brett!

Excellent! Thanks again for testing it and please do let me know if you notice anything else. I do see the exposure formatting is a bit odd (even in the 2.15 output). I think that's due to the rad schema but also should probably be sanitized by asdf to not add the line break. I'll give it a look and aim to address it in perhaps both rad and asdf.


Add badge to thread screen

Summary
Add mention count to Global Threads screens.
Testing Notes
Important to double check if the number of mentions seems correct. Just for sanity check:

Have three server connected: one to test, one with CRT on , and one with CRT off.
Have different kind of mentions on the other servers (mentions in a thread or mentions in a channel)
Have different kind of mentions in the current server (mentions in a thread or mentions in a channel)

Ticket Link
Fix https://mattermost.atlassian.net/browse/MM-50034
Release Note
Global Threads screens now show a badge if you have mentions on other channels / servers.

@larkox I'd vote to remove the count from the single thread screen. It seems incorrect to show that number two levels down when clicking on it will take you back to the channel/global threads view and not the home screen where that number is coming from. Also checked a few other apps that have a similar pattern and hide the number when the user is more than 1 level down. Let's have a discussion in the team sync if you feel strongly we should have it there.

Reverted the changes and updated the description. @abhijit-singh Feel free to test again (but I don't expect much changes apart of the mention not being visible now on the thread screen).

Building app in separate branch.

Building app in separate branch.


tf.import_graph_def() requires a non-empty name

After updating version of tenserflow  there is now an issue when loading with my old models.
./importer.py", line 241, in import_graph_def
raise ValueError('tf.import_graph_def() requires a non-empty name '
ValueError: tf.import_graph_def() requires a non-empty name if input_map is used.
The same is case when i try colorize model colorize-20160110
how to fix this. The code is given below
import tensorflow as tf
import skimage.transform
from skimage.io import imsave, imread
def load_image(path):
img = imread(path)
# crop image from center
short_edge = min(img.shape[:2])
yy = int((img.shape[0] - short_edge) / 2)
xx = int((img.shape[1] - short_edge) / 2)
crop_img = img[yy : yy + short_edge, xx : xx + short_edge]
# resize to 224, 224
img = skimage.transform.resize(crop_img, (224, 224))
# desaturate image
return (img[:,:,0] + img[:,:,1] + img[:,:,2]) / 3.0
shark_gray = load_image("shark.jpg").reshape(1, 224, 224, 1)
with open("colorize.tfmodel", mode='rb') as f:
fileContent = f.read()
graph_def = tf.GraphDef()
graph_def.ParseFromString(fileContent)
grayscale = tf.placeholder("float", [1, 224, 224, 1])
tf.import_graph_def(graph_def, input_map={ "grayscale": grayscale }, name='')
with tf.Session() as sess:
inferred_rgb = sess.graph.get_tensor_by_name("inferred_rgb:0")
inferred_batch = sess.run(inferred_rgb, feed_dict={ grayscale: shark_gray })
imsave("shark-color.jpg", inferred_batch[0])
print ("saved shark-color.jpg")

The old version of tf.import_graph_def() was broken if you specified both input_map and name=''. It looks like the fix is quite easy for your case, though. Simply remove the explicit name='' (which is not recommended, since it can lead to unpredictable names for the imported nodes), and use return_elements=["inferred_rgb:0"] to get the inferred_rgb tensor as a return value from tf.import_graph_def():
# [...]
graph_def = tf.GraphDef()
graph_def.ParseFromString(fileContent)
grayscale = tf.placeholder(tf.float32, [1, 224, 224, 1])
inferred_rgb, = tf.import_graph_def(graph_def, input_map={"grayscale": grayscale },
                                    return_elements=["inferred_rgb:0"])

with tf.Session() as sess:
  inferred_batch = sess.run(inferred_rgb, feed_dict={grayscale: shark_gray})
  imsave("shark-color.jpg", inferred_batch[0])
  print ("saved shark-color.jpg")

@mrry  Simply remove the explicit name='' (which is not recommended, since it can lead to unpredictable names for the imported nodes)

I was looking over the code i think  trying to find out why my retrained graph is reporting a miss mach in labels and tensor objects, and saw that the name **karg was set default to None. If this variable is not encapsulated should its state ever be able to put it in a state of error? could we call it code cleanup to set the default name to a empty string or are we expecting unicode?

@fenderrex I'm not sure I understand your question. The default behavior when name=None is to add a prefix of "import" (perhaps with a suffix of "_1", "_2", etc. if that prefix has already been used). If there's a particular change you'd suggest, feel free to open a new issue describing it, and we'll take a look!


Support different encoding on frontend

We do not prohibit Chinese names (and Russian as well), but the topbar displays it as %...%... encoding. We should deal with different encodings properly.

we cannot use backend with user with non-latin letters, looks like the issue is in encoding urls

discussed offline: better to prohibit it everywhere and allow only ASCII


Failing Darwin packages

High-priority packages
These are some broken Darwin packages that are used at least somewhere as build inputs. They probably should be high priority.

[x] rustc
[ ] wxwidgets: see #16192 #21048
[ ] transfig: tries to use xcode-select
[x] rcs: see #18063
[x] fontforge: see #18063
[ ] libdiscid: just missing frameworks?
[x] boost-1.55.0: see #17759
[x] talloc: tries to use a bsd specific ar flag on darwin?
[ ] python2.7-Cython
[ ] go-1.7: see #18546
[x] gcc* see #16806
[x] ffmpeg: see #18137
[ ] vty-ui
[ ] p7zip: tries to use xcode-select

Low-priority packages

[ ] PPSSPP
[ ] alot
[x] ansible
[x] aria
[ ] arora
[ ] avian
[ ] avro-cpp
[ ] backblaze-b2
[ ] bear
[ ] bigloo
[ ] blitz
[ ] cadvisor
[x] certbot
[ ] chromaprint #18063
[ ] chuck
[ ] cjdns
[ ] ckan
[ ] clutter
[ ] codeblocks
[ ] cogl
[ ] consul-ui
[ ] cutecom
[ ] cwebbin
[ ] dbench
[ ] dblatexFull
[ ] diagrams-builder
[ ] dibbler
[ ] dico
[ ] dirac
[ ] djview
[ ] dlib
[ ] doomseeker
[ ] dotnetPackages.GitVersionTree
[ ] drive
[ ] dub
[ ] ecm
[ ] eggdrop
[ ] emojione
[ ] errbot
[ ] flow
[ ] flpsed
[ ] fltk
[ ] focuswriter
[x] fzf #18605
[ ] gccgo
[ ] gcj
[ ] gdmap
[ ] gitAndTools.qgit
[ ] gkrellm
[ ] globalplatform
[ ] gnuplot_qt
[ ] go_1_6: see #18223 and #18546
[ ] go-mtpfs
[ ] go-sct
[ ] goaccess
[ ] gpgstats
[ ] gppcscconnectionplugin
[ ] gpshell
[ ] guitone
[ ] hdf5-fortran
[ ] herqq
[ ] html2text
[ ] hugs
[ ] hwinfo
[ ] i3blocks
[ ] icewm
[ ] idnkit
[ ] idutils
[ ] imatix_gsl
[ ] javaCup
[ ] javasvn
[ ] john
[ ] jonprl
[ ] jpegrescan
[ ] khal
[ ] kinetic-cpp-client
[ ] kpcli
[ ] kyotocabinet
[ ] ldb
[ ] leocad
[ ] letsencrypt
[ ] leveldb
[ ] libasyncns
[ ] libcrafter
[ ] libffcall
[ ] libircclient
[ ] libjack2
[ ] liblastfm
[ ] libmemcached
[ ] libpfm
[ ] libpulseaudio
[ ] libqalculate
[ ] libqglviewer
[ ] libvisual
[ ] libx86emu
[ ] llvmPackages.lldb #18420
[ ] lout
[ ] marathi-cursive
[ ] mathics
[x] mbedtls #18067
[ ] mcrypt
[ ] metis-prover
[ ] ming
[ ] minisat
[ ] mktemp
[ ] mlton
[x] mongodb
[ ] mosquitto
[ ] mp3info
[ ] mpdris2
[ ] mtx
[ ] mutt-kz
[ ] mxt-app
[ ] mysocketw
[ ] ncurses6
[ ] ndn-cxx
[ ] neardal
[ ] neomutt
[ ] nimble
[ ] notmuch
[ ] nss
[ ] nss_wrapper
[ ] octave
[ ] offrss
[ ] oldsindhi
[ ] open-pdf-presenter
[ ] opencryptoki
[ ] openct
[ ] opensc
[ ] packer
[ ] pdnsd
[ ] pgadmin
[ ] picosat
[x] pinentry
[ ] platinum-searcher
[ ] polarssl
[ ] pond
[ ] poppler_qt4
[ ] prelink
[ ] prometheus-node-exporter
[ ] pumpio
[x] pxattr
[ ] pycapnp
[ ] pyside
[ ] qalculate-gtk
[ ] qscreenshot #18063
[ ] qtscriptgenerator
[ ] quicktun
[ ] qweechat
[ ] radamsa
[ ] radare
[ ] resolv_wrapper
[ ] rowhammer-test
[ ] rssh
[x] rtags: see #20191
[ ] runit
[ ] safecopy
[ ] scanmem
[ ] schroedinger
[ ] signing-party
[ ] simp_le
[ ] simpleTpmPk11
[ ] spaceOrbit
[ ] spass
[ ] spectrwm
[ ] speedcrunch
[ ] spek
[ ] spidermonkey
[ ] sqsh #18063
[ ] sslscan #18063
[ ] stockfish
[ ] streamripper
[ ] strigi
[ ] stxxl
[ ] sup
[ ] svrcore
[ ] swaks
[ ] synergy
[ ] taffybar
[ ] tagainijisho
[ ] tcp_wrappers
[ ] tcpcrypt
[ ] tevent
[ ] textql
[ ] tightvnc #14809
[ ] tpm-tools
[ ] transfig
[ ] trousers
[ ] tsocks
[ ] tthsum
[ ] ttyrec
[ ] urlwatch
[ ] vdirsyncer
[ ] vimNox
[ ] vmmlib #18063
[ ] webrtc-audio-processing
[ ] wiredtiger
[ ] xautolock
[ ] xbase
[ ] xca
[x] zeroc_ice
[ ] zookeeper_mt

p7zip is also broken. https://hydra.nixos.org/job/nixpkgs/trunk/p7zip.x86_64-darwin

go-1.7 will be fixed by #18546

Just as a note: I think the problems of python2.7-Cython and gdal  #18194  are somehow related. Both fail on building python extensions by wrongly choosing clang instead of clang++ as the CXX compiler and thus cannot find the C++ Standard Library headers.

I think the rust build was broken by the last update https://github.com/NixOS/nixpkgs/commit/8cd3e1e2bac5d7b8d3ae84a91f1019007f82c483

@matthewbauer Thank you for putting this list together

The fltk problem needs Foundation from the 10.10 SDK or newer.

Regarding octave, I use it on darwin, but I have this in my config.nix:
octave = pkgs.callPackage (<nixpkgs> + /pkgs/development/interpreters/octave) {
      openblas = pkgs.openblasCompat;
      jdk = null;
    };

Not sure if that counts as a fix.

@acowley It looks like it can build but you need to have XCode installed.

@matthewbauer Are you referring to octave or fltk?

Sorry, octave.

@matthewbauer: The python2.7-Cython build can be fixed by adding:
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.cc.isClang) "-I${pkgs.libcxx}/include/c++/v1";

The problem is that distutils does not seem to probably honor the difference between CC and CXX. gcc does not complain when compiling C++ code, but nix-clang cannot find the C++ headers.
I however do suspect that all the packages that depend on cython would also need this extra include flag. What's your opinion on a simpler solution. Should we add the C++ headers to nix-clang itself by default? I think the Apple supplied clang uses this already.

@matthewbauer Could you elaborate how you did compile this list? Is this the list of all packages on osx with allowBroken=true directive in ~/.nixpkgs/config.nix?

Do you have suggestions, how I can test packages as a Linux contributor without having apple native hardware? I recently found this one: https://github.com/AndrewDryga/vagrant-box-osx

Would it help, when we have platform specific maintainers? Often I have pull requests, which will update the package but break Darwin support. In these cases there is nobody I can consult.

@periklis These are all from Hydra so packages that are marked broken aren't included. The same goes for packages that don't have "x86-64-darwin" in meta.platforms.

@Mic92 I didn't know there are box images for osx, but that's probably still a violation of apple's software EULA.
I think having some sort of list of maintainers for a platform would be useful, but feel free to cc me if you run into darwin specific issues.

@matthewbauer FYI staging was merged in yesterday, this means master now includes updated frameworks. Perhaps it's a good idea to update this when hydra is finished building everything.

I was looking into the gcc issue a bit (I wanted to install dub). I saw hydra is showing the same failure that I have been getting. I found this: https://superuser.com/questions/995360/missing-usr-include-in-os-x-el-capitan it suggests running xcode-select --install prior to trying to compile gcc. I tried it and it fixed my issue with compiling gcc and dub. It's probably worthwhile to try this on hydra and see what works afterwards.

@blakesweeney It's supposed to work without xcode or the command line tools. We have pure versions of everything in nixpkgs, some packages just try to use xcode-select anyway, or look for stuff in hardcoded places.

gcc should be fixed but I'm going to wait for it to hit the unstable channel before I check it off.

I'm happy to report after >1 year of failing, "gcc" has finally hit the unstable channel.

https://github.com/NixOS/nixpkgs/commit/fc4c0d4ba173f7ef9021f31c360da525b0b91e0e should fix talloc

p7zip seems to work for me 😄

@copumpkin you probably have Xcode.app installed?

Oh, you're probably right. I really need to get around to fixing that sandbox 🙁

@copumpkin Is there an open issue for Darwin sandboxing? The only information I can find of it is from the old wiki page: https://nixos.org/wiki/Nix_on_OS_X#Darwin_Sandboxes.

Not sure! I vaguely remember something but on my phone now. I'm going to
devote some time this weekend fixing Nix to build on Darwin and then
starting to fix the sandbox (hard to fix that if Nix doesn't build :P)
On Sat, Oct 15, 2016 at 00:37 Matthew Justin Bauer<EMAIL_ADDRESS>wrote:

@copumpkin https://github.com/copumpkin Is there an open issue for
Darwin sandboxing? The only information I can find of it is from the old
wiki page: https://nixos.org/wiki/Nix_on_OS_X#Darwin_Sandboxes.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/issues/18067#issuecomment-253962381,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAKPzF_jgdPEsgLYUfYt8IucEw0Djdaks5q0FiWgaJpZM4JvBx1
.

I've been using sandboxing for a little while now; it's really essential for avoiding "works for me" problems. The killer about fixing it in nixpkgs is that changing the sandbox definition there requires rebuilding everything. It's not that onerous to run sandbox-exec -f nix.sb -- nix-build ..., but it might be nicer if such ad hoc sandboxing was offered by the nix command line tools themselves.

@acowley have you done stdenv builds with it turned on? I think it'll generally be fine later in the build but the stdenv build seems to fail miserably with sandbox turned on. Trying to look into it in the next few days.

@copumpkin. I have not, sorry. The old sandbox definition in nixpkgs can't build anything (presumably due to macOS changes) as far as I've seen. Are you also using a different sandbox spec than what is in nixpkgs?

Nope, just trying to fix the sandbox to be as functional as it used to be 😄

fyi, just PR'ed rtags #20191

libmemcached must be some kind of general hydra/nix problem https://github.com/NixOS/nixpkgs/pull/15231 Hydra consistently outputs wrong hashes for a file it tries to download: https://hydra.nixos.org/build/43986509/nixlog/1/raw

Could be a cached failure? @shlevy?

On Nov 27, 2016, at 18:10, Josef Kemetmüller<EMAIL_ADDRESS>wrote:
libmemcached must be some kind of general hydra/nix problem #15231 Hydra consistently outputs wrong hashes for a file it tries to download: https://hydra.nixos.org/build/43986509/nixlog/1/raw
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Restarted the build

Now also libmemcached can be successfully built on darwin.

It would be great to have a better way of tracking this stuff and keep it up to date properly. You can get a diff compared to a day/week earlier from hydra, perhaps there's some way we could leverage that?
http://hydra.nixos.org/eval/1320213?filter=x86_64-darwin&compare=1310591&full=#tabs-now-fail

p7zip works for me with 0d936b03668cf0d9cd68b9a1bda72b14c59be407 and the following, since libuv is acting up on my machine again:
{
 nixpkgs.config.packageOverrides = pkgs: rec {
    libuv = pkgs.lib.overrideDerivation pkgs.libuv (p: { doCheck = false; });
  };
}


sayid buffer shows text without color or functionality

Tutorial worked fine for me, but now Sayid is failing to work on my own project. The workspace text is not colored and none of the keyboard shortcuts work. For example, pressing i fails to inspect node, it just types the letter i.
I'm assuming there must be some difference in setup between my project and the tutorial, but my stabs in the dark failed. I added the following line to my project.clj:
:repl-options {:nrepl-middleware [com.billpiel.sayid.nrepl-middleware/wrap-sayid]}
My project is called assembler. I created with lein new app assembler.
Here is the my entire project.clj file:
(defproject assembler "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]]
  :main ^:skip-aot assembler.core
  :target-path "target/%s"
  :repl-options {:nrepl-middleware [com.billpiel.sayid.nrepl-middleware/wrap-sayid]}
  :profiles {:uberjar {:aot :all}})

And here is my ~/.lein/profiles.clj
{:repl {:plugins [[cider/cider-nrepl "RELEASE"]
                  [refactor-nrepl "RELEASE"]]
        :dependencies [[alembic "RELEASE"]
                       [org.clojure/tools.nrepl "RELEASE"]
                       [com.cemerick/pomegranate "RELEASE"]
                       [zprint "RELEASE"]]
        :global-vars {*print-length* 1000}}
 :user {:plugins [[cider/cider-nrepl "RELEASE"]
                  [com.billpiel/sayid "RELEASE"]]
        :dependencies [[org.clojure/tools.nrepl "RELEASE"]]}}

I'm running Emacs Version 25.1 (9.0) with Spacemacs Release 0.200.9.
The error in the mini-buffer reads: Wrong type argument: listp, /././.
Here's a screenshot too: http://img.webappzero.com/kjgV

@webappzero
Thanks for reaching out.
What do you get when you run emacs command sayid-version?

M-x sayid-version returns clj=0.0.15 el=0.0.15
I'm currently chasing down a Cider version conflict that I just now noticed. Might be best to ignore this issues until I troubleshoot that first. Thank you. I'll be sure to follow up soon.

Removing the (:gen-class) form from the ns form located in assembler.core corrected this issue.
The (:gen-class) form is automatically inserted there when using lein new app <app-name> to setup up a Clojure project. I'm not sure why this would conflict with Sayid, but it may be related to ahead of time compilation settings in project.clj.
In fact, I just successfully tested that idea by creating a new project with lein new <library-name>, which has the following vanilla project.clj file:
(defproject hackasm "0.0.1"
  :description "Write an assembler for the Hack Computer"
  :url "http://webappzero.com"
  :dependencies [[org.clojure/clojure "1.8.0"]])

So, it's not the (gen-class) form but something else, perhaps the aot settings listed above, with which I'm not very familiar.
That's it for my core issues. What follows is some feedback tangentially related to this issue that may prove helpful, or at least curious.
(Before I proceed, just want to say how awesome I think Sayid is. This is as close to debugging Nirvana as I've seen. Bill, your hard work is self-evident and greatly appreciated. I look forward to helping out more as my Clojure and programming skills strengthen.)
In the process of troubleshooting, I noticed that a recommendation made on Sayid's homepage appears contrary to best practices recommended in the Cider documentation.
Sayid's home pages shows the following example lein ~/.lein/profile.clj file:
{:user {:plugins [[cider/cider-nrepl "0.14.0"]
                   [com.billpiel/sayid "0.0.15"]]
         :dependencies [[org.clojure/tools.nrepl "0.2.12"]]}}

But Cider docs recommend:

You see a number like X.X.X, and you're starting the REPL with cider-jack-in
This means you're manually adding the cider-nrepl middleware in your project, but you shouldn't do that because cider-jack-in already does that for you. Look into the following files, and ensure you've removed all references to cider-nrepl and tools.nrepl: project.clj, build.boot, ~/.lein/profiles.clj and ~/.boot/profile.boot.

This was the cause of the Cider version conflict I mention in the post above. Cider was auto-injecting version 0.15.0-SNAPSHOT which mis-matched with Sayid's recommendation above, which prints this alarming message when jacking into Cider:

WARNING: CIDER's version (0.12.0) does not match cider-nrepl's version (...). Things will break!

At first, I just changed [cider/cider-nrepl "0.14.0"] to [cider/cider-nrepl "0.15.0-SNAPSHOT"] and the scary message went away and everything worked.
Next, I cleaned up my profiles.clj per the Cider docs and was left with:
{:repl {:plugins []
        :dependencies [[zprint "RELEASE"]]
        :global-vars {*print-length* 1000}}
:user {:plugins []
        :dependencies []}}

And my project.clj1 not like this:
(defproject hackasm "0.0.1"
  :description "Write an assembler for the Hack Computer"
  :url "http://webappzero.com"
  :profiles {:dev {:plugins [[com.billpiel/sayid "0.0.15"]]}}
  :dependencies [[org.clojure/clojure "1.8.0"]])

Everything I've tested (basic Sayid functionality), still works, but for some reason when I run sayid-version I now get ```Wrong type argument: sequencep, 0.0.15

0.0.15
funcall-interactively: Wrong type argument: sequencep, 0.0.15
I'll let you know if I notice anthing else.

BTW, In my research, I've noticed conflicting recommendations for Cider nrepl setup are common. I suspect it has to do with this line on these lines from [Cider nrepl's github page](https://github.com/clojure-emacs/cider-nrepl#cider-nrepl):

> If you're just a user trying to get started with CIDER, then you probably don't want to read this. You should follow the steps in CIDER's Readme instead.
>
> If you're trying to use cider-nrepl for some other purpose, the sections below outline how to include it in a project.
>
> A minimal profiles.clj for CIDER would be:
>
> {:user {:plugins [[cider/cider-nrepl "0.14.0"]]}}

My best : )

@webappzero Thanks for experimenting and the thorough report! I'll take some time to digest and address all of that.

This is as close to debugging Nirvana as I've seen.
YES! So happy to hear this. Thanks

Hmmm. The issue has returned and I'm at a complete loss as to why. There are no obvious culprits. I won't have time today to dig into causes, but will provide as much feedback as I can soon.
I can say that the new circumstances cause me to question the assumptions made above about aot being the cause.

Affected here on clj=0.0.17 el=0.0.18.

@bpiel  @holtzermann17 @bbatsov @webappzero I found the root cause for the problem. The version in 0.0.18 for the code is broken.
For the el it use 0.0.18, for the clojure 0.0.18 version, it let the nrepl use 0.0.17.
I submit a pull request https://github.com/clojure-emacs/sayid/pull/56 to fix this. @bpiel If you have some time, please merge the code and deploy a new version for the sayid.
@webappzero For now, you can just clone the code, and apply the patch, then lein install the jar local to fix the problem.


Illegal instruction error

Hello
I was following the instructions for installation from here (https://www.thedigitalpictureframe.com/how-to-add-crossfading-slide-transitions-to-your-digital-picture-frame-using-pi3d/) for Raspberry pi 2, running buster. Everything went fine till I tried to launch picframe using "picframe -i ." for initial configuration. Entering that just gives me an Illegal instruction error. Why would this be?
Thanks
Update after about 1 hour more working on this: it seems that when I import the following modules into python3, I get illegal instruction errors as well: numpy, ninepatch and pi3d. I was able to fix the numpy error by installing the Raspbian version of numpy as instructed here: https://numpy.org/devdocs/user/troubleshooting-importerror.html. Not quite sure how to fix the issue for ninepatch or pi3d. And not quite sure if just fixing these modules would resolve the overall error.
The following modules import fine: iptcinfo3, PIL, exifread, picframe, yaml, paho.

What error message do you get when you try to import on command line
pip3 install pi3d --user
Say, or ninepatch?

pi3d and ninepatch can be installed fine using pip3. I meant that when I open the python3 interpreter (by just typing python3 on the command line) and type in "import pi3d" or "import ninepatch," I get an illegal instruction error and the python3 interpreter quits.

I wonder if it's related to https://github.com/numpy/numpy/issues/18131#issuecomment-1003746152
What version of numpy do you now have installed (and what did pip3 get you)? And does the pi3d error happen now you have a different numpy?

When I installed picframe initially, numpy-1.21.5 was installed as a dependency. This was giving an illegal instruction error when I tried importing numpy as a module using the python3 interpreter. I then did "pip3 uninstall numpy" followed by "sudo apt install python3-numpy." Now, when I import numpy using the python3 interpreter, it works fine. I did not test whether pi3d or ninepatch were importing fine before I changed the numpy version.
Thanks for checking about PIL further. It indeed is not working correcting:

from PIL import image
Traceback (most recent call last):
File "", line 1, in
ImportError: cannot import name 'image' from 'PIL' (/home/pi/.local/lib/python3.7/site-packages/PIL/init.py)

Hmm, that looks like just the difference between image and Image. Could you try with an upper case i? I only suggested checking that because PIL.Image is a dependency of ninepatch.
I take it from your comment

I did not test whether pi3d or ninepatch were importing fine before I changed the numpy version.

that when you try to import either of them now you get the 'illegal instruction' and interpreter crash?

Sorry about the case error! "from PIL import Image" also gives me an illegal instruction error.
And yes, when I now import either pi3d or ninepatch, I get 'illegal instruction' and interpreter crashing.
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

import pi3d
Illegal instruction
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
import ninepatch
Illegal instruction
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
from PIL import Image
Illegal instruction
pi@raspberrypi:~ $

How can I check that my hardware architecture is compatible with all these modules?

It looks like it's the PIL Image import that's causing the problem as pi3d and ninepatch both use that (as does picframe in lots of places). It is possible to set up pi3d to not use PIL but that seems to being circumvented by the the fact that it produces too serious an error to catch in a try block https://github.com/tipam/pi3d/blob/1f1c822dc3ac58344ad2d5468978d62e51710df4/pi3d/constants/init.py#L63
What version do you get if you do
>>> import PIL
>>> PIL.__version__
'4.3.0'
>>>

The whole thing does seem odd. You can (or used to be able. ED - just checked and it seems to be in buster https://packages.debian.org/source/buster/pillow) install a debian package for PIL
sudo apt install python3_pil

I get
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

import PIL
PIL.version
'9.0.0'

Should I uninstall this PIL and get the debian package instead? That's kind of what I did for numpy

Well it would give a bit more info whether it works or not.

Sweet! Uninstalling that pillow version and installing the debian package resolved everything. I also got the "Have a Break" photo with picframe. Thanks so much for your help and patience!

Thanks for reporting the problem. It looks like there might be an issue with PIL 9.0.0 on arm 6 at least so I had better do a bit more checking on that. But the fact that you had a problem with numpy as well makes me think that both are related to something else.

I'm running PIL 9.0.0 without an issue. For the next release it changed the dependency to this version because it fixes #182
I simply run pip3 install Pillow --upgrade

Close this, because of no feedback.


@desc tag not work

<script>
/**
 * @desc components detail XXXXX
 * @vue-data {Page} page - XXX
 * @vue-data {Layer} layer - XXX
 */
export default {
  name: 'Panel',
  data() {
    return {
      page: null,
      layer: null
    };
  }
};
</script>

content in @desc not output in docs, how to handle it? Thanks~~~

That's because of this line: https://github.com/Kocal/jsdoc-vuejs/blob/master/index.js#L61
Change the line to e.doclet.description = (e.doclet.description || '') + str; make @desc works.
I'm working on a patch.

it work, thank you~~~

Released in v2.3.2


ExportDebug to Android giving Duplicate Error

3.2.4 beta2
I finally got my Godot 3.2.2 project working on windows in 3.2.4 beta2.  However, when I try to export to Android, I get a Build Error:
.mono\temp\obj\ExportDebug\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs(4,12): Duplicate 'global::System.Runtime.Versioning.TargetFrameworkAttribute' attribute
After this the project  won't even run in windows.
When I go to VS Code and look at the file tree,  here is what it looks like:

If I delete the red file, I can run it in windows again UNTIL I try to export it again.
Any thoughts?

If I delete the temp/obj/Debug folder I can export it to the Android device.  Then If I try to run it on the Desktop, I get the error above.
If I delete the temp/obj/ExportDebug folder, I can run it on the desktop, but when I try to export to android I get the error above.
There must be a setting that allows both to exist at the same time, but is missing from the settings.

@Calinou The bug seems to occur on any platform.  It just depends on which platform you export second.  The first runs/exports fine, when you try to export to a second platform the duplicate error is occuring.

This may be a potential issue with the .csproj file includes.  If you included a wildcard that contains the .mono directory then this error can occur when building.

I would need an example project to reproduce.

I think this is obsolete after switching to new csproj format. Godot 3.4 and maybe even earlier.

Closing as non reproducible.


Crash on startup when using ExampeAVAudioEngineDevice as AudioDevice

I've been working with @piyushtank on integrating the ExampleAVAudioEngineDevice into our Twilio based app and it's working great from the mixed audio standpoint, the major issue I currently have is that the application will randomly crash on startup sometimes when it creates an instance of ExampleAVAudioEngineDevice.  It is not reproducible every time, but it happens much more frequently on the simulator then on an actual device, although it's happening on about 25% of launches on our testing hardware.
The crash occurs in the ExampleAVAudioEngineDevicePlayoutCallback and it ALWAYS happens when the system goes through the else path in the startRendering function below.  The crash doesn't happen when the startup doesn't fall through this else path.  I'm wondering if anyone has any insight into how we can lock down the startup sequence so it's not random in how it starts up so we don't end up crashing on startup.
My current version of the device file ( minimal changes made to export the AudioEngines )
`- (BOOL)startRendering:(nonnull TVIAudioDeviceContext)context {
@synchronized(self) {
NSLog(@"START RENDERING");
/*
* In this example, the app always publishes an audio track. So we will start the audio unit from the capturer
* call backs. We will restart the audio unit if a remote participant adds an audio track after the audio graph is
* established. Also we will re-establish the audio graph in case the format changes.
*/
if (_audioUnit) {
[self stopAudioUnit];
[self teardownAudioUnit];
}
    // If music is being played then we have already setup the engine
    if (!self.continuousMusic) {
        // We will make sure AVAudioEngine and AVAudioPlayerNode is accessed on the main queue.
        dispatch_async(dispatch_get_main_queue(), ^{
            AVAudioFormat *manualRenderingFormat  = self.playoutEngine.manualRenderingFormat;
            TVIAudioFormat *engineFormat = [[TVIAudioFormat alloc] initWithChannels:manualRenderingFormat.channelCount
                                                                         sampleRate:manualRenderingFormat.sampleRate
                                                                    framesPerBuffer:kMaximumFramesPerBuffer];
            if ([engineFormat isEqual:[[self class] activeFormat]]) {
                if (self.playoutEngine.isRunning) {
                    [self.playoutEngine stop];
                }

                NSError *error = nil;
                if (![self.playoutEngine startAndReturnError:&error]) {
                    NSLog(@"Failed to start AVAudioEngine, error = %@", error);
                }
            } else {
                NSLog(@"TEARING DOWN AND RESTARTING PLAYBACK ENGINE");
                [self teardownPlayoutFilePlayer];
                [self teardownPlayoutAudioEngine];
                [self setupPlayoutAudioEngine];

            }
        });
    }`

Just as a further piece of information it seems like if the device has a 48mhz microphone we end up in this crash scenario as the call to check if our current engineFormat matches the activeFormat fails ( engineFormat is 44100 ).  On some devices these values match and on others they do not which causes the crash.
Any thoughts on how we can work around this?

@piyushtank this issue is linked to support request 5979254 and engineering VIDEO-4533.


diagram

This PR is mixed with my prev PR because that one was not merged yet so there are more files than needed to be seen here. I updated the Storage UML diagrams, please take a look and comment where u see fit


Feature/97 new site

nav to new site form
made form for new site and edit site
cancel button
edit site that doesnt exist - 'no site' messaging to user
made reusable hook for populating questions forms (turns out not reusable for editing a site, but still valuable)
minor bugs encountered fixed
user can select mock landscapes, but server doesnt yet accept that data, just site name
user cant yet nav to edit mode of form at /site/:siteId/edit

if I navigate to organizations, I get a warning that there are two children with the same key @mmnoo
for the sites page, I see you have some site names added. Right now they just look like text fields which may just be for the first iteration. Are there plans to give more context @mmnoo?

I like the success message that appears after creating a new site - review apps is failing due to story book dependency conflicting with react version - will edit mode be in a separate pr? - 1.3 countries select generating mui error (made a separate bug ticket)

ya, want to avoid yak shaving devops into this ticket
Eventually there will be other info in the sites list 'card'. Would look like this, but the api doesnt currently send enough info back for anything but name

Will checkout that not unique key thing and fix as part of this pr. Good catch :)

ok sounds good! yep agreed the devops part should be in a different ticket, just wanted to flag since its appearing in this pr. Also good to know about the other site data stuff!

@mmnoo nevermind, just confirmed with Angelo that you should not be able to create a site without a landscape. In this case, there should be an error message or a required select before submitting a new site. Could you add this before merging and just ping me once its ready?


Total amount allocated to Laisee should not include redeemed Laisee

The "total amount allocated to Laisee" includes Laisee that have already been redeemed, possibly resulting in a negative balance and requiring the user to over allocate funds to their Laisee bot account.
Is there a way to sum up only the unredeemed Laisee?
Total Amount Allocated to Laisee: 2516
Available Balance for New Laisee: -113.8690000000001```

https://github.com/bitkarrot/laiseebot/commit/edbd63ca6a5832a608d29fcf5fccc3fd04c621fd