Error when calling Web3App.createInstance()

Describe the bug
An error LateError (LateInitializationError: Field '_web3App@594340753' has not been initialized.) is thrown when calling Web3App.createInstance().
This error occurs with version web3modal_flutter version 3.1.3
This error does NOT occur with web3modal_flutter version version: 3.0.21
The error is thrown in Line 73 in w3m_service.dart.
To Reproduce
Steps to reproduce the behavior:

Try to create new Web3App instance
Code:

  Web3App wcClient = await Web3App wcClient = await Web3App.createInstance(
    relayUrl: 'wss://relay.walletconnect.com',
    projectId: dotenv.env['WC_PROJECT_ID']!,
    metadata: const PairingMetadata(
      name: 'OwnerChip',
      description: 'OwnerChip - Connecting physical objects to the blockchain',
      url: 'https://www.ownerchip.com',
      icons: ['https://avatars.githubusercontent.com/u/116345848'],
    ),
  );

Expected behavior
New Web3App instance is created without errors.
Smartphone (please complete the following information):

Device: iPhone 13

Moreover I am encountering an issue when sending personal_sign request to Trust Wallet.
Describe the bug
After sending the personal_sign request, there is no popup in Trust Wallet to sign the request.
The issue does NOT exist with Metamask or 1inch wallet.
Steps to reproduce

Connect Trust Wallet via Web3Modal
Send personal_sign request with:

String signature = await wc.request(
    topic: wcSession.topic,
    chainId: 'eip155:1',
    request: SessionRequestParams(
      method: 'personal_sign',
      params: [hexUtf8EncodedMessage, walletAddress.toString()],
    ),
  );

I'm using web3modal_flutter and we're using the modal for UI

But what are you using this code for?:
  Web3App wcClient = await Web3App wcClient = await Web3App.createInstance(
    relayUrl: 'wss://relay.walletconnect.com',
    projectId: dotenv.env['WC_PROJECT_ID']!,
    metadata: const PairingMetadata(
      name: 'OwnerChip',
      description: 'OwnerChip - Connecting physical objects to the blockchain',
      url: 'https://www.ownerchip.com',
      icons: ['https://avatars.githubusercontent.com/u/116345848'],
    ),
  );

This is how Web3Modal should be used
https://docs.walletconnect.com/web3modal/flutter/options

Thanks for your quick reply. Sorry I left out a crucial part of the code.
I pass it to W3MService to create a new instance like this.
final W3MService w3mService = W3MService(web3App: wcClient);
await w3mService.init();

Hello @kinggongzilla! You are right, I was able to reproduce. There's a bug in the code when using the instance through a web3app instance, however if you use it in the regular way you'll have no issues https://docs.walletconnect.com/web3modal/flutter/options#w3mservice-initialization
That would mean this
w3mService = W3MService(
  projectId: dotenv.env['WC_PROJECT_ID']!,
  metadata: const PairingMetadata(
    name: 'OwnerChip',
    description:
        'OwnerChip - Connecting physical objects to the blockchain',
    url: 'https://www.ownerchip.com',
    icons: ['https://avatars.githubusercontent.com/u/116345848'],
  ),
);
await w3mService!.init();

Instead of this
   Web3App wcClient = await Web3App.createInstance(
    relayUrl: 'wss://relay.walletconnect.com',
    projectId: dotenv.env['WC_PROJECT_ID']!,
    metadata: const PairingMetadata(
      name: 'OwnerChip',
      description: 'OwnerChip - Connecting physical objects to the blockchain',
      url: 'https://www.ownerchip.com',
      icons: ['https://avatars.githubusercontent.com/u/116345848'],
    ),
  );

GM @kinggongzilla! This bug have been fixed in latest 3.2.0 version! Thanks!


Can't install on conda

I can't install requirements on conda.
I tried for several hours, Each time something else causes issues.
The main issue is that I need a lower version of python for Numpy 1.20.
This starts a chain of headaches trying to figure out how to properly setup the environment on conda.
Is there a proper environment setup for conda?

Managed to solve the issue. The requirements should be updated to python = 3.7.13
It doesn't work with any other version.
Also had to make sure I install specific versions as described in the requirements.txt


Golang support

any plans for golang support?
I believe it to be very much similar to c++. I would be very much happy to help.  A brief guide or slighted documented code (for this https://github.com/nikhilkalige/docblockr/blob/master/lib/languages/cpp.js) will be very much appreciated :)

Sorry for the loonnng delay. If you are still interested in implementing this I am happy to help answer questions. First of all I recommend looking into #138. In this issue I already gave an overview on how to add a new language.

No response, closing. Feel free to comment here again if you are still interested.

@MoritzKn  golang support

@CodyGuo Yeah, that is what this issue is about.. but what is your question? are you interested in adding go-lang support?


[Wait for #1623] [Model] Add Model::addWithReferenceLayers

[Pending commit: #1623]
Commits to be reviewed in this PR
[Model] Add Model::addWithReferenceLayers
This patch add addWithReferenceLayers prototype
Self evaluation:

Build test: [X]Passed [ ]Failed [ ]Skipped
Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

:octocat: cibot: @zhoonit, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1631-202110141318250.9642128944397-2ec625fd030c86cd25accdb6675965b73dd7a9ac/.

As per the offline discussion, this will be updated to the new interface

:octocat: cibot: @zhoonit, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1631-202110141557450.61557793617249-568594e0e5c5af65ebbd418c30c8a772050138e7/.


Some extra configuration

The ability to turn the frontend off would be a nice addition to the NNTPChan.

we have that already
in srnd.ini, frontend section, enable=0

Oh okay. Awesome.


Set job provider ID

ActiveJob allows you to set an adapter-specific "job provider ID". Setting this to the ActiveJob class will allow for better auditing of issues (e.g. if a message is sent but never gets run).

Thanks for you submission. I will look into that.


docs: replace hard tabs with spaces for better reading ex

Sorry I just forgot to write the PR description and realized it today.

Currently the documentation of README.md is having issues with mixing the tabs and spaces which makes it juggle for Golang's code to read.
Improved it and replaced the hard tabs (which gofmt perfers) with 4 spaces (which mostly the markdown and highlighter perfers).

thanks!


Add Tooltips

Add tooltips for the below.
Tooltip style should just use what we already have.
The below is just to define the names not the look and feel

Tooltips are added as HTML title attribute. To make them styled properly, we need to create dedicated component - this is moved to #10088


When using platform export, some configuration resources are not generated when there are many results

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Thank you for opening an issue. Please note that we try to keep the issue tracker reserved for bug reports and feature requests.
Ping CLI Version

pingcli version dev (commit:<PHONE_NUMBER>1767e248ee4c4637e2167b199ebeaa)
Affected Command

platform export

Expected Behavior

When exporting pingone_notification_template_content Terraform configuration resources, only 25 import {} blocks for the strong_authentication template are returned, and the results are different each time.
Actual Behavior

There are 57 template contents for the strong_authentication template in total.  57 import {} blocks should be generated.
Steps to Reproduce

Ensure that template contents are configured for multiple languages (> 25 in total)
Set up the current active profile with the PingOne connection and environment to export from
pingcli platform export

Important Factoids

References

Upstream issue has been resolved: https://github.com/patrickcping/pingone-go-sdk-v2/issues/226
Pagination changes have been implemented in #50.


not working properly on my Ubuntu

when I type obfs4proxy-openvpn, it doesn't print anything to the screen.
System:Ubuntu bionic 4.15.0-88
my<EMAIL_ADDRESS>

That's very strange. Usually you should at least get a message telling you whats wrong.
Please open the script and replace the first line:
#!/usr/bin/env bash
with:
#!/usr/bin/env -S bash -x
and the run the script again. That will give us a pretty good idea on where its failing.


fix error during mkcol

Description
We need to return 409 Conflict when one or more path elements during an MKCOL do not exist.
Fixes: https://github.com/owncloud/ocis/issues/6136

@dragotin This is a fix to enable the usage of rclone

@redblom do we need this in master or do we already have this behaviour?

@micbar @glpatcern : I can confirm that master returns 409 Conflict and rclone behaves as expected, it can create a complete new path.

@micbar @glpatcern : I can confirm that master returns 409 Conflict and rclone behaves as expected, it can create a complete new path.

@redblom Can you check if this is also the case for non-existing sub-sub directories?

@redblom Can you check if this is also the case for non-existing sub-sub directories?

@micbar Yes, also with sub/sub/sub directories, the response is always 409 Conflict (message: Parent node does not exist)


Question about fine-tuning

I would like to fine-tune the pre-trained middleberry model on my own stereo data.
I had a few questions:
a) Is this possible by simply supplying the train_stereo.py script with the --restore_ckpt param
b) Am i able to change the default image crop size of [320, 720] for this finetuning?
c) currently i cannot train without downsampling due to a lack of memory. Since the pretrained middleberry model is not downsampled, is there anyway that i can use it for training?
Thank you so much for this work!

a) Yes, exactly
b) Yes, just use --image_size (make sure it is smaller than the original image)
c) To finetune using the middlebury pre-trained weights and with --n_downsample 3, some of the loaded parameters will not have the correct size. You could simply not load these parameters:
Replace Line 146 in train_stereo.py with
del checkpoint['module.update_block.mask.2.weight'], checkpoint['module.update_block.mask.2.bias']
model.load_state_dict(checkpoint, strict=False)


enhancements: changed Icons

Fixes :
               * Typo in dropdown list.
               * Added Delete Icon.

Please ensure Checkmark the following :

[x] - Tested Localy
[x] - Checked in IE11 and Firefox
[ ] - Checked in mobile
[ ] - Backend work
[x] - Frontend work
[ ] - Bug Fixes
[x] - Enhancements

lgtm


build ios get error : Undefined symbols for architecture x86_64:

I install manually and get this error
I configed GoogleSDK, SafariFramework...
And package.json
"dependencies": {
"@babel/runtime": "^7.1.2",
"moment": "^2.22.2",
"native-base": "^2.8.1",
"react": "16.5.0",
"react-native": "0.57.8",
"react-native-alarm": "^1.2.0",
"react-native-calendar-events": "^1.7.1",
"react-native-fbsdk": "^0.8.0",
"react-native-gesture-handler": "^1.0.5",
"react-native-google-signin": "1.2.3  ",
"react-native-modal-datetime-picker": "^6.0.0",
"react-native-router-flux": "^3.37.0",
"react-native-tabbar-bottom": "^1.0.4",
"react-navigation": "^3.5.1",
"react-redux": "^5.0.2",
"redux": "^3.6.0",
"redux-thunk": "^2.2.0"
},
GoogleSDK 4.4.0
XCode 10.2.2

hi! did you try rm -rf ~/Library/Developer/Xcode/DerivedData/*?

I have same problem, really painful installation :(

closing as there is no reproduction. Please open a new issue with a repro if you encounter this. Thanks.


Pip install broken

  Collecting staintools
  Downloading https://files.pythonhosted.org/packages/02/09/e6facc38145dc02d521c5233165d65768369b9326a9dde7f032a353f8475/staintools-2.1.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-5kh4awl3/staintools/setup.py", line 4, in <module>
        readme = f.read()
      File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
        return codecs.ascii_decode(input, self.errors)[0]
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 3940: ordinal not in range(128)

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-5kh4awl3/staintools/

After commenting out the following lines,
# with open('README.md') as f:
#     readme = f.read()

setup(
    name='staintools',
    version='2.1.1',
    description='A package for tissue image stain normalization, augmentation and more.',
#     long_description=readme,
    author='Peter Byfield',
<EMAIL_ADDRESS>    url='https://github.com/Peter554/StainTools',
    packages=find_packages(exclude=('tests')),
    install_requires=[
        'numpy',
        'opencv-python',
        'spams',
        'matplotlib'
    ]
)

I tried installing from a local cloned directory using pip install -e . and triggered the following error:
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ffbvu0zn/spams/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-3qf2_y4e/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-ffbvu0zn/spams/

I haven't seen the first error before regarding readme encoding, just it should be easily fixable.
I'm more concerned about the second one regarding SPAMS. This is a package dependency that gives rather a headache it seems. It was recently made available of PyPI but unfortunately the install pip install spams seems very buggy. Ideally that would be fixed or we would get rid of this dependency some how (but so far I haven't found anything suitable - sklearn did seem to have something similar but it was much slower).

I've sent the SPAMS dev team an email to ask about their pip install.

After commenting out the following lines,
# with open('README.md') as f:
#     readme = f.read()

setup(
    name='staintools',
    version='2.1.1',
    description='A package for tissue image stain normalization, augmentation and more.',
#     long_description=readme,
    author='Peter Byfield',
<EMAIL_ADDRESS>    url='https://github.com/Peter554/StainTools',
    packages=find_packages(exclude=('tests')),
    install_requires=[
        'numpy',
        'opencv-python',
        'spams',
        'matplotlib'
    ]
)

I tried installing from a local cloned directory using pip install -e . and triggered the following error:
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ffbvu0zn/spams/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-3qf2_y4e/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-ffbvu0zn/spams/

I installed spams first by using conda https://anaconda.org/conda-forge/python-spams, and commented install_requires lines, then pip  install -e . worked.

Thanks @fortunechen. Yes I also used to use the conda distribution of spams. More recently spams was made available on PyPI so I wanted to switch to that to make install simpler (not everyone uses conda). However it seems to be too buggy at the moment so I will consider to revert to conda again.

Response from SPAMS says they are looking into it but don't expect anything too soon. So for now I'll keep this issue open and have updated the README to advise using conda if possible.

pip install is currently broken due to the dependency on SPAMS. This issue has been raised with the SPAMS developers. In the meantime if you use conda you may have better luck resolving the SPAMS dependency via conda-forge:
https://anaconda.org/conda-forge/python-spams

Update:

long_description=readme issue should now be resolved.
SPAMS install. For now have removed from setup.py and updated README to guide users to the conda option.


DraggableModule is not an NgModule

I'm using angular cli v1.0.0-beta.26 and angular 2.3.1. When the page loads it just tells me the DraggableModule is not an NgModule

Hi @jredd, I have fixed that please have a look. thanks

I am closing this issue, if you feel like this issue should not be closed please reopen it.


RNN integer input error

import numpy as np
import tensorflow as tf

x_1 = [ i for i in range(20) ]
x_2 = np.array(x_1)
x_3 = x_2.reshape([1,20,1])

rnn = tf.keras.layers.SimpleRNN(1)
rnn(x_3)

InvalidArgumentError                      Traceback (most recent call last)
 in ()
7
8 rnn = tf.keras.layers.SimpleRNN(1)
----> 9 rnn(x_3)
15 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/recurrent.py in call(self, inputs, initial_state, constants, **kwargs)
658
659     if initial_state is None and constants is None:
--> 660       return super(RNN, self).call(inputs, **kwargs)
661
662     # If any of initial_state or constants are specified and are Keras
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/base_layer.py in call(self, *args, **kwargs)
1010         with autocast_variable.enable_auto_cast_variables(
1011             self._compute_dtype_object):
-> 1012           outputs = call_fn(inputs, *args, **kwargs)
1013
1014         if self._activity_regularizer:
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/recurrent.py in call(self, inputs, mask, training, initial_state)
1571     self._maybe_reset_cell_dropout_mask(self.cell)
1572     return super(SimpleRNN, self).call(
-> 1573         inputs, mask=mask, training=training, initial_state=initial_state)
1574
1575   @property
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/recurrent.py in call(self, inputs, mask, training, initial_state, constants)
802         input_length=row_lengths if row_lengths is not None else timesteps,
803         time_major=self.time_major,
--> 804         zero_output_for_mask=self.zero_output_for_mask)
805
806     if self.stateful:
/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
199     """Call target, and fall back on dispatchers if there is a TypeError."""
200     try:
--> 201       return target(*args, **kwargs)
202     except (TypeError, ValueError):
203       # Note: convert_to_eager_tensor currently raises a ValueError, not a
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/backend.py in rnn(step_function, inputs, initial_states, go_backwards, mask, constants, unroll, input_length, time_major, zero_output_for_mask)
4347     # the value is discarded.
4348     output_time_zero, _ = step_function(
-> 4349         input_time_zero, tuple(initial_states) + tuple(constants))
4350     output_ta = tuple(
4351         tensor_array_ops.TensorArray(
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/recurrent.py in step(inputs, states)
788       def step(inputs, states):
789         states = states[0] if len(states) == 1 and is_tf_rnn_cell else states
--> 790         output, new_states = cell_call_fn(inputs, states, **kwargs)
791         if not nest.is_nested(new_states):
792           new_states = [new_states]
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/base_layer.py in call(self, *args, **kwargs)
1010         with autocast_variable.enable_auto_cast_variables(
1011             self._compute_dtype_object):
-> 1012           outputs = call_fn(inputs, *args, **kwargs)
1013
1014         if self._activity_regularizer:
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/layers/recurrent.py in call(self, inputs, states, training)
1369       h = K.dot(inputs * dp_mask, self.kernel)
1370     else:
-> 1371       h = K.dot(inputs, self.kernel)
1372     if self.bias is not None:
1373       h = K.bias_add(h, self.bias)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
199     """Call target, and fall back on dispatchers if there is a TypeError."""
200     try:
--> 201       return target(*args, **kwargs)
202     except (TypeError, ValueError):
203       # Note: convert_to_eager_tensor currently raises a ValueError, not a
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/backend.py in dot(x, y)
1896     out = sparse_ops.sparse_tensor_dense_matmul(x, y)
1897   else:
-> 1898     out = math_ops.matmul(x, y)
1899   return out
1900
/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
199     """Call target, and fall back on dispatchers if there is a TypeError."""
200     try:
--> 201       return target(*args, **kwargs)
202     except (TypeError, ValueError):
203       # Note: convert_to_eager_tensor currently raises a ValueError, not a
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/math_ops.py in matmul(a, b, transpose_a, transpose_b, adjoint_a, adjoint_b, a_is_sparse, b_is_sparse, name)
3313     else:
3314       return gen_math_ops.mat_mul(
-> 3315           a, b, transpose_a=transpose_a, transpose_b=transpose_b, name=name)
3316
3317
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/gen_math_ops.py in mat_mul(a, b, transpose_a, transpose_b, name)
5530       return _result
5531     except _core._NotOkStatusException as e:
-> 5532       _ops.raise_from_not_ok_status(e, name)
5533     except _core._FallbackException:
5534       pass
/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/ops.py in raise_from_not_ok_status(e, name)
6860   message = e.message + (" name: " + name if name is not None else "")
6861   # pylint: disable=protected-access
-> 6862   six.raise_from(core._status_to_exception(e.code, message), None)
6863   # pylint: enable=protected-access
6864
/usr/local/lib/python3.7/dist-packages/six.py in raise_from(value, from_value)
InvalidArgumentError: cannot compute MatMul as input #1(zero-based) was expected to be a int64 tensor but is a float tensor [Op:MatMul]

This is a dtype problem. Change int to float can solve the problem.
But I don't know why. Also, the final error message does not make sense.
import numpy as np
import tensorflow as tf

x_1 = [ float(i) for i in range(20) ]
x_2 = np.array(x_1)
x_3 = x_2.reshape([1,20,1])

rnn = tf.keras.layers.SimpleRNN(1)
rnn(x_3)

This behavior is documented in the example of simple rnn. The input is explicitly converted to type float.
See https://www.tensorflow.org/api_docs/python/tf/keras/layers/SimpleRNN#examples

@ymodak You are right. So this is the reason why I report it as a bug. RNN should handle the dtype problem.

@Joocheol ,
Can you please provide the tensorflow versin which you are trying to execute the mentioned code.Thanks!

@ymodak 2.4.1
I run it on the colab.

@Joocheol This is an intended behavior since TF 2 keras layers default dtype is float32.
See https://www.tensorflow.org/api_docs/python/tf/keras/backend/floatx
Thus you need to explicitly set the data type to float32 as mentioned in the usage examples of Keras layers SimpleRNN and SimpleRNNCell.

@ymodak OK. I will accept it. Thank you for your clarification.


Use color gradients

Hi. How can I use color gradients for slider background color?

just change the library and clean build folder to adapt your changes

What does this answer mean?


specifying the lidar frame id

Is it possible to set the frame id of the lidar in the parameters.yaml file ?

The following frame IDs can be set, but there is no transformation from the scan's lidar frame to the base_link.
https://github.com/rsasaki0109/pcl_localization_ros2/blob/main/src/pcl_localization_component.cpp#L9-L11
If needed, you might have to implement it referring to the following:
https://github.com/autowarefoundation/autoware.universe/blob/main/localization/ndt_scan_matcher/src/ndt_scan_matcher_core.cpp#L492-L506C1


common practices

First draft presenting common practices.
More to come,
Sorry for the probable spelling errors.
Is this "tutorial" like format the right one for this section of the doc ?

looks good ! thanks !


tofi no longer displaying flatpaks in search

Not really sure what changed but after a recent reboot I can no longer search for flatpak apps. Is there a setting I'm missing?

Nothing regarding how tofi finds programs has changed recently, so I'm not sure what would have broken. The way it works is:
For tofi-run:

Check if a cache file exists at $XDG_CACHE_HOME/tofi-compgen (defaulting to ~/.cache), and if it does and is up-to-date, load the list of programs from that.
If the cache is out of date or non-existent, scan each folder in $PATH for executables

For tofi-drun:

Same as before, look for a cache at $XDG_CACHE_HOME/tofi-drun.
Otherwise, look through every folder in $XDG_DATA_DIRS (defaulting to /usr/local/share:/usr/share) for folders named applications, and scan those for .desktop files.

So depending on which of those has stopped working, it's presumably either a flatpak change that's done something weird, something's gone wrong with your environment variables, or tofi's caches have broken in some way and aren't being updated.
Deleting the two cache files or checking your environment variables may solve the issue, but otherwise I'm not sure.

sweet, I knew I had forgotten something. Accidentally changed from drun to run. Thank you

Ah, I'm glad it was something simple!


movie button not working

hey the movie button is not working, I can fix that can you assign me this issue under gssoc-ext and hactoberfest accepted

I am interested in this issue, pls assign to me

Already assigned to someone.


Let's Encrypt Implementation

So for those of you who don't know about the Let's Encrypt project, essentially they are a new (Upcoming) certificate authority who will provide free certificates for everyone. They are intending to go live over the next couple of months and they even have a nice little tool which can automatically get and install the certificates.
I wanted to start a discussion on the best way to implement this within Dokku. (Either as a plugin or built into the core implementation.) The integration would need to handle the following sorts of events:

Startup
Application creation
Application destruction
Hostname change
Re-Deployment (?)

The way I see it working is to, for each application in question, run an instance of the client in "automatic mode". This should then be stopped, reconfigured and restarted as required upon any of the above events occurring. this means that we'd take advantage of the automatic certificate retrieval and renewal, as well as the automatic deployment to Nginx. (Although I haven't yet worked out exactly how that part works and how it would work with the config that Dokku uses.) It could also be used in the "download only" mode where the Nginx config would be managed by Dokku.
Any thoughts ?

This was brought up in #1497. If someone wants to work on it, it could be a nice official plugin, but I don't think it strictly belongs in the dokku core.


Update nunit.framework reference in Ghpr.NUnit to NUnit version 3.9.0

Hi!
We updated our NUnit version today from 3.7.1 to version 3.9.0 which was released two days ago.
https://github.com/nunit/nunit/releases/tag/3.9
Unfortunately we have now troubles getting Screenshots for our GHPReports.
This is the error message we get:
System.IO.FileLoadException: Could not load file or assembly 'nunit.framework, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=2638cd05610744eb' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'nunit.framework, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=2638cd05610744eb'    at Ghpr.NUnit.Utils.ScreenHelper.SaveScreenshot(Byte[] screenBytes)
We figured out, that there is still a reference to NUnit 3.7.1.

Would you mind updating it to the latest version and plan a release for GHPReporter?

Hi @GitSIPA, this is released now.
Thank you


API Owner Authorization from another Table

** Which Category is your question related to? **
API, Auth
** What AWS Services are you utilizing? **
Cognito, AppSync
** Context **

We're building a multi-organization platform where users (i.e. profiles in the example below) can be a part of multiple organizations (many to many relationship between Organizations and Profiles).
(GraphQL Schema provided below)
Users are authenticated via Cognito User Pools
A Cognito User is associated with its "Profile" via userId.
Profiles are stored as a "Profile", where we store additional attributes (instead of using Cognito attributes)
Organizations are stored as an "Organization" and has an array of members (Profile Ids) in the members field.
For each new API we're building (like the "Location" type I'm creating below), we're trying to restrict CRUD access only to members of the Organization.

** Problem **

The problem is that the @auth directive on the APIs only allows you to:
(a) restrict it by a group of owners via "ownerField", which only accepts userIds as strings,
(b) restrict it by Cognito Group (i.e. define a group per organization, but there's a limit to Cognito Groups, and I don't think its intention is to scale the number of Groups with the # of users / organizations)
I'm looking for something that allows you to restrict read/write access on an API by a field on another table.
For example, I want to have the Location type (in the example below) use an @auth directive to restrict read/write access to only its owner and organization "members" (members field in the Organization Type).

Is there a way to achieve this?
** Provide additional details e.g. code snippets **
Part of the GraphQL schema is shown below.
type Profile
    @model
    @key(name: "byUserId", fields: ["userId"], queryField: "profilesByUserId")
    @key(name: "byUsername", fields: ["username"], queryField: "profilesByUsername")
    @auth(rules: [
        { allow: owner, operations: [update, delete] },
        { allow: groups, groups: ["Admin"], operations: [update, delete] }
    ])
{
    id: ID!
    userId: String!
    username: String!
    email: String!
    firstName: String!
    lastName: String!
    owner: String!
    preferences: UserPreferences!
    profileImageKey: String
    status: ProfileStatus!
    termsAndConditionsAcceptance: TermsAndConditionsAcceptance!
    organizations: [OrganizationUser!]! @connection(keyName: "organizationsByUser", fields: ["id"])
}

type Organization
    @model
    @key(name: "byOwner", fields: ["owner", "id"], queryField: "organizationsByOwner" )
    @auth(rules: [
        { allow: owner },
        { allow: groups, groups: ["Administrator"] },
        { allow: owner, ownerField: "members" }
    ])
{
    id: ID!
    name: String!
    city: String!
    state: String!
    country: String!
    owner: String!
    members: [String!]!
    organizationImageKey: String
    users: [OrganizationUser!]! @connection(keyName: "profilesByOrganization", fields: ["id"])
    locations: [Location!] @connection(keyName: "locationsByOrganization", fields: ["id"])
}

type OrganizationUser
    @model(queries: null)
    @key(name: "profilesByOrganization", fields: ["organizationId", "profileId"])
    @key(name: "organizationsByUser", fields: ["profileId", "organizationId"])
{
    id: ID!
    organizationId: ID!
    profileId: ID!
    organization: Organization! @connection(fields: ["organizationId"])
    profile: Profile! @connection(fields: ["profileId"])
    role: Role!
}

... (other enums)

type Location
    @model
    @key(name: "locationsByOrganization", fields: ["organizationId", "name"])
    @key(name: "ByStatus", fields: ["status", "name"], queryField: "locationsByStatus")
{
    id: ID!
    name: String!
    address: String!
    city: String!
    state: String!
    country: String!
    code: String!
    mapsUrl: String
    notes: String
    status: Status!
    organizationId: ID!
    organization: Organization @connection(fields: ["organizationId"])
}

(b) restrict it by Cognito Group (i.e. define a group per organization, but there's a limit to Cognito Groups, and I don't think its intention is to scale the number of Groups with the # of users / organizations)

When a user logs in you can provide additional user groups or custom claims using Cognito’s preToken lambda. You can write and attach a lambda that makes DynamoDB calls to lookup the user’s orgs and add these orgs to their group membership, or add them as an additional claim. Then you can use dynamic group auth to restrict access. This gets around any limits in Cognito w.r.t groups.
See #3118 for a similar question

I've had similar discussions with various people at AWS.
My ideal solution would be an API Gateway style Lambda authorizer that allowed me to pass data into each resolver so the user profile only needed to be loaded once per request. It doesn't seem like this is going to implemented any time soon.
The next best solution seems to be a directive like @user_data that would load a record from DynamoDB into $ctx.stash based on the users ID. This would require conversion to pipeline resolvers. The @auth directive could be modified so that there was a way to say "get your groups from this variable in $ctx.stash" much like groupClaim currently does with the Cognito Access/Identity token.
My least favorite option is using a pre-token generation trigger on the Cognito User Pool to load the profile record from DynamoDB then set virtual groups in the users token. I understand that this is more "scalable" but it provides a bad user experience compared to the other two options which allow permissions to be changed immediately without requiring the user to log out/in. At least this option works today.

Thanks @RossWilliams for the pointer.  I've started building out the pre token lambda.  Ideally, I'd like to run it through GraphQL APIs, since I already have the data available in there, but I get stuck on the circular dependency ( #1874 ).  So I'm researching workarounds, or I'll have the build out a separate table in DynamoDB, which is not ideal (as I'll need to manage two tables of organization/user data and keep them in sync).
I like @buggy 's ideas for a solution, but for now I'll probably have to go through the workaround, deal with the log in / log out issue, and look at workarounds for the pre token lambda accessing GraphQL APIs.

As an update, I've successfully created the Pre Token Lambda that invokes a separate lambda with access to GraphQL APIs, retrieving data from the OrganizationUser table mentioned above (modified a bit to include Cognito userIds), and then including the organizationId as the Cognito group.  However, the drawback with this solution is that my login process now takes 5-10 seconds, as the Pre Token Lambda needs to wait for the secondary lambda and data retrieval before passing the data back to the client.  We're fine with this drawback for now, but may decide to switch to a separately managed DynamoDB table in the future.

@ngnathan you can access the DynamoDB tables directly, no need to hop through another lambda and AppSync. If there is a circular dependency issue, you can break it with a custom resource lambda to attach the preToken trigger via AWS-SDK calls to Cognito.

@RossWilliams I'm still trying to wrap my head around using a custom resource lambda as you mentioned.
If I don't hop through another lambda + appsync, I keep getting circular dependency issues.  Can you perhaps elaborate further on what you mean by: "custom resource lambda to attach the preToken trigger via AWS-SDK calls to Cognito."?
Do you mean:
(a) creating a custom resource (similar to  ) with AppSync permissions and somehow granting the Pre Token Lambda access to the process.env.GraphQLAPIIdOutput and process.env.GraphQLAPIEndpointOutput variables to make calls within the Pre Token Lambda itself?

I had tried to do this (following the example in the docs of passing the Post Confirmation Lambda the Cognito UserPoolId), but have so far been unsuccessful.  I cannot seem to get those variables passed through.  If this is what you mean, I'll post what I did if you have some time to take a look.

(b) creating a new lambda, and changing the cognito trigger parameters to call the new lambda (instead of the normal Pre Token Generation function)?

I tried this too, but just ended up with the same circular dependency issues (i.e. backend-config.json still needs the auth to be dependent on the new lambda function, which is dependent on the api, which then causes circular dependencies)

(c) perhaps accessing the DynamoDB tables without the GraphQL APIs?

I haven't tried this yet, but it seems like a workaround more than anything.  If this is what you are referring to though, how do I access the actual table details?  Do I just construct this manually?  (e.g. --).

For your (c) point, add permission to the lambda for:
{
      Effect: 'Allow',
      Action: ['appsync:ListGraphqlApis'],
      Resource: '*',
    }

We are doing this via a custom:LambdaCallout when deploying (to add the permission to the PreToken lambda via a lambda adding the permission the PreToken lambda role). I don't know it this will work if you add it manually to the lambda cloudformation with amplify (i think it will be override when updating the function via amplify function update later).
Then inside you PreToken function:
// Outside handler:
let appSyncApiId: string | null = null;
const getAppSyncApiId = async () => {
  const apis = await appSync.listGraphqlApis().promise();
  if (isNil(apis) || isNil(apis.graphqlApis) || isEmpty(apis.graphqlApis)) {
    return;
  }
  const apiId = apis.graphqlApis.find(d => d.name === `YOURAPINAME-${ENV}`);
  appSyncApiId = apiId ? apiId.apiId! : null;
};

// Inside the handler:
    if (isNil(appSyncApiId)) {
      await getAppSyncApiId();
    }

// Get Dynamo table name
const tableName = `YourTable-${appSyncApiId}-${ENV}`;

So if your lambda is warm, you have the apiId otherwise, you have to get it first but it's not so much time consuming.
Hope this helps.

@SebSchwartz Thanks so much for the guidance!  Do you have any guidance on how to create a lambda to add a permission to the Pre Token Lambda role?

I followed this comment to get it working: https://github.com/aws-amplify/amplify-cli/issues/1204#issuecomment-521211197
You'll also need to pack cfn-response in your function so you can tell Cloudformation that it's done: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html
Be carefull with this and always send response back to cloudformation (big try catch for instance) otherwhise in case of mistake, you could be stuck 2 hours waiting for cloudformation: 1h for create (that fails but CF is waiting for response) and 1h for the rollback (which could have same behaviour).

Thanks @SebSchwartz - I finally started understanding CGTs a little bit more.  And thanks again to @RossWilliams for the guidance on multiple threads.
It's sort of diverging from the original topic now, but thought I'd provide an update.
I finally got it working, but in the way that @RossWilliams had initially recommended (I had initially misunderstood his statement) where I used a custom resource to attach a function as a pre token trigger.  I didn't understand CFT's role and didn't know functions created through amplify CLI could be used to manipulate other functions during the amplify push process.  As a result, I finally was able to create a custom function like #1204 (comment)
If anyone else needs guidance on this, especially those trying to work around circular dependencies, I did the following:

Project has auth set up with Cognito User Pools
Do not set up Pre Token Generation lambdas (or any other triggers) yet, as this will be done (or replaced) later on

Function 1:

Create a function through amplify CLI: amplify function add and add dependencies (like api dependencies to access AppSync APIs) which will act as the function (with whatever business logic) that you want attached to the pre token generation trigger in your userpool.
This function which I called "ccadminPreTokenOrgCheck", during user sign in (Pre Token) uses AppSync to retrieve a list of organizations that the user belongs to.  It uses a signed POST request as documented here https://aws-amplify.github.io/docs/cli-toolchain/quickstart#graphql-from-lambda

Function 2:

Create another function, which I called "ccadminAddPreTokenTriggerToLambda" through amplify CLI: amplify function add and add dependencies to auth (your Cognito User Pool) and the function previously created.
This will give your function access to the following parameters:

var environment = process.env.ENV
var region = process.env.REGION
var authCcadminUserPoolId = process.env.AUTH_CCADMIN_USERPOOLID
var functionCcadminPreTokenOrgCheckName = process.env.FUNCTION_CCADMINPRETOKENORGCHECK_NAME

However, I needed the ARN of the function "ccadminPreTokenOrgCheck" in order to reference this function properly, so in the Cloud Function Template of "ccadminAddPreTokenTriggerToLambda", I added the Arn reference as a parameter in the "Parameters" section, added it to the environment variables in the LambdaFunction of the "Resources" section, and added it to the backend-config.json.  (Also ensuring that the CFT of "ccadminPreTokenOrgCheck" has the Arn as an output).

In CFT json:
	"Parameters": {
...
		"functionccadminPreTokenOrgCheckArn": {
			"Type": "String",
			"Default": "functionccadminPreTokenOrgCheckArn"
		}
	},
...
	"Resources": {
		"LambdaFunction": {
			"Type": "AWS::Lambda::Function",
...
				"Environment": {
					"Variables": {
...
						"FUNCTION_CCADMINPRETOKENORGCHECK_ARN": {
							"Ref": "functionccadminPreTokenOrgCheckArn"
						}
					}
				},
...
		"CustomFunctionAddPreTokenTriggerToLambda": {
			"Type": "Custom::AddPreTokenTriggerToLambda",
			"Properties": {
				"ServiceToken": {
					"Fn::GetAtt": [
						"LambdaFunction",
						"Arn"
					]
				},
				"TriggerVersion": 1
			}
		}
	},

In backend-config.json:
    "function": {
...
        "ccadmin8c93026cAddPreTokenTriggerToLambda": {
...
            "dependsOn": [
...
                {
                    "category": "function",
                    "resourceName": "ccadminca9d06a8PreTokenOrgCheck",
                    "attributes": [
                        "Name",
                        "Arn"
                    ]

Run amplify env checkout <currentEnvName> to update the environment
This will give me access to process.env.FUNCTION_CCADMINPRETOKENORGCHECK_ARN in the function
In this function, I used AWS-SDK to access the Cognito Identity with describeUserPool, and updated it with updateUserPool to attach the lambda "functionccadminPreTokenOrgCheckName" to the Pre Token Trigger.  I also used safe-cfn-custom-resource (https://www.npmjs.com/package/safe-cfn-custom-resource) to provide CF  and used the same code whether it was creating or updating.

My lambda function (index.js) looks like the following.  Note that this is super rough and not optimized, but just to show:
exports.handler = require('safe-cfn-custom-resource')(async () => {
    const aws = require('aws-sdk');
    const region = process.env.REGION;
    const authCcadminUserPoolId = process.env.AUTH_CCADMIN_USERPOOLID;
    const functionCcadminPreTokenOrgCheckArn = process.env.FUNCTION_CCADMINPRETOKENORGCHECK_ARN;
    const identity = new aws.CognitoIdentityServiceProvider({
        apiVersion: '2016-04-18',
        region: region
    });
    return {
        async create(event, context) {
            try {
                // Get User Pool
                const params = {
                    UserPoolId: authCcadminUserPoolId
                };
                const userPoolResult = await identity.describeUserPool(params).promise();

                // Update User Pool
                if (userPoolResult && userPoolResult.UserPool && userPoolResult.UserPool.LambdaConfig) {
                    const preTokenLambdaArn = userPoolResult.UserPool.LambdaConfig.PreTokenGeneration;

                    // If Pre Token Generation Trigger does not exist, add trigger
                    // Else, replace PreTokenGeneration trigger with PreTokenOrgCheck Function
                    if (!preTokenLambdaArn || preTokenLambdaArn !== functionCcadminPreTokenOrgCheckArn) {
                        const updatedPreTokenLambdaArn = functionCcadminPreTokenOrgCheckArn;
                        const updatedUserPoolSettings = {
                            UserPoolId: userPoolResult.UserPool.Id,
                            LambdaConfig: {
                                ...userPoolResult.UserPool.LambdaConfig,
                                PreTokenGeneration: updatedPreTokenLambdaArn
                            }
                        };
                        const updateUserPoolResult = await identity.updateUserPool(updatedUserPoolSettings).promise();
                    }
                }

                return {
                    id: 'addPreTokenTriggerToLambda',
                    data: { triggerAdded: 'Success' }
                };
            } catch (error) {
                console.log('ccadminAddPreTokenTriggerToLambda > create > error', error);
                return {
                    id: 'addPreTokenTriggerToLambda',
                    data: { triggerAdded: 'Error' }
                };
            }
        },
        async update(event, context) {

... (same as create)

        },
        delete(event, context) {
            console.log('ccadminAddPreTokenTriggerToLambda > delete');
        }
    };
});

The other option with @SebSchwartz 's suggestion is to create the Pre Token Generation trigger normally, and create a new function (similar to above) to add AppSync IAM permissions with AWS-SDK.
Hope this helps someone!

Forgot to mention in the comment above that you'll also need to add permissions (lambda:invokeFunction specifically) to the lambda function through aws-sdk.  When updating a function through the console, it will add that permission, but through aws-sdk (and CLI) it doesn't add it, so you'll need:
    const aws = require('aws-sdk');
    const lambda = new aws.Lambda();
...
        try {
            const userPoolResult = await identity.describeUserPool(params).promise();
...
                const updatedPreTokenOrgCheckPermissionsParams = {
                    Action: 'lambda:invokeFunction',
                    FunctionName: functionCcadmincaPreTokenOrgCheckName,
                    Principal: 'cognito-idp.amazonaws.com',
                    SourceArn: userPoolResult.UserPool.Arn,
                    StatementId: `1`
                };
                const updatePreTokenOrgCheckPermissionsResult = await lambda
                    .addPermission(updatedPreTokenOrgCheckPermissionsParams)
                    .promise();

@ngnathan Glad that you got this working! One thing I'd be curious on is if you believe we should add some improvements to the documentation for pretoken generation:
https://aws-amplify.github.io/docs/cli-toolchain/quickstart#adding-a-lambda-trigger
https://aws-amplify.github.io/docs/cli-toolchain/cognito-triggers#override-id-token-claims
If so we would certainly welcome a PR to the docs which is just markdown, or any tactical suggestions we can take otherwise.
Aside from this and rewinding to your top level question there are some advantages to having your authorization metadata defined on a separate table. While @buggy comment on tokens being more scalable is true in some circumstances this is a tradeoff as there are legitimate use cases for having this metadata state defined in a table rather than the token, namely more dynamic access controls and centralization of authority across your @model types. This is especially true for "Friendship" patterns which we've written about a couple of times:
https://hackernoon.com/graphql-authorization-with-multiple-data-sources-using-aws-appsync-dfae2e350bf2
https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-pipeline-resolvers.html
This authorization use case was one of the motivators for creating Pipeline Resolvers and we are looking at more holistic support for these in 2020. You'll see that we have an RFC however it is a non-trivial design and implementation so we don't have an explicit timeline. However we'll keep this issue open as a reference to that use case.

@buggy regarding pre-token

provides a bad user experience compared to the other two options which allow permissions to be changed immediately without requiring the user to log out/in

you can have users request new tokens without having to log out and in again. The trick is telling users that they should update their credentials. This can be solved with subscriptions on a USER_PERMISSONS model.

Any news?

Hi @ngnathan !
I followed you example and got a bit confused with the resource names:
You create the function ccadminAddPreTokenTriggerToUserPool but then in backend-config.json it is referenced as ccadmin8c93026cAddPreTokenTriggerToLambda - so some hash inbetween was added. In the lambda's index.js you return as the physical id ccadminAddPreTokenTriggerToLambda which is, as far as I get it, a non-existent resource. In my case whatever I return at this point I always end up with an error Invalid PhysicalResourceId. Would you know which ID is meant to be referenced here ?

you can have users request new tokens without having to log out and in again. The trick is telling users that they should update their credentials. This can be solved with subscriptions on a USER_PERMISSONS model.

Thanks, @RossWilliams. Super helpful comments in multiple threads regarding dynamic group authorization. Could you please elaborate on this comment? How is this done in practice?

I've had similar discussions with various people at AWS.
My ideal solution would be an API Gateway style Lambda authorizer that allowed me to pass data into each resolver so the user profile only needed to be loaded once per request. It doesn't seem like this is going to implemented any time soon.
The next best solution seems to be a directive like @user_data that would load a record from DynamoDB into $ctx.stash based on the users ID. This would require conversion to pipeline resolvers. The @auth directive could be modified so that there was a way to say "get your groups from this variable in $ctx.stash" much like groupClaim currently does with the Cognito Access/Identity token.
My least favorite option is using a pre-token generation trigger on the Cognito User Pool to load the profile record from DynamoDB then set virtual groups in the users token. I understand that this is more "scalable" but it provides a bad user experience compared to the other two options which allow permissions to be changed immediately without requiring the user to log out/in. At least this option works today.

I've managed to find a elegant solution to this using the provided directives, and it looks a lot like the first solution provided in the above comment. Reply to this if you'd like more details I can go over it in Amplify's discord channel.

@r0zar would love to see an implementation / solution using directives if possible.


chore: update npm lockfile to v3

Issue
The npm lockfile package-lock.json uses the outdated "lockfileVersion": 1.
npm documentation for lockfileversion shows the lockfile version as follows:

1: The lockfile version used by npm v5 and v6.
2: The lockfile version used by npm v7 and v8. Backwards compatible to v1 lockfiles.
3: The lockfile version used by npm v9 and above. Backwards compatible to npm v7.

npm is bundled with Node.js. The Node.js release schedule  shows that Node.js 18 to 23 are currently supported.
The package-lock.json lockfile is committed to the repository, however it is never published as part of the npm package. It is only used by Contributors and CI workflows.
The workflow ci-test.yml runs with a minimum npm v10.8.2 according to workflow logs, so lockfile version 3 should be used.
Change

Update the npm lockfile package-lock.json from "lockfileVersion": 1 to "lockfileVersion": 3.
Use npm audit fix to fix critical vulnerabilities in locked versions

npm install --lockfile-version=3
npm audit fix

@MikeMcC399 good question. I don't have visibility of the access to the repo so can't say. 🤷♂
But remember that in terms of getting a new version published to NPM; @indexzero is your man: https://www.npmjs.com/package/ps-tree 👌

@nelsonic

good question. I don't have visibility of the access to the repo so can't say. 🤷♂ But remember that in terms of getting a new version published to NPM; @indexzero is your man: https://www.npmjs.com/package/ps-tree 👌

If there is no response from @indexzero I will assume that this package is no longer maintained. Merging changes into the default branch is only useful if there is a means to release a new package to the npm registry at an appropriate time.
$ npm owner ls ps-tree
indexzero<EMAIL_ADDRESS>


GM Screen doesn't export well

I've tested this first on v11, then bit the bullet and upgraded to v12 and have the same issue.
The GM Screen exports only as "undefined"
---
title: "GM Screen"
icon: ":sticky-note:"
aliases: "GM Screen"
foundryId: JournalEntry.McEmh68SPzvXTsVJ.JournalEntryPage.lQ9MmX3zg4Bd9hjb
tags:
  - JournalEntryPage
---
Below you will find list of shortcuts to subjects that are useful for to GM's, grouped by theme

**Reference Tables Actions & Skills**

| [[undefined]] | [[undefined]] | [[undefined]] | [[undefined]] |
| --- | --- | --- | --- |
| [[undefined]] | [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] |  |  |

**Death & Recovery Terrain & Environment**

| [[undefined]] | [[undefined]] | [[undefined]] | [[undefined]] |
| --- | --- | --- | --- |
| [[undefined]] | [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] |  |  |  |

**Gamemastery Equipment & Services**

| [[undefined]] | [[undefined]] | [[undefined]] |
| --- | --- | --- |
| [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] | [[undefined]] |

**Misc** **Variant Rules**

| [[undefined]] | [[undefined]] | [[undefined]] |
| --- | --- | --- |
| [[undefined]] | [[undefined]] | [[undefined]] |
| [[undefined]] | [[undefined]] |  |

This was a curious little puzzle.  I have figured out the root cause and have a rough fix.   I should have a fix posted tomorrow night (6/28).

A similar problem occurs with the Player Screen.  This upcoming fix will address that one as well.

I’m happy I could provide you with some entertainment! 😺

v0.9.10 addresses most of the issues.   I thought I had it all working properly, but there is some nuance involved.  There are still a few links in the GM Screen that don't get converted.  The issue is the items linked to are not retrievable from Foundry in a synchronous manner (which the export process requires, unfortunately) and as a result, the lookup of the linked document fails.   You'll see this for 3 or 4 links in the GM Screen where they appear as UUID links that don't exist.
As a work-around for this,  if you import the "PF2E Journal" so you have a local copy, and then export it, that export will work correctly for all the links.

Did the workaround, got a good GM screen exported, but noticed now that some of the pages it links to don't have good tables, e.g. Proficiency Without Level.
The tables lack a blank line between the title and the table, thus preventing the table from rendering.
It's several pages that suffer from this.

Yeah, the table thing is unavoidable at the moment - the table creation is part of the HTML to markdown conversion that's done by a built-in 3rd-party routine called TurndownService that was included in the original Markdown Exporter.    It's a quick edit by hand to correct for now.   When I have time I'll see if maybe I can detect the issue with a regex after the markdown code is generated and automatically insert the necessary blank line.

Interestingly, I already had added some custom code to handle adding a blank line in front a table because it was an issue in some other exports.  However, in this instance, the problem is happening within the TurndownService conversion as the item shown preceding the table is actually part of the HTML table tag (it is a caption).   So, it looks like I need to add some code to do something special with table captions so they don't break the markdown rendering.

v0.9.11 should fix the blank line needed between a table caption and the table.

For your records/completeness, here are all the files that export with "undefined". Note that the same workaround (import, then export) works for Archetypes as with GM Screen.
./Journals/PF2e Journals/Archetypes/Scrollmaster.md
./Journals/PF2e Journals/Archetypes/Hellknight Signifer.md
./Journals/PF2e Journals/Archetypes/Hellknight.md
./Journals/PF2e Journals/Archetypes/Spellmaster.md
./Journals/PF2e Journals/Archetypes/Swordmaster.md
./Journals/PF2e Journals/GM Screen/GM Screen.md
./Journals/PF2e Journals/GM Screen/Treasure Per Encounter.md
./Journals/PF2e Journals/GM Screen/Lifestyle Expenses.md
./Journals/PF2e Journals/GM Screen/Light Effects.md
./Journals/PF2e Journals/GM Screen/Detecting Creatures.md
./Journals/PF2e Journals/GM Screen/Treasure.md
./Journals/PF2e Journals/GM Screen/Player Screen.md
./Journals/PF2e Journals/GM Screen/Proficiency Without Level.md
./Journals/PF2e Journals/GM Screen/Learn a Spell.md

so to be clear, I've got everything exported well now. A minor workaround for two compendium items and everything renders well.

Ok, thanks for the summary.   At some point hopefully I'll figure out a way to get those exporting directly from the Compendium without the workaround.  I'm going to close this issue for now.


[bug] Device is re-added to HA after changing name/location

Version
Build/Run method

Docker
~PKG~
~Manually built (git clone - npm install - npm run build )~

Zwave2Mqtt version: 2.0.6
Openzwave Version: ? (don't know which is used in Docker image)
Describe the bug
When using Home Assistant discovery both the identifier of the device as the unique_id of the entity are based on the location and name of the device. This means that if you rename (or "move"/change location) a device that the device will be rediscovered in Home Assistant as the identifier/unique_id changed. So persistent ids must be used, this most likely could be the node id which will be unique in the network.  Preferably prefixed with something else (either some unique identifier of the Z-Wave network, or something like the MQTT prefix). This so the id will also be unique when you're running multiple instances of Zwave2Mqtt / having multiple ZWave networks. So the identifier of the device will then be some prefix with the node id, and the unique_id of the entity will then be the same (prefix + node id) but having the ValueID (I believe it's called) appended to it, which already is the case.
To Reproduce
Steps to reproduce the behavior:
I'm not sure if these are the proper steps, but I believe they are

Make sure you have Home Assistant discovery enabled
Check that the device is also shown in Home Assistant (so auto discovery works)
In Zwave2Mqtt change either the location, or name, of one of the devices/nodes
Restart Zwave2Mqtt / change settings and apply them (this will re-send the Home Assistant discovery messages)

Expected behavior
When checking Home Assistant again there still is only one device shown. But instead two devices are shown, one for the node were all entity ids etc have the old name/location, and one where the entity ids etc have the new name/location.
Additional context
Changing this behavior would be a backwards incompatible change as after an upgrade all devices a user has will be rediscovered by Home Assistant (because of the new identifier for the device and unique_id of the entity). But this at last makes sure that the same device will never be rediscovered (/show up twice, and one being "dead"). But I believe that's acceptable, and Home Assistant already has done changes like such many more times, where the automatically generated entity ids are changed after an upgrade to have more consistent and reliable ids from then on so they never have to change again. Furthermore the automatically generated entity id can still be changed in Home Assistant so the user doesn't have to use those awkward names anyway (when changing them manually) and other integrations, like zigbee2mqtt also use those kind of "random numbers" as unique id and thus generated entity ids (zigbee2mqtt does use the serial of the device)

@RobertMe Thanks for this issue, I think you are right and this should be fixed. Would you like to submit a PR to fix this? I can point you where the Ids is calculated in the code

Hi @robertsLando fixing the bug isn't a problem for me. But testing it is. As I'm running it on a RPi(2) in Docker I need to build the Docker image on the Pi which I guess will take hours, so that makes developing it kinda troublesome. So if you could fix it that would be greatly appreciated :slightly_smiling_face:

@RobertMe I understand. The valueID of a value is in the format: <commandClass>-<valueInstance>-<valueIndex> so based on what you told me it could become:
unique_id : <mqttName>_<nodeId>-<commandClass>-<valueInstance>-<valueIndex>
I think mqttName is better than mqtt prefix as maybe someone would like to use the same prefix when having multiple instances on zwave2mqtt.
What do you think?

@robertsLando I guess it would be best to use the home id (or derivate like the HEX), if I've seen it correctly? As that's bound to the hardware controller and only changes after a hard reset. Then it will always be consistent and no change on the users end could create the duplicate devices, unless doing the hard reset.
I've seen that zigbee2mqtt uses the MQTT prefix, but I'm not sure if Zigbee has something comparable to the home id so not sure if one is preferable over the other. But IMO using something fixed like the home id (+ node id) which the user can't change would be best. (Unless there is some option to get a unique code from the node itself like an embedded serial number. Than even resetting the controller or removing and re-adding the device won't create a duplicate in Home Assistant).
By the way, just to be sure, it's not only about the unique_id as set on the entity, but also the identifier of the device (so <entity>.device.identifier).

@RobertMe you're absolutely right, never thought about the homeid, in fact it would be the best for this use case. I will implement this in next major release. Thanks

Hi @RobertMe ! I have just submitted a commit for this, could you check it?


add feature to set  list volumes

ability to set set  list of volumes  like :
{
  "platform": "docker",
  "project": "myApp",
  "port": 8080,
  "volume": [
        "/opt/app/data",
        "/opt/app/log",
        "/opt/app/backup"
    ]
}

Hey, Thank you for your comment.
We're going to release this feature in the next few weeks.

https://docs.liara.ir/storage/disks/about


Add two slides about clang-tidy

This adds two slides about clang-tidy. It discusses the compile_commands.json and the .clang-tidy file. It shows how to run clang-tidy and the run-clang-tidy wrapper scripts. It includes an exercise where the students should generate a compile_commands.json file for any exercise and run clang-tidy on it, inspet the output and apply automatic fixes. Then they should revert the changes again.

Also, compile_commands.json isn't strictly necessary. It's OK to pass all -I and -D after a -- like
clang-tidy test.cpp -- -Imy_project/include -DMY_DEFINES

That is totally true, but becomes unwildy very quickly. So I thought I only show the proper way.

It's clear, though, that this becomes much easier and better with cmake. Maybe extend to a third slide and give instructions for both? E.g.:

I tried to keep the content to 2 slides, but if you grant me a 3rd, I will gladly take it! :)

And concerning number of slides, there is no problem to add a third one !

I reorganized the slides and briefly mention that clang-tidy needs all the compiler flags, which can be specified manually. I also included a mkdir build && cd build in the exercise instructions before running cmake, so that the Makefile is not destroyed.


Support flexible traceId formats

Related to #3
Originally, zipkin only supported 64 bits, but newer versions support 128 bit traceIds.
Anecdotally, our server supports only 128 bit UUID v4 style traceIds, and crashed (now fixed) when passed this 64 bit style.
For me, supporting this is not required, but filing this issue as a nice-to-have.

Uuid format isnt B3 compatible, so I guess the root concern here is to
support an alternate propagation format (knowing it wont be compatible with
libraries that use B3)
https://github.com/openzipkin/b3-propagation
In brave (v4) we have a propagation type that allows B3 to be swapped out.
https://github.com/openzipkin/brave/blob/master/brave/src/main/java/brave/propagation/Propagation.java
Maybe you can detail the alternate propagation format you are using? It
would be good for tests.
On 24 Mar 2017 06:02, "danielkwinsor"<EMAIL_ADDRESS>wrote:

Related to #3
https://github.com/openzipkin/zipkin-browser-extension/issues/3
Originally, zipkin only supported 64 bits, but newer versions support 128
bit traceIds.
Anecdotally, our server supports only 128 bit UUID v4 style traceIds, and
crashed (now fixed) when passed this 64 bit style.
For me, supporting this is not required, but filing this issue as a
nice-to-have.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/openzipkin/zipkin-browser-extension/issues/12, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAD612WEjwrXn7Sa9PMqvlTqLTfib30Wks5rouvkgaJpZM4MnbAp
.

Looks like I conflated 2 issues; 128 bitness and UUID.  I know you are aware about the 128 bit support, for good reason.
We used a modified Brave v2.x with UUID support, and https://github.com/cogitate/twitter-zipkin-uuid also exists - no relation.

Just thinking this through and I have a couple thoughts one is tangental.
If we had a custom means for trace id format, we would need to allow
someone to select it or input it somehow. For example B3-64bit, B3-128bit,
B3-uuid (last isnt actually defined but i understand you need it.. not sure
we want to promote this one)
The tangent is that recent versions of zipkin can store 128bit trace ids so
you could consider that. While the json format doesnt use uuid and storage
dont by default you might be able to reduce maintenance that way. The UI
doesnt accept UUID format in the goto screen, but I imagine a smaller fork
could be made to add/remove hyphens.
Food for thought
On 25 Mar 2017 1:07 am, "danielkwinsor"<EMAIL_ADDRESS>wrote:
Looks like I conflated 2 issues; 128 bitness and UUID. I know you are aware
about the 128 bit support, for good reason.
We used a modified Brave v2.x with UUID support, and
https://github.com/cogitate/twitter-zipkin-uuid also exists - no relation.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/openzipkin/zipkin-browser-extension/issues/12#issuecomment-289083427,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAD612FWbcXsxXwG9x7-EaBk98now8FQks5ro_hpgaJpZM4MnbAp
.


Refactor geom plot functions to be class/static methods.

With the stats and geoms separated (PR #266), the rationale for such a change has become more apparent.
Support

The plot functions do not need the access to the geom instance and so far no need for the class.

Some of the current plotting methods carry heavy performance penalties. e.g axes.bar which is used for geom_bar/geom_histogram and geom_rect. axes.bar uses a separate patch (and therefore a separate artist)  for each bar/rectangle. For this particular case we can get upto x10(my timings) performance boost by using collections.PolygonCollection. With potential optimisations to key plotting functions, it make sense to  reuse them instead of duplicating the efforts. As such, a geom_boxplot implementation would use plot funcitons of geom_point, geom_vline and geom_rect (when notch=False). We can be also be specific and use collection functions that do not autoscale, this would give us full control of the scaling for the viewport.

It vibes with ggplot2.

Against

It seems like(from the changelogs) matplotlib makes use of most chances to optimize collections to get them to handle every parameter that does not require a different artist. So there may be incompatibilities between versions at the collection level, a higher level function that is less efficient.

Related stuff

When stats do computations they, the create aesthetics or values that are as general as possible, e.g. stat_bin creates x, y and width, instead of xmin, xmax, ymin and ymax. As a result more geoms e.g. geom_point can use stat_bin. This is the reason for a potential re-parameterisation step. It allows the plotting methods to only do the plotting. This would be key to reusable class/static methods.

To control the scaling of the view port, it would probably be better to do this after issue #283 has been resolved.

nope


Working through Blazor tutorial

Sorry, pressed the wrong button - didn't mean to actually create a pull request from my fork!


Remove duplication in embedded flow name.

Current logic to resolve an embedded flow name adds fully qualified name for each
flow name in the path, leading to a lot of duplication. This change removes the
duplication so the FQN's are shorter, more readable and most importantly take
less space in the DB.
Example:
Before the change, a nested flow id FQN for dag_4:
Flow Id FQN: dag_2,dag_3:dag_2:dag_3,dag_4:dag_2:dag_3:dag_4
After the change:
Flow Id FQN: dag_4:dag_2:dag_3:dag_4
Verified the change by execution nested flows, accessing flow and job logs and
by running internal acceptance tests.

Pull Request Test Coverage Report for Build 5653

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 43.236%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

azkaban-common/src/main/java/azkaban/executor/ExecutableFlowBase.java
0
1
0.0%

Totals

Change from base Build 5651:
0.03%

Covered Lines:
14779

Relevant Lines:
34182

💛  - Coveralls

Why Flow Id FQN: dag_4:flow_foo:dag_2:dag_3:dag_4?
Why not flow_foo:dag_2:dag_3:dag_4 or flow_foo,dag_2:dag_3:dag_4? I just don't know the reason to put dag_4 in front of flow_foo in the fix?


Missing value for input

After I run "npm run dev", I can open up my chat interface at http://localhost:3000
However, it does not answer the question.

I attached what I see here.

Although it appears as a string, the names between { } refer to a key that will be called on execution, so to make it work just change it back to
{context}
Question: {question}


Provide better information for "Some input files use or override a deprecated API"

Use case
Many Flutter apps that depend on plugins often output the following messages when building for Android:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

But it's not obvious at all how to actually "Recompile with -Xlint:deprecation". Recently a person asked this question in #147414, and I was motivated to find a solution.
Proposal
I suggest that flutter tool filters out all out these lines from its output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

But on the first occurence of such text, it prints a useful warning message, and suggest an action to take, e.g.:
Some Java sources use or override a deprecated API.
To see exactly what the offending files are, append the following to
/Users/bartek/projects/example/android/build.gradle:

  subprojects.forEach { project ->
      project.tasks.withType(JavaCompile) {
          options.compilerArgs += ['-Xlint:deprecation']
      }
  }

If these warnings come from a plugin, consult the plugin maintainer.

If the project uses Gradle Kotlin DSL instead of Gradle Groovy DSL, the warning message adapts:
Some Java sources use or override a deprecated API.
To see exactly what the offending files are, append the following to
/Users/bartek/projects/example/android/build.gradle.kts:

  subprojects.forEach { project ->
      project.tasks.withType<JavaCompile> {
          options.compilerArgs.addAll(listOf("-Xlint:deprecation"))
      }
  }

If these warnings come from a plugin, consult the plugin maintainer.

@bartekpacia
Is it possible to make it hint to the plugin that causes this warning

@AbdeMohlbi Not directly, but once you follow the instructions it'll be easy to see what plugin is the offender:
Example logs
$ flutter build apk --debug
Resolving dependencies...
  _fe_analyzer_shared 67.0.0 (68.0.0 available)
  _flutterfire_internals 1.3.29 (1.3.32 available)
  analyzer 6.4.1 (6.5.0 available)
  archive 3.4.10 (3.5.1 available)
  args 2.4.2 (2.5.0 available)
  cached_network_image_web 1.1.1 (1.2.0 available)
  cloud_firestore 4.16.1 (4.17.2 available)
  cloud_firestore_platform_interface 6.1.13 (6.2.2 available)
  cloud_firestore_web 3.11.1 (3.12.2 available)
  connectivity_plus 6.0.2 (6.0.3 available)
  firebase_auth 4.19.1 (4.19.4 available)
  firebase_auth_platform_interface 7.2.2 (7.2.5 available)
  firebase_auth_web 5.11.1 (5.11.4 available)
  firebase_core 2.29.0 (2.30.1 available)
  firebase_core_web 2.15.0 (2.16.0 available)
  firebase_crashlytics 3.5.1 (3.5.4 available)
  firebase_crashlytics_platform_interface 3.6.29 (3.6.32 available)
  firebase_storage 11.7.1 (11.7.4 available)
  firebase_storage_platform_interface 5.1.16 (5.1.19 available)
  firebase_storage_web 3.9.1 (3.9.4 available)
  flutter_cache_manager 3.3.1 (3.3.2 available)
  flutter_markdown 0.6.23 (0.7.1 available)
  frontend_server_client 3.2.0 (4.0.0 available)
  geolocator_android 4.5.4 (4.5.5 available)
  go_router 13.2.4 (14.0.2 available)
  go_router_builder 2.5.1 (2.6.1 available)
  google_maps_flutter 2.6.0 (2.6.1 available)
  google_maps_flutter_android 2.7.0 (2.8.0 available)
  google_maps_flutter_ios 2.5.2 (2.6.0 available)
  google_maps_flutter_web 0.5.6+2 (0.5.7 available)
  google_sign_in_android 6.1.22 (6.1.23 available)
  google_sign_in_ios 5.7.5 (5.7.6 available)
  image_picker 1.0.8 (1.1.1 available)
  image_picker_android 0.8.9+5 (0.8.11 available)
  image_picker_for_web 3.0.3 (3.0.4 available)
  image_picker_ios 0.8.9+2 (0.8.10+1 available)
  intl 0.18.1 (0.19.0 available)
  js 0.6.7 (0.7.1 available)
  json_annotation 4.8.1 (4.9.0 available)
  json_serializable 6.7.1 (6.8.0 available)
  leak_tracker 10.0.0 (10.0.5 available)
  leak_tracker_flutter_testing 2.0.1 (3.0.5 available)
  leak_tracker_testing 2.0.1 (3.0.1 available)
  leancode_lint 12.0.0 (12.1.0 available)
  material_color_utilities 0.8.0 (0.11.1 available)
  meta 1.11.0 (1.14.0 available)
  package_info_plus 7.0.0 (8.0.0 available)
  path_provider_android 2.2.3 (2.2.4 available)
  photo_view 0.14.0 (0.15.0 available)
  pointycastle 3.8.0 (3.9.0 available)
  share_plus 8.0.3 (9.0.0 available)
  share_plus_platform_interface 3.4.0 (4.0.0 available)
  sqflite 2.3.3 (2.3.3+1 available)
  test 1.24.9 (1.25.4 available)
  test_api 0.6.1 (0.7.1 available)
  test_core 0.5.9 (0.6.2 available)
  url_launcher_android 6.3.0 (6.3.1 available)
  url_launcher_web 2.3.0 (2.3.1 available)
  vm_service 13.0.0 (14.2.1 available)
  win32 5.4.0 (5.5.0 available)
Got dependencies!
60 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.

/Users/bartek/.cache/pub/hosted/pub.dev/firebase_auth-4.19.1/android/src/main/java/io/flutter/plugins/firebase/auth/FlutterFirebaseAuthUser.java:343: warning: [deprecation] updateEmail(String) in FirebaseUser has been deprecated
        .updateEmail(newEmail)
        ^
/Users/bartek/.cache/pub/hosted/pub.dev/firebase_auth-4.19.1/android/src/main/java/io/flutter/plugins/firebase/auth/FlutterFirebaseAuthPlugin.java:473: warning: [deprecation] fetchSignInMethodsForEmail(String) in FirebaseAuth has been deprecated
        .fetchSignInMethodsForEmail(email)
        ^
2 warnings
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:67: warning: [deprecation] PRIORITY_HIGH_ACCURACY in LocationRequest has been deprecated
    private Integer locationAccuracy = LocationRequest.PRIORITY_HIGH_ACCURACY;
                                                      ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:85: warning: [deprecation] PRIORITY_NO_POWER in LocationRequest has been deprecated
            put(0, LocationRequest.PRIORITY_NO_POWER);
                                  ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:86: warning: [deprecation] PRIORITY_LOW_POWER in LocationRequest has been deprecated
            put(1, LocationRequest.PRIORITY_LOW_POWER);
                                  ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:87: warning: [deprecation] PRIORITY_BALANCED_POWER_ACCURACY in LocationRequest has been deprecated
            put(2, LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
                                  ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:88: warning: [deprecation] PRIORITY_HIGH_ACCURACY in LocationRequest has been deprecated
            put(3, LocationRequest.PRIORITY_HIGH_ACCURACY);
                                  ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:89: warning: [deprecation] PRIORITY_HIGH_ACCURACY in LocationRequest has been deprecated
            put(4, LocationRequest.PRIORITY_HIGH_ACCURACY);
                                  ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:90: warning: [deprecation] PRIORITY_LOW_POWER in LocationRequest has been deprecated
            put(5, LocationRequest.PRIORITY_LOW_POWER);
                                  ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:249: warning: [deprecation] isFromMockProvider() in Location has been deprecated
                    if (location.isFromMockProvider()) {
                                ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:306: warning: [deprecation] create() in LocationRequest has been deprecated
        mLocationRequest = LocationRequest.create();
                                          ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:308: warning: [deprecation] setInterval(long) in LocationRequest has been deprecated
        mLocationRequest.setInterval(this.updateIntervalMilliseconds);
                        ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:309: warning: [deprecation] setFastestInterval(long) in LocationRequest has been deprecated
        mLocationRequest.setFastestInterval(this.fastestUpdateIntervalMilliseconds);
                        ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:310: warning: [deprecation] setPriority(int) in LocationRequest has been deprecated
        mLocationRequest.setPriority(this.locationAccuracy);
                        ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/FlutterLocation.java:311: warning: [deprecation] setSmallestDisplacement(float) in LocationRequest has been deprecated
        mLocationRequest.setSmallestDisplacement(this.distanceFilter);
                        ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/MethodCallHandlerImpl.java:102: warning: [deprecation] Long(long) in Long has been deprecated
            final Long updateIntervalMilliseconds = new Long((int) call.argument("interval"));
                                                    ^
/Users/bartek/.cache/pub/hosted/pub.dev/location-6.0.1/android/src/main/java/com/lyokone/location/MethodCallHandlerImpl.java:104: warning: [deprecation] Float(double) in Float has been deprecated
            final Float distanceFilter = new Float((double) call.argument("distanceFilter"));
                                         ^
15 warnings
Running Gradle task 'assembleDebug'...                             38.2s
✓  Built build/app/outputs/flutter-apk/app-debug.apk

Hmmmm tbh i never had  the part were it says which plugin have a problem in wach class

I guess ur using master branch maybee that's why

The logs in my comment above assume that you've appended this code to android/build.gradle:
subprojects.forEach { project ->
      project.tasks.withType(JavaCompile) {
          options.compilerArgs += ['-Xlint:deprecation']
      }
  }

Ah  i see ty


Fix simulator serialization

Fixes #1039
Developers certificate of origin

[X] I certify that this contribution is covered by the MIT license as defined in our LICENSE and adheres to the Developer Certificate of Origin.

@JenkeScheen can you review here.


Record types being produced in pre-3.0 code when the experiment is enabled

Create a file containing the following in a package in which both the records and patterns experiments are enabled:
// @dart=2.12
const a = 1;
const b = 2;
void f(int i) {
  switch (i) {
    case const (a + b):
      break;
  }
}

The code should be valid, but the parenthesized expression is interpreted as a record and a diagnostic is produced because the type of the case expression doesn't match the type of the switch expression.

Even in 3.0 code, (a + b) is not a record expression, it needs to be (a + b,), so something is wrong.
Most likely reason is that const (a + b) was not valid expression syntax pre 3.0 to begin with, so it falls into a path that has nowhere else to go than parsing as a record.

That's quite possible. But I do think it will be confusing to users to see a message saying that the type (int) isn't assignable to the type int if they haven't updated to 3.0 because they might not even recognize that (int) is a record type. I think we want to produce the same parse errors we would have before record support was implemented.

The code should be valid.

Is the code valid for only Dart 3, or is it valid for version 2.12 as well? I couldn't reproduce a case that passes with version 2.12.
The reason I ask is because whether CFE should also report that compile-time error for the example in OP, or not.

The code is invalid in all versions. The problem is that we're producing a RecordLiteral in a context where records shouldn't be able to exist.

The code should be valid for Dart 3.0, the const (a + b) is a constant pattern containing a constant expression.
(See spec, grammar production: constPattern ::= .... 'const' '(' expression ')';.)

@bwilkerson is this still an open valid bug? It's P1, and Dart 3 is shipping soon :)

https://dart-review.googlesource.com/c/sdk/+/305142


Add backup cronjob and other fixes

Script to stop containers, copy postgres db to backup folder and start containers back up
Restart nginx immediately instead of a delayed reload
Ensure we have rsync installed

Signed-off-by: Lance Albertson<EMAIL_ADDRESS>

!bum patch ~

!bump patch ~

Jenkins has merged this PR into main and has automatically performed a patch-level version bump to v1.0.1.  Have a nice day!


Update typescript, eslint and other dependencies, fix lint errors

We were almost two years behind on dev dependencies, like Typescript.
When I upgraded typescript, as usual, I had to do a cascade of small fixes. 😊
Among other things, This PR:

upgrades typescript to 4.3
upgrades JSDOM to 19
makes some small code modifications to fix type
runs prettier as a lint rule, which means that unprettiered code will be caught by CI/CD
formats all "unformatted code"
removes electron which wasn't being used

Blocker -- buildkite version of node is too old -- we should upgrade to node 14.

Hopefully this fixes it: https://github.com/segmentio/analytics-next/pull/442 feel free to merge it into your branch anytime


fix: add MIX_PROJECT as default for entities commands

Adding MIX_PROJECT as default for entities commands.

:tada: This PR is included in version 1.4.0-beta.12 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


LD_LIBRARY_PATH is unnecessary; LIBCLANG_PATH is enough

r? @emilio

:pushpin: Commit 34aecb9 has been approved by emilio

@bors-servo r+

:hourglass: Testing commit 34aecb95e81a7a1d4a1d3a02d9a5d7b9d4d3b362 with merge dcd8385a41f6fd6d8f5208931c418cbc745672b4...

:sunny: Test successful - status-travis
Approved by: emilio
Pushing dcd8385a41f6fd6d8f5208931c418cbc745672b4 to master...


test: test new policy page creation

Tests the creation of a page template that was having issues

Closing as not planned (test)


[DO NOT MERGE] Backport ETag improvements and bug fixes from master to ozone-1.4

What changes were proposed in this pull request?
Backport the following ETag patches to ozone.1.4 for 1.4.1 release:
HDDS-9680. Use md5 hash of multipart object part's content as ETag (https://github.com/apache/ozone/pull/5668)
HDDS-10395. Fix eTag compatibility issues during MPU (https://github.com/apache/ozone/pull/6235)
HDDS-10403. CopyObject should set ETag based on the key content (https://github.com/apache/ozone/pull/6251)
HDDS-10521. ETag field should not be returned during GetObject if the key does not contain ETag field (https://github.com/apache/ozone/pull/6377)
HDDS-10587. Reset the thread-local MessageDigest instance during exception (https://github.com/apache/ozone/pull/6435)
How was this patch tested?
https://github.com/ivandika3/ozone/actions/runs/8739462351

@vtutrinov Could you help to check whether the ETag patches are correctly cherry-picked (especially HDDS-9680).

cc: @xichen01

@adoroszlai I was hoping to add the ETag fix in https://github.com/apache/ozone/pull/6519, but that might mean to ignore the s3a-test.sh during backport since it does not exist in ozone-1.4 branch yet. Do you think we should include this in this backport or a separate S3A compatibility backport?

Thanks @ivandika3 for working on this.

Do you think we should include this in this backport or a separate S3A compatibility backport?

It can be included in a later PR.  BTW, I just noticed a minor bug (HDDS-10719) introduced by HDDS-10615.


⚠ Bofrost.nl has degraded performance

In b08926b, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 973 ms

Resolved: Bofrost.nl performance has improved in 741b18e.


#112: Exclude results with removed_from_source set to True

Addressing #112, this PR adds in:

an explicit removed_from_source field during the Image elastic_search_model setup/
A check to see if the removed_from_source field is False and then only append to documents.

Things to add:

Test to check for the same.

@aldenstpage: Would love to hear your thoughts on this.

Some doubts regarding the setup.
When I run docker-compose up, the build goes smoothly through the initial stages of creating the different services supplied in the docker-compose.yml file. It then starts up the services, and goes up to this point where the message reads as (after the other services are started up):
ingestion-server_1 INFO success: ingestion-server entered RUNNING state, process has stayed up for than 1 seconds (startsecs)
But it continues to stay that way, and doesn't progress further. Is that expected behavior?
When I open up a different terminal and try ./load_data.sh, it throws up an error as follows:
Error: No such container: cccatalog-api_web_1
pg_dump: no matching tables were found
ERROR:  relation "content_provider" does not exist
LINE 1: INSERT INTO content_provider (created_on, provider_identifie...
                    ^
ERROR:  relation "image" does not exist
{"message": "Failed to schedule task due to an internal server error. Check scheduler logs."}

I also tried not opening another terminal, navigating to the ingestion_server directory, setting up the virtual environment, and running python3 test/integration_tests.py, but the tests failed with and index not in range error.
There seems to be something wrong with the setup process and I'm not sure how to start fixing it.

ingestion-server_1 INFO success: ingestion-server entered RUNNING state, process has stayed up for than 1 seconds (startsecs)
But it continues to stay that way, and doesn't progress further. Is that expected behavior?

Yes, the ingestion server process will idle until you run load_sample_data.sh.
Without seeing all of your docker logs, I can't say for sure why it's not running on your machine. However, this message Error: No such container: cccatalog-api_web_1 suggests that the API server is not running. You must leave docker-compose running in the background and run load_sample_data.sh in another terminal. It's also possible the container has a different name on your machine for some reason; what's the output of docker ps after docker-compose is up and running?

Yes the container had a different name (cccatalogapi_web_1 instead of cccatalog-api_web_1)  and once I changed that ./load_data.sh runs appropriately. When I  run the tests in another terminal, the tests still fail and the attached error figure is added below. The tests use the mock_data/mock_images.csv, should I make an update there as well?

I see, I've adjusted docker-compose.yml to set the container name to cccatalog-api_web_1. It appears that the automatically generated name varies between docker-compose versions, causing the load script to fail in your case.
As for the tests, the no such index points to a local setup issue, which I can't diagnose without your complete test logs. The tests work; they run on Travis CI on every commit. I was not able to reproduce your issue when I followed the directions in the relevant section in the readme.

I found and fixed the error, and all the tests now pass. Should raise the PR in a while

Ping @aldenstpage.

Looks good!


MM-40841, MM-40916: Templates Selector, FTUE flow

Summary

Updated Template Selector, now more friendly looking and below playbooks list
FTUE content and minor UX flow improvements
Template changes:

~Service Reliability Incident~ -> Incident Resolution

(Before)

(After)

(Responsive; selector when there're runs but no playbooks)

(Start; when no runs and no playbooks, redirects to /playbooks/start and nav bar disappears)

Tech. notes

For clarity and easier reading, template_selector.tsx has been split/refined into:
-> template_data.tsx
-> template_selector.tsx
-> template_item.tsx
Default/root route now properly redirects to /playbooks/runs
this avoids the issue where the Runs nav item was not active (it's now blue on default route)
FTUE routing takes place in runs_page

If there are no runs, and no playbooks—FTUE will kick in and redirect to /playbooks/start, this is just playbook_list with a special route to engage FTUE and hide nav bar)
If there are runs, it will stay on the runs page to prevent losing access to runs of archived playbooks or where odd situations/migrations may have happened

Ticket Link

https://mattermost.atlassian.net/browse/MM-40841
https://mattermost.atlassian.net/browse/MM-40916

Checklist

Item
Y / N / NA [^1]

Telemetry updated?

Gated by experimental feature flag?
N

Unit/E2E tests updated?

[^1]: Yes / No / Not Applicable.

re: 1. Will add hover state ✓.
re: 2. I can, but it in dark themes it feels a bit too low-contrast (ratio: 3.12)

@abhijit-singh cc @iomodo to keep things moving I'm going to go ahead and merge now after the latest revisions—thanks for the callouts! Any follow up changes/iterations can be done as-needed.


Multiple dataformat support for output

Describe the solution you'd like

[ ] output API in csv for analysis in Excel

Describe alternatives you've considered

[ ] create a Data convert in other module

Additional context
Add any other context or screenshots about the feature request here.

move to #5


Missing Ds_Card_Number in response MERCHANT_PARAMETERS_MAP

Hi,
I'm using it in my project and notice that response returns error trying to retrieve Ds_Card_Number, so I wasn't able to check payment status.
I've solved it just modifying response.py
1: Adding the var:
CARD_NUMBER = "Ds_Card_Number"
2: including it into MERCHANT_PARAMETERS_MAP:
MERCHANT_PARAMETERS_MAP = {
"response": RESPONSE,
"date": DATE,
"hour": HOUR,
...
"card_number": CARD_NUMBER
}
Regards.

That you for the report. If you want, you can fix it making a PR ;)


Update screen sharing views

Update user detail UI and resize shared screens to fit the entire screen.
Also responding to Enter pressed in the forms (join, create, and course rename).

Fixes #27

From testing (in firefox latest):

Enter for teacher submit name: not working
Enter for student submit name: not working
Enter on class rename: Working as expected
Teacher view of student screen: Working as expected. Although I think the background should be white and we should shift the content up higher, so we have space for controls along the bottom, e.g. sharing web cam, sharing screen with student 1:1, etc.
Student view of teacher presentation: not working as expected, still small size


Use stahnma/puppetlabs_yum and ploperations/puppetlabs_apt to handle Puppet repositories

Ideally this module should use stahnma/puppetlabs_yum and ploperations/puppetlabs_apt

https://github.com/puppetlabs-operations/puppet-puppetlabs_apt/pull/14

https://github.com/puppetlabs-operations/puppet-puppetlabs_apt/pull/14

as commented in https://github.com/voxpupuli/puppet-puppetserver/pull/20#issuecomment-277067206 the module should maybe better not provide the repo class as the person installing puppetserver with puppet very likely already has the puppetlabs repo configured or manages packages with internal repositories.
The README.md should point to the modules providing smooth repo integration for other users to be included in profiles.

$repo_class

@juniorsysadmin repo_class ? do you mean passing repo_class to puppetserver::repository?
# example class
class puppetserver::repository( $repo_class = $puppetserver::params::repo_class )  {
  include $repo_class
}

# profile
class { puppetserver::repository: repo_class => `::puppetlabs_yum` }
class { puppetserver: }

## versus

# profile
include ::puppetlabs_yum
include ::puppetserver

Class['puppetlabs_yum'] -> Class['puppetserver']

IMHO:

puppet-puppetserver shouldn't provide the repoository config because it changes and others provide modules to provide exactly this service
puppet-puppetserver shouldn't depend on the modules because when installing puppet-agent most people already have the repo configured and to install puppetserver with puppet one requires to install puppet before.
puppet-puppetserver shouldn't care about puppet3 anymore because we ware puppet 4 only we don't support puppet3 anymore. (https://voxpupuli.org/blog/2016/12/22/putting-down-puppet-3/)
puppet-puppetserver shouldn't depend on the modules because if installing puppetserver with puppet and I have only internal repositories I don't wan't  to include puppet modules in my env which I will never use.
puppet-puppetserver should provide documentation howto configure puppet repo with 3rd party modules

@vinzent Actually that's better. Can't remember the reason for filing this issue other than removing the repository class code.


[RESOLVED] High ICMP ping response time

Problem started at 08:12:29 on 2023.05.11
Problem name: High ICMP ping response time
Host: HP_iLO
Severity: Warning
Operational data: Value: 710ms
Original problem ID: 20514
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23268&eventid=20514

Problem has been resolved in 4m 0s at 08:16:29 on 2023.05.11
Problem name: High ICMP ping response time
Host: HP_iLO
Severity: Warning
Original problem ID: 20514


numericality

These validations are important:

greater_than
greater_than_or_equal_to
less_than
less_than_or_equal_to

Could be implemented using the combinations of is.under or is.above with is.equal (in case of equality)

How would you use if you want to validate a password that is greater than 6 and less than 255 characters?
const is = require('is_js');
const password = 'abcde';


Fixes incorrect form of the 'their' vs 'there'

Thanks for the pull request :), but its already fixed!


some changes

Please describe your changes.
Thank you.

Please describe your changes. Thank you.

i have added the array printing array program as it was an empty file
created a new file of infix to postfix conversion named infix_postfix.c using stack data structure