bulk doesn't give the caller a way to constrain how function can be executed

There is currently no way for a caller that invokes the bulk() algorithm to indicate to that algorithm that a given strategy for invoking f is either allowed or not allowed to invoke f concurrently.
Ideally, the caller of bulk() would be able to pass an execution policy (e.g. seq, par, unseq, par_unseq) to indicate in which ways it is safe to execute f.
e.g. stdex::bulk(pred, stdex::par, n, f) to indicate that f is safe to call concurrently on multiple threads from an execution context that provides parallel forward progress, but not safe to call concurrently from execution agents with weak forward progress guarantees.
e.g. stdex::bulk(pred, stdex::seq, n, f) to indicate that f is only safe to call sequentially, even if you're on an execution context that can potentially execute across multiple threads.

I don't have a strong opinion on this (partially because I'm not that deep into the execution policy subject), but it feels to me that this is not something that we need to support.
I don't think that stdex::bulk(pred, stdex::seq, n, f) makes too much sense. The user is better of using then() with a for loop. Then, maybe we are better off without customizing for execution policy.
This would also require everyone who customizes bulk (which, in my mind, bulk is made to be customized) to write multiple customizations. Do we think that customizing for unseq and par_unseq is worth the trouble?
If we don't allow this specification now, I think we can always add it later. So, maybe it makes sense to consider this when we have good experience with cases in which we need this (we may have those already, and I just don't know; sorry about that).

Do we think that customizing for unseq and par_unseq is worth the trouble?

par and unseq would certainly be worth the trouble in many cases. What I don't like about bulk as specified is that we are still in a position of having execution policies mean two things. We seem to have drifted over time to have them be prescriptive about how something should execute. The earlier discussions were much more about permission to run the callable in a certain way. I would like to stick to the permissive definition, and have the prescription on the scheduler tie in to that.

The earlier discussions were much more about permission to run the callable in a certain way. I would like to stick to the permissive definition, and have the prescription on the scheduler tie in to that.

Yes, I think at least @LeeHowes, @rarutyun and myself are in agreement that the execution policy should be passed by callers to grant permission to execute the function in certain ways, but not be prescriptive about how it must be run. And the plan is to put that into a paper suggesting improvements to bulk (and also to apply the same pattern to other parallel algorithms).

Issue will be addressed in: "P3481: Summarizing std::execution::bulk() issues" (Lewis Baker, Lucian Radu Teodorescu, Ruslan Arutyunyan)


Support for Object Type UENO - Entity Type

Support for the serialisation and de-serialisation of the Data Modeller (Tx SD11) object types UMDO - Data Model, UENO - Entity Type presently missing. Whilst perhaps not the most commonly used objects, relatively simply objects to implement.

Happy also to implement - have started already.

@d023604 are you actively working on this? if not I will remove your assignment 😄

Hi Lars,
Thanks for the nudge. In short - maintain the assignment - and I will
complete it in the next week.
Regards
Andrew
On Thu, 8 Aug 2019 at 15:20, Lars Hvam<EMAIL_ADDRESS>wrote:

@d023604 https://github.com/d023604 are you actively working on this?
if not I will remove your assignment 😄
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/larshp/abapGit/issues/1906?email_source=notifications&email_token=ADBYJMYH6E53FHGTSD4THM3QDOULPA5CNFSM4FUA4UDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD32O5AQ#issuecomment-519368322,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADBYJM3X2NDKMCANJBR75Y3QDOULPANCNFSM4FUA4UDA
.

Testing completed. Pull request shortly

merged in https://github.com/larshp/abapGit/pull/2911, closing


BUG: Mac install problem

Describe the bug
On mac os, using a clean anaconda environment and a clean install (both stable and master) coreg doesn't respond to editing fiducials. It looks good though :)
I assume this is a version issue of either VTK or Mayavi but I"m not sure how to roll back to test. I tried using the environment from https://raw.githubusercontent.com/mne-tools/mne-python/maint/0.19/environment.yml but that didn't help.
Steps to reproduce
curl --remote-name https://raw.githubusercontent.com/mne-tools/mne-python/master/environment.yml
conda env create -n mne-test environment.yml
conda activate mne-test
pip install "PyQt5>=5.10"
mne coreg -d ~/mne_data/MNE-sample-data/subjects -s sample -f ~/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif

click on edit and try to move the lpa, rpa or nasion.
Expected results
Fid points should be editable
Actual results
mouse clicks are caught and rotate the scene etc but points don't move
Additional information
(mne-test) a483e75df2f6:~ bloyl$ python -c "import mne; mne.sys_info()"
Platform:      Darwin-18.7.0-x86_64-i386-64bit
Python:        3.7.6 (default, Jan  8 2020, 13:42:34)  [Clang 4.0.1 (tags/RELEASE_401/final)]
Executable:    /opt/anaconda3/envs/mne-test/bin/python
CPU:           i386: 8 cores
Memory:        16.0 GB

mne:           0.19.2
numpy:         1.18.1 {blas=openblas, lapack=openblas}
scipy:         1.4.1
matplotlib:    3.1.3 {backend=MacOSX}

sklearn:       0.22.1
numba:         0.48.0
nibabel:       3.0.2
cupy:          Not found
pandas:        1.0.1
dipy:          1.1.1
mayavi:        4.7.1 {qt_api=pyqt5, PyQt5=5.14.1}
pyvista:       0.23.1
vtk:           8.2.0

Of note I just reinstalled anaconda
(mne-test) a483e75df2f6:~ bloyl$ conda --version
conda 4.8.2

I'm using MacOS Mojave version 10.14.6 (18G3020) if that ends up being important.

@bloyl I can replicate your issue with a fresh install too. WIth my old env
using vtk 8.1.1 and python 3.6 it works. Unfortunately vtk 8.1.1 does not
work with python 3.7 so it's hard to test. I just tried to install vtk
8.1.2 on my old env and it works there...

I haven't been able to make any progress on this.
While I was able to use info about @agramfort 's old env to create a new environment it still wasn't working. So I've been unable to find a environment to iterate forward and see what might be the root cause of the problem.
I don't mind trying to sort this out (ideally for the 0.20 release) but I don't really have a plan of attack. Does any one have any ideas/suggestions?

@larsoner can you replicate the pb?

I should be able to try tomorrow

Using:
mne coreg -s sample -d ~/mne_data/MNE-sample-data/subjects -f ~/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif --trans ~/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw-trans.fif

On my preexisting environment everything is fine:
Platform:      Darwin-19.3.0-x86_64-i386-64bit
Python:        3.7.3 (default, Mar 27 2019, 16:54:48)  [Clang 4.0.1 (tags/RELEASE_401/final)]
Executable:    /Users/larsoner/anaconda3/bin/python
CPU:           i386: 4 cores
Memory:        8.0 GB

mne:           0.20.dev0
numpy:         1.18.1 {blas=mkl_rt, lapack=mkl_rt}
scipy:         1.4.1
matplotlib:    3.1.3 {backend=Qt5Agg}

sklearn:       0.22.1
numba:         0.45.0
nibabel:       2.5.0
cupy:          Not found
pandas:        0.25.3
dipy:          1.0.0
mayavi:        4.7.2.dev0 {qt_api=pyqt5, PyQt5=5.13.0}
pyvista:       0.23.2
vtk:           8.2.0

If I conda remove vtk and pip install vtk, which gives VTK 8.1, it still works:
...
mayavi:        4.7.1 {qt_api=pyqt5, PyQt5=5.13.0}
vtk:           8.1.2

If I pip install --upgrade pyqt5, it breaks:
mayavi:        4.7.1 {qt_api=pyqt5, PyQt5=5.14.1}

Same on pip install "pyqt5<5.14.1", but going back to pip install "pyqt5<5.14" it works.
@bloyl can you confirm that pip install pyqt5<5.14 fixes your problem? If so we can update the install docs and also hopefully fix the upstream Mayavi picking issue.

BTW @bloyl is it possible you did not follow the updated dev install instructions? It has !=5.14.1 in the additional OSX steps:

pip install "PyQt5>=5.10,!=5.14.1"

In any case I'll open a PR since I think 5.14.0 is broken, too.

pyqt5-5.13.2 installed via pip install pyqt5<5.14 Works! Thanks @larsoner
FYI I had been using 5.14.1 SInce i started out tying to install stable :)


Fix/ Running local integration tests

Fixes #280  .
Changes proposed in this PR:

added missing env vars for each integration test
most common error was generated by missing ADDRESS_FILE  required to create contract interactions on ganache network
added missing constants
minor update to buildEnvOverrideConfig()

what am i missing @bogdanfazakas  ?
they don't run locally on my end (only 3)
  3 passing (11s)
  1 failing

  1) Compute
       Initialize compute without transaction IDs:
     TypeError: Cannot read properties of undefined (reading 'id')
      at Context.<anonymous> (file:///home/paulo/workspace/OCEAN/ocean-node/dist/test/integration/compute.test.js:106:31)
      at callFn (/home/paulo/workspace/OCEAN/ocean-node/node_modules/mocha/lib/runnable.js:366:21)

what am i missing @bogdanfazakas ? they don't run locally on my end (only 3)
 npm run test:integration
  3 passing (11s)
  1 failing

  1) Compute
       Initialize compute without transaction IDs:
     TypeError: Cannot read properties of undefined (reading 'id')
      at Context.<anonymous> (file:///home/paulo/workspace/OCEAN/ocean-node/dist/test/integration/compute.test.js:106:31)
      at callFn (/home/paulo/workspace/OCEAN/ocean-node/node_modules/mocha/lib/runnable.js:366:21)

hmm let me double check compute i've touched that today

yes, i do ./startOcean --with-c2d

Yeah, it also didn't work for me. I'm also running ./startOcean --with-c2d. @bogdanfazakas can you share the env values that you are using, in case that makes a difference?

Not sure what's going on in my local setup but I'm getting this error:
  1 passing (86ms)
  1 failing

  1) Compute
       should publish compute datasets & algos:
     TypeError: Cannot read properties of undefined (reading 'ERC721Factory')
      at publishAsset (file:///home/jamie/Desktop/ocean/ocean-node/dist/test/utils/assets.js:20:57)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async Context.<anonymous> (file:///home/jamie/Desktop/ocean/ocean-node/dist/test/integration/compute.test.js:63:35)

Tried deleting node modules and doing a fresh npm i but that did not solve it

tested on the node3, no env var set all tests passing

tested on the node3, no env var set all tests passing

well, i still have the same exact issue i mentioned above. Keeps failing there.. have unset all variables, use 'localhost', etc
still nothing :-(

Something weird is going on on my side. I'm using the latest version of barge:
{
  component: 'DATABASE',
  moduleName: 'DATABASE',
  level: 'error',
  message: '[DATABASE] => ❌ [DATABASE] => DDO entry with ID did:op:8bc47e948ec44d20e0ff13410ab8386a13f71c39c93d4be09e6d844d2619b3e0 not found in any schema.',
  timestamp: '2024-03-25 15:55:54'
}
{
  component: 'DATABASE',
  moduleName: 'DATABASE',
  level: 'error',
  message: '[DATABASE] => ❌ [DATABASE] => DDO entry with ID did:op:8bc47e948ec44d20e0ff13410ab8386a13f71c39c93d4be09e6d844d2619b3e0 not found in any schema.',
  timestamp: '2024-03-25 15:55:55'
}
    1) should publish compute datasets & algos
{
  component: 'CONFIG',
  moduleName: 'CONFIG',
  level: 'warn',
  message: '[CONFIG] => Detected Ocean Node Configuration change... This might have unintended effects',
  timestamp: '2024-03-25 15:55:55'
}

  1 passing (20s)
  1 failing

  1) Compute
       should publish compute datasets & algos:
     Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/jamie/Desktop/ocean/ocean-node/dist/test/integration/compute.test.js)
      at createTimeoutError (/home/jamie/Desktop/ocean/ocean-node/node_modules/mocha/lib/errors.js:498:15)
      at Runnable._timeoutError (/home/jamie/Desktop/ocean/ocean-node/node_modules/mocha/lib/runnable.js:431:10)
      at Timeout.<anonymous> (/home/jamie/Desktop/ocean/ocean-node/node_modules/mocha/lib/runnable.js:246:24)
      at listOnTimeout (node:internal/timers:569:17)
      at process.processTimers (node:internal/timers:512:7)

Well, it doesn't work for me either...


Remove hostname restriction. Allow ssh without passwords

@gab-satchi think I rebased on master before your additions?  are you able to rebase your branch so I can merge this in, do you think that the netbios compatibility should be a variable?

yep, I'll rebase. and yeah parameterizing that makes sense


Several errors with code snippets

Description
What steps will reproduce the problem?

e.g. when typing pd.cont
it completes the function as:
pd.concat(objs)⌷
Traceback
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 194, in _on_key_pressed
    self._process_text(text)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 204, in _process_text
    self.delete_text(line, column)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 240, in delete_text
    self._delete_token(delete_token, text_parent, line, column)
  File "/home/dbau/miniconda3/envs/spyder-beta/lib/python3.7/site-packages/spyder/plugins/editor/extensions/snippets.py", line 263, in _delete_token
    if left_node.name in MERGE_ALLOWED:
AttributeError: 'PlaceholderNode' object has no attribute 'name'

Versions

Spyder version: 4.0.0b5
Python version: 3.7.3
Qt version: 5.9.7
PyQt5 version: 5.9.2
Operating System: Linux 4.15.0-60-generic

Dependencies
cloudpickle >=0.5.0          :  1.2.1 (OK)
pygments >=2.0               :  2.4.2 (OK)
qtconsole >=4.5.5            :  4.5.5 (OK)
nbconvert >=4.0              :  5.5.0 (OK)
sphinx >=0.6.6               :  2.1.2 (OK)
pylint >=0.25                :  2.3.1 (OK)
psutil >=0.3                 :  5.6.3 (OK)
qtawesome >=0.5.7            :  0.5.7 (OK)
qtpy >=1.5.0                 :  1.8.0 (OK)
pickleshare >=0.4            :  0.7.5 (OK)
zmq >=17                     :  18.0.2 (OK)
chardet >=2.0.0              :  3.0.4 (OK)
numpydoc >=0.6.0             :  0.9.1 (OK)
spyder_kernels >=1.5.0;<2.0.0:  1.5.0 (OK)
qdarkstyle >=2.7             :  2.7 (OK)
atomicwrites >=1.2.0         :  1.3.0 (OK)
diff_match_patch >=20181111  :  20181111 (OK)
watchdog                     :  None (OK)
keyring                      :  None (OK)
pexpect >=4.4.0              :  4.7.0 (OK)
pympler                      :  None (OK)
sympy >=0.7.3                :  None (NOK)
cython >=0.21                :  None (NOK)
IPython >=4.0                :  7.6.1 (OK)
matplotlib >=2.0.0           :  3.1.1 (OK)
pandas >=0.13.1              :  0.24.2 (OK)
numpy >=1.7                  :  1.16.4 (OK)
scipy >=0.17.0               :  1.3.0 (OK)
pyls >=0.28.2;<0.29.0        :  0.28.3 (OK)
xdg >=0.26                   :  0.26 (OK)
rtree >=0.8.3                :  0.8.3 (OK)

Thanks for reporting. I was able to reproduce your error at some point but now I can't.

@andfoy, I'm getting the following error:
  File "/home/carlos/Projects/spyder/github-repo/spyder/plugins/editor/extensions/snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "/home/carlos/Projects/spyder/github-repo/spyder/plugins/editor/extensions/snippets.py", line 202, in _process_text
    self.insert_text(text, line, column)
  File "/home/carlos/Projects/spyder/github-repo/spyder/plugins/editor/extensions/snippets.py", line 327, in insert_text
    if node.name == 'EPSILON':
AttributeError: 'NoneType' object has no attribute 'name'

after entering a comma next to the cc character in this screenshot:

Some other issues:

While snippets sections are available for tab change get to the end tab (outside of the function), select all the arguments (shift+left arrow) and delete everything:

Traceback (most recent call last):
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 194, in _on_key_pressed
    self._process_text(text)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 205, in _process_text
    self._update_ast()
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 745, in _update_ast
    self.ast.compute_position(self.starting_position)
AttributeError: 'NoneType' object has no attribute 'compute_position'

Try to do tab after changing contents of all of the arg placeholders:

Traceback (most recent call last):
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 184, in _on_key_pressed
    self.select_snippet(next_snippet)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 719, in select_snippet
    start_line, start_column = node_position[0][0]
IndexError: list index out of range

Put a comma while args regions are active:

Traceback (most recent call last):
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 49, in wrapper
    return f(self, *args, **kwargs)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 202, in _process_text
    self.insert_text(text, line, column)
  File "C:\Users\Daniel\Documents\Spyder\spyder\spyder\plugins\editor\extensions\snippets.py", line 327, in insert_text
    if node.name == 'EPSILON':
AttributeError: 'NoneType' object has no attribute 'name'

@dalthviz, could edit your comment above to post a screenshot or an animated gif to better understand how to reproduce those problems?

@ccordoba12, I'm unable to reproduce this one


Reduce size of compiled wasm binary

Even when compiled with release profile the wasm binary takes about 1MB in size. This is way too much and should be reduced, hopefully by an order of magnitude

After further consideration, I've come to the realization that there  is a way to strip away the code for SCALE encoding and that is to use C ABI as the serialization format with repr(C). However, there is a security issue in that if wasm module cannot be trusted to always provide a valid byte pattern for a given type, it can cause UB when "deserializing"(transmuting) byte pattern to the expected rust type (e.g. constructing bool from a byte with value other than 0 or 1 is immediate UB). There are also alignment issues. This calls for validation of the byte pattern received from the wasm module before transmuting it. There may be crates offering this functionality


i cant get the altitude to work

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Describe the steps it takes to reproduce the bug
Example:

Join the game
Execute command /tpll...
See Error Log

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Error Logs
If applicable, paste your server logs into https://mclo.gs/ and include the link here.
Version (please complete the following information):

What version of TerraPlusPlus are you using?
What version of the BTE Modpack or Server pack are you running? (If applicable)

Please fill out the provided template


Add advice about how to add new argument in Ouroboros.Consensus.Node

One commit. Only adds comments.

bors r+


Loop in provisioning objects

Hi!
What happened:
I start provisioning (via GUI)(for example) Service and task end successfully, but deprovision process start at same time. I can't find any errors in pod. It looks like: provision-succes-deprovision-success-provision... and doesn't end
What you expected to happen:
Complete provision process.
Information:
Service yaml:
apiVersion: v1
kind: Service
metadata:
  name: {{ app }}
  namespace: {{ namespace }}
  labels:
    app: {{ app }}
    app-group: {{ app_group }}
  name: {{ app }}-{{ service_postfix }}
spec:
  selector:
    deploymentconfig: {{ app }}
  sessionAffinity: None
  type: {{ 'ClusterIP' if service_type|default(ClusterIP) else 'NodePort' }}
  ports:
    - protocol: {{ protocol }}
      port: {{ port }}
      targetPort: {{ route_port }}
      name: {{ port }}-{{ protocol|lower }}

Taks in main.yml
- name: Set simple object state="{{ state }}"
  k8s:
    force: yes
    state: "{{ state }}"
    definition: "{{ lookup ('template', item.name)}}"
  when: item.apply|default(false)
  loop:
    - name: service.yaml.j2
      apply: "{{ deploy_service|default('',true) }}"

Also i saw this Provision call failed: Error occurred during provision. Please contact administrator if the issue persists. but i can't understand where is issue if service created successfully and if i create it from CLI all works fine.

/close


fix: bearer authorization support (#1246)

fixes #1246.

Codecov Report

Merging #1247 (4bf84d1) into master (90b0ddd) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1247   +/-   ##
=========================================
  Coverage     87.62%   87.62%
  Complexity       85       85
=========================================
  Files            69       69
  Lines           978      978
  Branches         71       71
=========================================
  Hits            857      857
  Misses           84       84
  Partials         37       37

Continue to review full report at Codecov.

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

@vadeg thanks for your review and support.
I have checked all your suggestions and integrated as far as possible. In my latest updated, I adjusted the rule naming to https://github.com/zalando/restful-api-guidelines/pull/666. I also tried to make the function of the checks clearer and added more unit test capture their behavior correctly.

👍

:+1:


Quiz exercises: Enable manual quiz evaluation for non-exam exercises

Checklist
General

[x] I tested all changes and their related features with all corresponding user types on a test server.
[x] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[x] I chose a title conforming to the naming conventions for pull requests.

Server

[x] Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
[x] I strictly followed the server coding and design guidelines.
[x] I added multiple integration tests (Spring) related to the features (with a high test coverage).
[x] I added pre-authorization annotations according to the guidelines and checked the course groups for all new REST Calls (security).
[x] I documented the Java code using JavaDoc style.

Client

[x] Important: I implemented the changes with a very good performance, prevented too many (unnecessary) REST calls and made sure the UI is responsive, even with large data.
[x] I strictly followed the client coding and design guidelines.
[x] Following the theming guidelines, I specified colors only in the theming variable files and checked that the changes look consistent in both the light and the dark theme.
[x] I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
[x] I documented the TypeScript code using JSDoc style.
[x] I added multiple screenshots/screencasts of my UI changes.
[x] I translated all newly inserted strings into English and German.

Motivation and Context

There was a bug in production that caused the automatic quiz evaluation to fail. Therefore we need a method to evaluate the quiz manually, which is a feature that could be useful as a backup in general.
Description

This PR fixes the bug and also adds a button to the quiz detail page to evaluate the quiz. This is different from the re-evaluation, as the evaluation keeps old results and only creates new results for submissions that do not have one yet.
Steps for Testing

Prerequisites:

1 Instructor
If you have a quiz exercise with already existing submissions and results you can skip straight to point 5

Log in to Artemis
Create a quiz
Participate in the quiz
Wait for the quiz to end
Go to the instructor detail page of the quiz
Click the "Participations" button
Click on your submissions
Delete your (latest) result
Go back to the detail page
Press the new evaluate quiz button
Now see you submission again and you have a result again.

Exam Mode Testing

Prerequisites:

1 Instructor
1 Students
1 Exam with a Quiz Exercise
If you have an exam with unevaluated quiz exercises you can skip to point 4

Log in to Artemis
Participate in the exam as a student
Wait for the exam to end
Go to the assessment page of the exam
Click the "Evaluate quizzes" button
If you look into the scores the students have results now

Testserver States

[!NOTE]
These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.

Review Progress

Performance Review

[ ] I (as a reviewer) confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance
[ ] I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

[ ] Code Review 1
[ ] Code Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Exam Mode Test

[ ] Test 1
[ ] Test 2

Test Coverage

TODO
Screenshots

Summary by CodeRabbit

New Features

Added a QuizResultService to enhance quiz evaluation and result management.
Introduced a button in the quiz management interface for evaluating quiz exercises.

Improvements

Improved quiz evaluation by passing specific quiz exercise details to ensure accurate scoring.
Enhanced user experience with success messages for quiz evaluations.

Bug Fixes

Enhanced handling of null values in user roles to prevent errors.

Tests

Added integration tests for evaluating quiz results.

@Jan-Thurner @pzdr7 Turns out that button does not work for quiz exercises... The only alternative is to test it locally and manually delete the entries in the database. :/


fix: Transform error of stage-1 class properties

Fix if use class properties, it will throw 'SyntaxError: Missing class properties transform'.

Sorry for the day - looks pretty innocuous so I'll merge that right in and push it for alpha.3.
Thanks again.


ERROR: An error occurred while attempting to establish an SSL or TLS connection in Postal smtp

can't connect postal SMTP via tls Its shows an error.
Connected to smtp://mydomain:25/?starttls=always
<< 220 mydomain ESMTP Postal/SVYGBU

EHLO [<IP_ADDRESS>]
<< 250-My capabilities are
<< 250-STARTTLS
<< 250 AUTH CRAM-MD5 PLAIN LOGIN
STARTTLS
<< 220 Ready to start TLS
ERROR: An error occurred while attempting to establish an SSL or TLS connection.
This usually means that the SSL certificate presented by the server is not trusted by the system for one or more of
the following reasons:

The server is using a self-signed certificate which cannot be verified.
The local system is missing a Root or Intermediate certificate needed to verify the server's certificate.
A Certificate Authority CRL server for one or more of the certificates in the chain is temporarily unavailable.
The certificate presented by the server is expired or invalid.
It is also possible that the set of SSL/TLS protocols supported by the client and server do not match.
See https://github.com/jstedfast/MailKit/blob/master/FAQ.md#SslHandshakeException for possible solutions.

See SMTP server configuration in postal.yml
smtp_server:
tls_enabled: true
tls_certificate_path: /etc/letsencrypt/live/domain/fullchain.pem
tls_private_key_path: /etc/letsencrypt/live/domain/privkey.pem
@willpower232

If you have recently changed the config file, you will need to restart Postal to apply the changes.
Have you changed the ciphers or anything under those lines of config?
Can the postal user definitely access those certificate files you have mentioned?

yes, I recently change and also restart postal. but still the same error.
i was installed ssl through letsencrypt ssl and change the path.
yes postal user access those certificates.

tls working fine but when i test smtp then show me this error
Error: OpenSSL::SSL::SSLError (hostname "myhost.com" does not match the server certificate)

run the command
openssl s_client -connect myhost.com:25 -starttls smtp
and paste the output

CONNECTED(00000005)
depth=0 C = GB, O = Default, OU = Default, CN = default
verify error:num=18:self signed certificate
verify return:1
depth=0 C = GB, O = Default, OU = Default, CN = default
verify return:1
Certificate chain
0 s:C = GB, O = Default, OU = Default, CN = default
i:C = GB, O = Default, OU = Default, CN = default
Server certificate
-----BEGIN CERTIFICATE-----
MIIC/zCCAeegAwIBAgIBADANBgkqhkiG9w0BAQsFADBDMQswCQYDVQQGEwJHQjEQ
MA4GA1UECgwHRGVmYXVsdDEQMA4GA1UECwwHRGVmYXVsdDEQMA4GA1UEAwwHZGVm
YXVsdDAeFw0yMTA3MjEwNDA3MzJaFw0zMTA3MTkwNDA3MzJaMEMxCzAJBgNVBAYT
AkdCMRAwDgYDVQQKDAdEZWZhdWx0MRAwDgYDVQQLDAdEZWZhdWx0MRAwDgYDVQQD
DAdkZWZhdWx0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+xXUO1o
A31g0RVmxXWh3G/Q/Ur9Vg6J8xarrOR9iMr5NwlGqfgoUqJVCnCPVCjZykJbRRHQ
KJFv0vvjqHt7qPNWEY6t9wK60YoY+3MV4Fib17ku3xbs1K5obSwCq+INYkQs8YdA
Sndjn5DmFctq/66i8l8QSmh3SBG2QSTFv8+XTV+p40MdPy7OzbCwoizuJIsbx5+2
i+BwdmAplZLOkojHv/HeVihI43onPpKHuUBhNuJWMYs8imQnYd6g9qPXWUWUoujo
5ogmuhiLfKSysaNbHS7LZgpZocOK7DHAV4Ng2n4swiXAt1CCBAwmYhS4lQyME8e9
Ia40+EjM9pjk5wIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBT9AhURKhsNRUyRJcQ
OaU6v+YfCEOSJx8kBK9ojKAfUe4jL+tSTxPxidObnYfg8m7dbajM9PzJniJAvtOb
GQAXH3a9VoRGSAtCl/Bsz28KHIvwRsBPJXQcD765LPHBPl0z9uOpEzrGYOm9IzLz
OQTwGNdWHwiSP/D+0MQG89vvJTtWyS0cRIZt1AxPXQBNWSKasSUxo1iYOqibRybm
ptlHVMW/yMH0KA+vcIjytYfkLze07mzSSXPeKDniheLenqwKXD4LjvzstouQeekm
14SWCpn24FJoJa095AWeRLk0ypAfjInok2mHUGJP8SJQEUau22+56Uv9qn2dX1Xs
NWr1
-----END CERTIFICATE-----
subject=C = GB, O = Default, OU = Default, CN = default
issuer=C = GB, O = Default, OU = Default, CN = default

No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA
Server Temp Key: DH, 1024 bits
SSL handshake has read 1791 bytes and written 553 bytes
Verification error: self signed certificate
New, TLSv1.2, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol  : TLSv1.2
Cipher    : DHE-RSA-AES256-GCM-SHA384
Session-ID: 4395A31B347D85C4661FBF0AA6F786FBD9380104E66E8B061E7FD4276D9D5880
Session-ID-ctx:
Master-Key: 375C37BDCD2ADC25442DF56078FEA4A9FEA0963EF59DA627D59C1EA17C330015                                                                                34AF34368F645C4B17D5B5391D8FFB57
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - 45 35 cc 7d 82 47 ef 3b-91 58 84 43 5c 5b 7e 87   E5.}.G.;.X.C[~.
0010 - 5f f5 15 b6 18 3d 53 5b-a0 62 69 a6 1f 6c f5 eb   _....=S[.bi..l..
0020 - 74 99 c7 1a 08 71 d6 2a-0c a4 e9 82 ef 0c 64 27   t....q.*......d'
0030 - 0b f4 ee 06 b0 2f a4 23-f0 e8 b4 58 6e 63 d4 be   ...../.#...Xnc..
0040 - be cb 72 bf f9 dd 27 72-b1 7a 86 69 73 61 e7 2d   ..r...'r.z.isa.-
0050 - 92 77 97 49 92 85 f0 97-3c 65 d0 28 c1 dd b6 6e   .w.I....<e.(...n
0060 - 63 4b d3 97 76 ca f5 7e-72 3e 55 a2 65 86 d6 d7   cK..v..~r>U.e...
0070 - 72 04 d4 d2 7f 4d dc 89-70 e9 f2 60 a4 2f 49 75   r....M..p.../Iu     0080 - 98 ee d3 52 aa 79 4b c0-7d 99 47 ec 34 8e a2 19   ...R.yK.}.G.4...     0090 - ac fb 53 4e 3b b9 6d c9-09 f4 ed 13 1f e9 fd 36   ..SN;.m........6     00a0 - 46 9f 94 fd 98 76 1b b3-d5 9a b4 2b 5c d5 5b 68   F....v.....+\.[h     00b0 - d2 60 d4 cf 32 80 4c c2-83 b3 dc 36 96 d5 56 f7   ...2.L....6..V.
Start Time:<PHONE_NUMBER>
Timeout   : 7200 (sec)
Verify return code: 18 (self signed certificate)
Extended master secret: no

250 AUTH CRAM-MD5 PLAIN LOGIN

try to send on 587 for tls

140663099892160:error:0200206F:system library:connect:Connection refused:../crypto/bio/b_sock2.c:110:
140663099892160:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=111

try this
smtp_server:
port : 587
tls_enabled: true
tls_certificate_path: /etc/letsencrypt/live/domain/fullchain.pem
tls_private_key_path: /etc/letsencrypt/live/domain/privkey.pem

postal not working if i put port 587

check the logs and paste screenshot here of error

please do send the screenshot of postal.yml
Note: Please do hide private information in Screenshot or code

Can the postal user definitely access those certificate files you have mentioned?


Issue with DWM1000 connecting multiple anchors with one tag

DW1000Ranging_ANCHOR_final.zip
DW1000Ranging_TAGfinal.zip
Hello, my goal is to track a tag using trilateration with 3 anchors. So far I have been unsuccessful getting multiple DWM1000 Modules to communicate. I am using the latest release of this library and the <IP_ADDRESS> release of the Arduino IDE. I assembled my units as per Mr. Wayne Holder's guide located here. I built my units and I have them transmitting in a pair without issue after adjusting the library to fit Mr. Holder's design. Now I am trying to get everything to communicate as described by @reycreator17 in this thread. but even using his library and code I am unable to get multiple to communicate. Here is what I see when I try to run multiple:

When I run the basic connection test everything appears to be fine and the regular ranging test works.

Does anybody have any ideas about what I should change in the library or code to get multiple anchors and one tag to work? I've tried many different troubleshooting methods but I seem to be at an impasse.
Lastly, I've attached the code I am using in case that is the issue there. Thank you for any help or recommendations!

Hi @Archeresque ,
Have you managed to solve using 3 anchors with 1 tag?

please ..anyone tell me the steps to modified the library for using multiple anchors and one tag ?

Hi. I'm using @reycreator17 before. I changed email recently.
I haven't touched my DWM1000 for a long time.
@Archeresque
@Ritesh23
Why don't you try using the example I uploaded and the old Arduino version
@asheeshraikwar
What do you mean by modified library?


Minor UI changes

Fixes a number of minor UI bugs/improves UI, including:

Fixing tree width
Replacing numerical notification chips with badges
Converting logo from button to link
Adding purple errors
Updating requests and messages table visuals
Adding tooltips to request URLs

Codecov Report

Merging #63 (a8a06db) into main (1b853f7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #63   +/-   ##
=======================================
  Coverage   94.38%   94.38%
=======================================
  Files          92       92
  Lines        2138     2138
=======================================
  Hits         2018     2018
  Misses        120      120

Continue to review full report at Codecov.

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


[Question] Updating plugins

How are plugins updated when a new version is released? Does the user have to update them or is it handled automatically?

@BrainMaestro hey! Now it is manual process – user searches plugin by name and choose update option. But I'm going to add autocheck and autoupdate

Cool, if you point me in the right direction, I'd love to help somehow

@BrainMaestro sure! I just want to check versions of all installed plugins once in a while (i.e. once in 3-4 hours) and for all outdated plugins just do an update (uninstall + install) and reload an app after updating of all plugins.
Best place to do this check is initializeAsync method of plugins plugin (I didn't find better name 😀).

Okay I'll take a closer look tomorrow. Just a thought however, what if the update system was similar to the way Atom handles package updates? There would be a visual identifier of pending somewhere unobtrusive, but easy to see. That way, it's the user's choice on when to update.

Haven't been able to figure out how to do this. Maybe you can pick it up if you still want to


Small corrections of Feature/28/autocomplete search

Just some added things onto the PR of the autocomplete feature, based on suggestions in #28:
-Fixes successive word ranking
-Removed unused code in tagservice
-Limit autocomplete entries to 10
-Start autocompleting on any input, instead of input length larger than 1

Changes have been integrated but not merged due to other changes on this branch. https://github.com/hochschule-darmstadt/einander-helfen/commit/131686f983412e99b2695249c5175be109318219


Update Font Awesome

This PR contains the following updates:

Package
Type
Update
Change

@fortawesome/angular-fontawesome
dependencies
minor
0.11.1 -> 0.14.1

@fortawesome/fontawesome-svg-core (source)
dependencies
minor
6.2.0 -> 6.5.1

@fortawesome/free-solid-svg-icons (source)
dependencies
minor
6.2.0 -> 6.5.1

Release Notes

FortAwesome/angular-fontawesome (@fortawesome/angular-fontawesome)
v0.14.1
Compare Source
Fixed

Removed import from @fortawesome/fontawesome-common-types, which was an undeclared dependency.

v0.14.0
Compare Source
Added

Support for Angular 17.
Possibility to use all components as standalone.

Changed

Examples to use standalone components instead of modules.

Removed

Angular 16.x is no longer supported. If you are using this version, please, stick with version 0.13.0.

v0.13.0
Compare Source
Added

Support for Angular 16.

Removed

Angular 15.x is no longer supported. If you are using this version, please, stick with version 0.12.1.

v0.12.1
Compare Source
Added

Support for all animations from Font Awesome 6. See Animating icons.

v0.12.0
Compare Source
Make sure to check upgrade instructions.
Added

Support for Angular 15.
Documentation and option in ng-add schematic to use new Sharp Solid icons style.

Changed

Documentation on how to create fa-icon programmatically updated to not use deprecated ComponentFactoryResolver.

Deprecated

classes and styles inputs on all components are deprecated for removal as confusing and generally not useful. See upgrade instructions for the suggested migration path.

Removed

Angular 14.x is no longer supported. If you are using this version, please, stick with version 0.11.1.

FortAwesome/Font-Awesome (@fortawesome/fontawesome-svg-core)
v6.5.1
Compare Source
Change log available at https://fontawesome.com/docs/changelog/
v6.5.0
Compare Source
Change log available at https://fontawesome.com/docs/changelog/
v6.4.2
Compare Source
Change log available at https://fontawesome.com/docs/changelog/
v6.4.0
Compare Source
Change log available at https://fontawesome.com/docs/changelog/
v6.3.0
Compare Source
Change log available at https://fontawesome.com/docs/changelog/
v6.2.1
Compare Source
Change log available at https://fontawesome.com/docs/changelog/

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/@angular/core
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@fortawesome/angular-fontawesome
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! C:\Users\Mykola\AppData\Local\Temp\renovate\cache\others\npm\_logs\2023-12-27T15_37_06_316Z-eresolve-report.txt

npm ERR!


"Nedeicu" is listed in the drop-down menu

Description:
"Nedeicu" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Nedeicu" in the search bar.

Expected results
The location is listed in the drop-down menu as "Nedeicu, Brăila (Mărașu)".


Add bump-patch workflow

Codecov Report

Merging #5 (fd1fe4e) into main (8866a7d) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main        #5   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           67        67
=========================================
  Hits            67        67

Continue to review full report at Codecov.

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


fix: read token.txt from CWD instead of classpath

Fixes #16
This is very big BREAKING CHANGE. Releasing version includes this change requires major version up.

Readme.md should also be updated... maybe?

昨日の時点ではCWDでいいと思ってましたが、環境変数のほうがいい気がしたので一旦closeします。


adds TypeReference implementation and $null_or ISL 2.0 modifier support

Issue #164, #158
Description of changes:
This PR works on adding $null_or modifier support for ISL 2.0 and adds an implementation of TypeReference.
List of changes:

add implementation of IslTypeReferenceModifier which stores modifier information for given type reference
add utility methods to create nullable_built_in_type_ref and ``null_or_named_type_ref`.
only allows built in types to use nullable modifier for ISL 1.0
adds implementation of TypeReference which stores type id and modifier information for givne type reference
all constraints now uses TypeReference instead of TypeIds to store type reference information
adds document type to defintioon of $any
adds validate_for_base_nullable_type to get the underlying ion type for a type
definition
adds default type $any for ISL 2.0
adds unit tests for $null_or modifier
renames TypeDefinition to TypeDefinitionKind
renames TypeRef to TypeDefinition

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Updates after last review:

adds suggested changes

renames IslTypeRefModifier to NullabilityModifier
adds doc comment changes
changes default type addition to be only applied for ISL 1.0
changes nfa to use TypeReference instead of TypeId to consider
nullability
$null_or modifier should not be allowed on a type reference that has
occurs field in its definition

adds implementation of VariablyOccurringTypeRef

removes unused method TypeDefinitionKind::get_occurs_constraint()
now that we have VariablyOccurringTypeRef
modifies IslTypeRefImpl::get_occurs_constraint() to return
Option<Range> instead of bool
renames IslTypeRefImpl::get_occurs_constraint() to
IslTypeRefImpl::get_occurs_range()
removes implementation of OccursConstraint as it is treated as no-op
and is handled by VariablyOccurringTypeRef


remove deploy documentation to /documentation

Summary
copy of qiskit-community/qiskit-nature#1222
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.822%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
646

Relevant Lines:
852

💛  - Coveralls


v0.10.0 bump

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 88.478%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
9660

Relevant Lines:
10918

💛  - Coveralls


user groups: Prevent user not in user group to edit/delete group name/members.

This PR fixes #8315. It prevents users who are not a part of user group to edit/delete user group name/members. Realm admins and user group members can continue to do the above operations.
I'm attaching two gifs showing the behavior of user group UI after changes, also if a user creates a group, adds some members in it, then removes himself/herself, he/she cannot further edit/delete the user group, the code prevents doing that.
The following picture has Cordelia as current user.

The following picture has iago as current user (admin).

@hackerkid Can you review the behavior now regarding user groups ? I've made settings such that, even if one changes html/css temporarily through dev tools of browser, one cannot change contents of the group, and cannot definitely update backend.

@Kumar-Tarun You have to enforce the check in the backend as well.

@hackerkid Okay, I'll do that and update the PR, btw is the behavior fine?

@hackerkid I'll do that definitely. I need some time, since I have some tests scheduled in my college, but I will do it. To enforce tests in backend, I thought of enforcing in the user_groups.py in zerver/views, is that fine, or should I do it some where else (like in the user_groups.py in zerver/lib) ?

@Kumar-Tarun I thinks views is good enough.

@hackerkid Please take a look. I've added backend enforcing and tests as well. Sorry for the delay.

@hackerkid I agree that would be better, so should I remove individual settings and add them for the whole box?

@Kumar-Tarun Yup. Make sure to backup the code in case we want to go back :)

@hackerkid I've updated the PR, but unfortunately I could replace only one line of code, the other not-allowed cursors had to be kept because the user-group box property was not applying to individual elements, nevertheless it now works in the desired way! :)

@Kumar-Tarun The cursor not allowed icon is still not enabled in all of the box.

@hackerkid wait let me see it.

@Kumar-Tarun Hold on. I forgot to fetch your branch. Its working fine now :)

@hackerkid I've updated the PR, please have a look! :)

@showell @hackerkid can you please give this a look ?, I've updated it and resolved the merge conflicts.

@Kumar-Tarun I think you can do more on the JS side to make the diffs smaller while keeping them atomic.  I gave some examples on czo of how you can wrap pieces of code in functions that you execute immediately to reduce variable scope without changing the behavior of the code.  These can be good prep commits to get merged quickly.

@Kumar-Tarun Is there anything you can do to break up the first commit into smaller commits?  You should be able to split out commits where you introduce the function wrappers without changing anything else.

Quick visual design notes:

Let's remove the trash can in cases where the user cannot edit
Ditto for the "Add members .." text
Possibly let's also remove the box around the pills, in this case?
We don't need the :no_entry_sign: for the mouse

Thanks!

@rishig see which one you like better -

This is for the "users cannot edit" case? I like the second.

By the way, are the pills here different from the ones used in composing a PM?

@rishig Ok so I will go with the second one, and yes pills are a little different from PM pills, also, Vishnu and I think that 'not allowed cursor' will give a enhanced feel as to saying that user is not allowed to modify, but if you say, I'll remove that as well. Let me know!

@showell I've updated the PR, you may check, also I implemented the suggestions as said by Rishi, except one of them, 'not allowed cursor' which I wanted to just confirm, because I think keeping it would be a little verbose in hinting user that he/she is not allowed to modify group.

I think as the final state we won't want the "not allowed cursor", since we don't use it anywhere else in the product, and we also want to explain why the user is not able to edit if there is a possibility of confusion. After playing around with it I agree with your intuition that there is a possibility of confusion, so we'll want to do something.
For this PR, let's leave it with the "not allowed cursor", and then do a followup project to

sort the groups the user can edit to the top
have a tip, that says something like "Please contact an administrator or a member of the group to be added to any of the groups below." (will have to figure out exact wording) right above where the non-editable section starts.

oh I see, we use the not-allowed-cursor on the custom emoji page, which this page is modeled after. I think the use there is also not great, but we can fix that afterwards.

@rishig that's a great idea to be worked on after this project, and will definitely improve user experience, also, we also use not allowed cursor in organization profile page, from which I got the idea, nevertheless thanks for this idea! :)

@Kumar-Tarun you'll need to do some updates to this following #8716.

@timabbott I've updated the PR, and also left some comments, you may check and let me know, if anything else is required. :)

I merged the first commit and posted comments on the second.

This works great BTW.  We should hide the "x" styling in the .notmem input-pill case though; it's confusing.
Also you should re-order the commits; the two tip commits should be squashed together, and the backend commit should come before the tip commit.
@synicalsyntax can you give the JS part of this a review?  I'd love it if we had a way to remove the redundant exports.can_edit(data.id, me) calls.

@timabbott I've updated the PR, and made the changes you suggested.

@timabbott I've updated the PR, you may check!

I've merged this, thanks @Kumar-Tarun and @synicalsyntax!
That said, I think refactoring is in order to clean up the JS code.  I think this function in particular has no hope of being maintained correctly over time:

+        function update_membership(group_id) {
+            if (exports.can_edit(group_id)) {
+                return;
+            }
+            userg.find('.name').attr('contenteditable','false');
+            userg.find('.description').attr('contenteditable','false');
+            userg.addClass('ntm');
+            pill_container.find('.input').attr('contenteditable','false');
+            pill_container.find('.input').css('display', 'none');
+            pill_container.addClass('notmem');
+            pill_container.off('keydown', '.pill');
+            pill_container.off('keydown', '.input');
+            pill_container.off('click');
+            pill_container.on('click', function (e) {
+                e.stopPropagation();
+            });
+            pill_container.find('.pill').hover(function () {
+                pill_container.find('.pill').find('.exit').css('opacity', '0.5');
+                    }, function () {}
+            );
+        }

So I'm opening a follow-up issue to clean up this section of the codebase.  I think we might want to extract out a "non-editable" pill concept, and just have a user group's section be rerendered completely (replacing the old content) when the current user joins/leaves a group; done right, we shouldn't need a function like this at all.


Adding execution of examples to tox test environments

Splitted the testenv into two one for tests and one for the examples.

Codecov Report

Merging #28 (65a4380) into main (d78d69d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #28   +/-   ##
=======================================
  Coverage   92.12%   92.12%
=======================================
  Files          12       12
  Lines         330      330
=======================================
  Hits          304      304
  Misses         26       26

Continue to review full report at Codecov.

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

So the examples adds around 50 seconds runtime to the github workflows (per python version), on my machine it is 30 seconds. I think this is mainly due to the pip installation of the jupyter notebook dependencies. One could save some time by merging the test environments, so only one pip installation is only required. But I think keeping them separate is better structured, and it would not save a lot of runtime and 50 seconds is bearable.


Remove the rustfmt required_version config option

The rustfmt config option required_version causes grief in CI because everytime rustfmt is update our nightly job fails. Since we require nightly anyways to run rustfmt the config option is basically redundant.

Friendly bump please.


Initialisation values are not correct

Initialisation of the values should wait for a valid first read to set themselves up.

Closed by 3e0e526


Unable to generate signedUrl when using WIF under GKE

Environment details

OS: Ubuntu running on GKE
Node.js version: 18
npm version: 9.3
@google-cloud/storage version: 7.10

Steps to reproduce

Have a GKE cluster configured with Workload Identity Federation, and have correct permissions on GCS buckets (storageAdmin binding via IAM account from GKE service account)
Within a GKE cluster's pod, run the following code

// Import the Google Cloud client library
const { Storage } = require('@google-cloud/storage');

// Instantiate a storage client
const storage = new Storage();

// The name of your GCS bucket
const bucketName = 'test_bucket';

async function getSignedUrl() {
  try {
      const [url] = await storage
        .bucket(bucketName)
        .file('/path/to/file.png')
        .getSignedUrl({
          version: 'v4',
          action: 'write',
          expires: Date.now() + 1000 * 100,
          contentType: 'image/png',
        });

      return url;

  } catch (error) {
    console.error('Error:', error);
  }
}

// Call the function to list files
getSignedUrl();

Resulting error:
ERROR: Error: Invalid form of account ID test_account.svc.id.goog. Should be [Gaia ID |Email |Unique ID |] of the account
    at Gaxios._request (/home/node/app/node_modules/.pnpm/gaxios@5.1.3_encoding@0.1.13/node_modules/gaxios/build/src/gaxios.js:140:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Compute.requestAsync (/home/node/app/node_modules/.pnpm/google-auth-library@8.9.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/oauth2client.js:382:18)
    at async GoogleAuth.signBlob (/home/node/app/node_modules/.pnpm/google-auth-library@8.9.0_encoding@0.1.13/node_modules/google-auth-library/build/src/auth/googleauth.js:707:21)
    at async sign (/home/node/app/node_modules/.pnpm/@google-cloud+storage@6.12.0_encoding@0.1.13/node_modules/@google-cloud/storage/build/src/signer.js:181:35) {
  name: 'SigningError'
}
[Nest] 80777  - 04/26/2024, 2:35:53 PM   ERROR [ExceptionsHandler] Unable to generate signed URL.
Error: Unable to generate signed URL.
    at GoogleStorageService.<anonymous> (/home/node/app/main.js:12741:23)
    at Generator.throw (<anonymous>)
    at rejected (/home/node/app/node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.js:167:69)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
command terminated with exit code 137

Note that other bucket operations work fine (create, list, upload). This seems to specifically affect signedURL generation - possibly related to #1672 and #2346 which have no solution.

Hi @mkherlakian in your description you mention using @google-cloud/storage v7.10. However, in your stack trace it is showing<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Can you confirm the correct versions?

Hey @ddelgrosso1! Apologies, I did test a few versions. The Stack trace was indeed from 6.12 but 7.10 behaves the same!

@mkherlakian could you possibly test with v7.10 and provide me the output of npm ls google-auth-library?

Sure thing - here goes:
root@tmp-shell:/test# node sign.js
Error generating signed URL: Error: Invalid form of account ID test_account.svc.id.goog. Should be [Gaia ID |Email |Unique ID |] of the account
    at Gaxios._request (/test/node_modules/gaxios/build/src/gaxios.js:136:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Compute.requestAsync (/test/node_modules/google-auth-library/build/src/auth/oauth2client.js:408:18)
    at async GoogleAuth.signBlob (/test/node_modules/google-auth-library/build/src/auth/googleauth.js:791:21)
    at async sign (/test/node_modules/@google-cloud/storage/build/cjs/src/signer.js:219:35) {
  name: 'SigningError'
}

BTW I did replace test_account in the output, the account we're using is a combination of letters and numbers, and one hyphen, in case that makes a difference.
root@tmp-shell:/test# npm ls google-auth-library
test@ /test
`--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>

Just an update, I setup a GKE cluster today and was able to recreate the same error. I'm still trying to figure out if it is a configuration problem with WIF / GKE (full disclosure I'm not a GKE expert by any means) or a problem in the auth library. Will update once I get to the root cause.

Thanks for the update! It's good that it's reproducible. Yeah the strange thing is that other operations seem to work fine. I guess the mechanism for signed url is possibly different?... Let me know if I can help!

@mkherlakian fair question. From the perspective of the storage library I'm not sure what, if anything could be done to make this more transparent. This library hands the actual signing call off to the authentication library which in turn handles the metadata calls.
I think the larger gap here isn't necessarily the way storage or auth behaves but rather the docs don't clearly illustrate how to get this properly setup. The auth library has some samples on using the Impersonated client but there is still a lack of end to end setup documentation.

@mkherlakian curious if you were able to get this to work?

Going to close this out. If there are more questions or problems, feel free to reopen or start a new issue.


Sift installation docker fail

I'm trying to install SIFT packages on an Ubuntu 16.04 docker container.
At first, i had to make a new user (in this case: sift), as sift doesn't let root be the installation target. But even after specifying this new user, this error appears, although clearly I'm executing as root.
root@6e9dccdde3bd:/data# useradd sift
root@6e9dccdde3bd:/data# sift install --mode=packages-only --user sift
><EMAIL_ADDRESS>Warning: You are running as root.
> sift-version: notinstalled

> Error! You must be root to execute this.

@nov3mb3r docker really isn't the correct medium for install sift.

Most of the forensics tool are command line based, so why waste resources on a VM ? I find docker to be more efficient in such cases and both SANS and the forensic community would benefit a lot if a docker image was built

@nov3mb3r I couldn't agree more, however your approach is wrong.
Each tool or a small subset of tools should be created in their own docker image using a Dockerfile or a build tool.
Trying to install sift inside of docker to create an image would result in a multi-gigabyte image that basically defaults the purpose.
Remnux has already started doing this with some tools, you can look them for examples.
https://hub.docker.com/r/remnux/

@ekristen Well i builded an image with some of the most used SIFT packages. It's lightweight too. https://github.com/nov3mb3r/dfir . I find it's best to contain some tools together (like volatility and regripper) rather than having them installed on different containers.

Hey @nov3mb3r it looks like I never submitted my original response to your latest comment.  I think what you are doing is great, docker is definitely the way to go.
The image you've created looks pretty heavy from it's build file, but I haven't have had a chance to actually download it yet.
There are many ways to use docker, just remember it's not a virtual machine and shouldn't be treated as such.
I'm going to close this issue for now, feel free to continue commenting.


build in a separate folder

i am not sure which file should copy
if it can build and generate a build folder , that will be very nice
thank you

thank you


ArgoCD/ArgoRollouts integration

Argo features that we want
ArgoCD

Pull-model
Rich GUI
Questionable:

Multicluster delivery (possible in Push-model with a CI/build server like GitLab CI)
Cold cluster: backup cluster that syncs with the main one
Self-healing (unreliable: if the manifest field is not set in rendered manifest then Argo won't track any changes to this field)

Argo Rollouts:

Advanced deployment strategies: canary, blue-green

What werf brings to the Argo users

consistent and effective Continuous Delivery (build, local development, deployments to review environments)
better observability and failing fast (kubedog)

How to integrate

Render manifests and pass it to the Argo deployment controller (easy)
Publish chart with images (easy)
werf bundle integration (hard)
kubedog integration (hard)

Roadmap

Make a complicated deployment demo with ArgoCD/ArgoRollouts
Implement easy integrations with werf
Decide whether we want further integration

TL;DR: new command werf bundle render renders K8s manifests from bundle for further deployment with other CD tools (ArgoCD?) or debugging.
New command: werf bundle render
Since v1.2.67 a new command werf bundle render can be used to render Kubernetes manifests from a published werf bundle.
Resulting manifests can be passed to other CD tools, which handle the deployment part, if you can't use werf for deployment and required to use something else.
Difference with werf render
werf bundle render, unlike werf render, does not require access to the git repository or werf configuration files. It requires access either to the OCI-repository with a werf bundle or to the directory with a downloaded and extracted bundle.
Thus you should use werf render to integrate with push-based CD tools (Skaffold), but use werf bundle render to integrate werf with pull-based (GitOps) CD tools (ArgoCD).
Example
Execute in CI in the app git repository:
$ werf bundle publish --repo registry.mydomain.io/project

Execute on GitOps/pull-server, which will handle the deployment part and does not have app git repository access:
$ werf bundle render --repo registry.mydomain.io/project --release myproject --namespace myproject --output manifests.yaml
$ <my-gitops-utility> deploy -f manifests.yaml

This article explains how you can use Argo CD with werf bundles.

The integration with ArgoCD is mostly completed at this point, although it has some serious limitations. We are thinking about new integration of werf with ArgoCD, done in a different way: #6158
Argo Rollouts should work as they are with werf, no extra setup needed. But we can add tracking for Rollout Custom Resources, which is now missing: #6157


Feature request: Update Pocketbase to latest version

Hi @benallfree It will be nice to have an option to upgrade the Pocketbase version.
Currently I have the v0.12.3, but the latest version is v0.13.4.

Hey @vtisnado, Yes I'll make 0.13.x available. Once I make the update, all newly created instances will run 0.13.x instead of 0.12.x
There is currently an intentional manual migration process in place until PocketBase stabilizes its upgrade process. #179 discusses this a little bit, as does #72.
If you need an existing instance upgraded, please contact me.

Oh now I remember I saw #179, I was looking for that thread actually, but could not found it.
Oh thanks, maybe you can upgrade my instance crashcourses if is to many trouble, I can destroy it and re-create it again :)


Feature request: RecordInput to support gzipped tfrecord files.

Currently RecordInput doesn't support gzipped tfrecord files, would be great to have this supported.

Added a PR #12369 for gzip and lib support.


Error accessing lookahead token from token stream!

https://github.com/ryo33/parol_sandbox/tree/d562d4ef567b8b0d91c39f0544e8537c953d4417
This code emits the following error with cargo test
Diagnostic {
  message: "Error accessing lookahead token from token stream!",
  code: "parol_runtime::parser::syntax_error",
  help: "Syntax error in input prevents prediction of next production",
  labels: "[LabeledSpan {
    label: Some(\"Error location\"),
    span: SourceSpan { offset: SourceOffset(0), length: SourceOffset(0) }
  }]"
}

I'm trying to understand what happens, but it's a little harder.
Originally posted by @ryo33 in https://github.com/jsinger67/parol/discussions/36

If there are no terminals assigned to a scanner state, the resulting scanner can't deliver any valid tokens.
This should be detected during the analysis phase.

Fixed with d9ad08e


impoundment help

page id: impoundment

how will the  user know if they have been granted a motion to impound their address in this case, add help or information

This screen should probably come sooner in the interview


Restart IIS in production returns error if user is logged in

I build an application and use the microsoft graph for login and logout. When a user  is logged in via microsoft graph and in the same time i restart the iis server.If the user refersh the page the token is  invalid and returns an error page.
What steps can i do, so when i restart the iis , the logged in user refreshes the token automatically via the  microsoft graph api

There are two types of tokens in this case: an access token (what you are using to call Graph) and a refresh token. Your tokens are stored in memory (because the tokens get cleared when you restart IIS).
If you clear the token cache (eg. by restarting IIS), you clear the refresh tokens as well, so you won't be able to just refresh the tokens, but will need to do a full re-authentication.
I'd advise to store the tokens in a persistent token cache (eg File).

you will need a TokenCacheHelper like this: https://github.com/mark-szabo/teams-presence-monitor/blob/master/TeamsPresenceMonitor/TokenCacheHelper.cs
and in the GraphAuthProvider when you create the app just call this: TokenCacheHelper.EnableSerialization(_app.UserTokenCache);

Thanks the code  works in the development mode but in production it generates error , i suspect  iis dosen't have read/write permissions to create the bin3 file.

based on tha answer https://stackoverflow.com/a/53054375/924300  i fixed it , thanks a lot for the code, it works !!!!


Project ownership

Modified Project aggregate to have an owning team.
Modified ApplicationCreated event sent to atomist to include the owning project.
Resolves #28

FYI. I do not have a meaningful way to test this right now without my local dev environment as discussed at standup.


Type ascription to schemaMeta causes "Batch actions must be static quotations."

Adding type annotation in
implicit val schema: ctx.SchemaMeta[Row] = schemaMeta[Row]("rows")

breaks batch queries but doesnt affect normal ones.
I'm, raising this mostly to help other people google the answer. It would be nice to fix it (either by a better error message, a warning message or changing the behavior) but I expect it's not so easy.
Version: 2.6.0
Module: core?
Database: any
Actual behavior

Batch actions must be static quotations.

Steps to reproduce the behavior
https://scastie.scala-lang.org/VKzicxs6SKukBdlkXw6ZZg
Workaround
Remove type ascription
@getquill/maintainers

Having similar issue with querySchema, which breaks batch inserts. Seems pretty major issue, no?

 According to Intellij the implicit isn't even used and also judging by the compile output of the query it isn't even picked up.

Actually ignore my above comment, Intellij was wrong and quill was actually picking it up

Hi, are there any plans on fixing this?

It may be the same issue, I have an error trying to write generic insert code like
def store[A: SchemaMeta : Encoder](datas: List[A]): ZIO[Any, PostgresWriteError, Unit] = ZIO.attempt {
    val q = quote {
      liftQuery(datas).foreach(d => query[A].insertValue(d))
    }
    ctx.run(q)
  }.mapError(e => PostgresWriteError(e.getMessage)).unit

this example fails with a compile error :  Batch actions must be static quotations. Found: 'q'


Build-args for docker/build-push-action

Add an image-build-args option to integration_test job to pass build-args to the build_image job.

CI with image-build-args: https://github.com/canonical/mattermost-k8s-operator/pull/7
CI without image-build-args: https://github.com/canonical/discourse-k8s-operator/pull/51

Did we miss documenting the new argument in the readme?


Need JDK CRaC on macOS arm64

Need JDK CRaC on macOS arm64.
zulu currently supported

https://www.azul.com/downloads/?version=java-21-lts&os=macos&architecture=arm-64-bit&package=jdk-crac#zulu


Make button components work on preview.roadie.io

Needs another quick look. I tried a path of using <a> instead of <button> but it didn't make a difference.


markdown formatting removed from _index.md pages

Hi!
I would like to render markdown in _index.md as in index.md. Now all formatting seems to be removed in _index.md. Could You give any advice how to set it up?

Can you update the theme and check again?

Hi!
I mean for _index.md like
---
title: Test Index _index.md
---

Ala ma kota:

- white
- black

The result will be

And similar stuff.

Did you update the theme?

It works fine for me.
Update the theme and check again

Ok! So I have copied Your blog to have proper settings, then cloned zzo theme to there and did

but result is as

It somehow still broken.
I'm using hugo 0.60.1, is it ok?

I'm using hugo 0.60.1, is it ok?

Yes, it is ok.

It somehow still broken.

No, it's not broken.
Can you try this?
- blue
- black
    - re ## 4 spaces

or
- blue
- black
        - re ## 8 spaces


Support CellML in Bundled Antimony

The Antimony package we ship with Tellurium should be compiled with CellML support via the CellML API. This is pending a check to determine that CellML can be distributed along our target distribution channels (i.e. that the libraries it includes are portable and will work on Windows, Mac, and older Linuxes).

@luciansmith I had the same issues the last weeks. Mainly because the latest cellml library versions did not work on ubuntu 16.04 any more, so it became difficult to link against the cellml libraries.
The trick is to get antimony compiled with the cellml libraries. Only than are the functions available from within tellurium. If one compiles antimony without cellml all the cellml transformation  functions are missing.
Here are scripts how to compile cellml & antimony with cellml
https://github.com/matthiaskoenig/linux-setup/tree/master/scripts
Mainly
https://github.com/matthiaskoenig/linux-setup/blob/master/scripts/cellml-api.sh
how to build the latest cellml-api from source
and
https://github.com/matthiaskoenig/linux-setup/blob/master/scripts/antimony.sh
how to than link antimony against it

Thanks @matthiaskoenig!

The Antimony wheels contain CellML.


Stuck on loading after connecting to local node (incompatible with latest lnd master branch)

Stuck on loading after connecting to local testnet node (localhost:10009)

checkPropTypes.js:19 Warning: Failed prop type: The prop network is marked as required in Network, but its value is undefined.

stateProps.info.network is empty object

@mrfelton does it work with a remote lnd too?

Yes @mariodian

I'm seeing this on Zap Version 0.3.1-beta (0.3.1-beta.5049).

@stevedekorte the latest version 0.6.2-beta. You should upgrade as 0.3.1-beta is very old.


Default cookie's domain

If the domain is not set by the server, the cookie's domain will be defined to * (default value). But when it resend the cookies, it will not resend this one because it does not match the domain.
This is just a small error, I think we just need to be able to get the domain from where the cookie was sent. We need to pass this domain from Crawler.handleResponse to CookieJar.addFromHeaders and then to Cookie.fromString to use it if the domain in the cookie is not set.
I was thinking, why are you not using a module like "tough-cookie" ? It's used by the "request" module and is compliant with RFC6265.
This will add a dependency, but it's a small one. And this will take cookies' logic out of this module.
Best regards,
Leeroy

This was addressed in #200. Maybe using tough-cookie is a good choice, but at least the problem that was the start of this thread should be fixed by now


[AUTOMATIC] Contribute: content/day15

🐧 Ubunchuu Contribute Request

❓ What type of PR is this? (check all applicable)

[ ] 📝 Content - Documentation Update
[ ] 📝 Content - Blog Update
[ ] 🎨 Style (UI/UX)
[ ] 🍕 Feature
[ ] 🪲 Bug Fix
[ ] 🤖 DevOps
[ ] 🧑💻 Code Refactor

📝 Description for my changes

Please clear this section and include a very short summary of the change (3 lines maximum)

📌 Related Issues

❗MANDATORY❗

Please clear this section and note that any changes to the codebase should have a related issue to provide context for the changes.

🖥 Mobile/Desktop Screenshots (optinal)

If applicable, add screenshots to help explain your changes.

Please clear this whole section if not applicable.

Performance Report

Run number: 103
Run ID:<PHONE_NUMBER>
Run URL: https://github.com/ubunchuu-truong-us/ubunchuu-truong-us.github.io/actions/runs/8066714178
✅ Test server functionality passed with the following times for each step:

Step
Time (seconds)

Install Dependencies
29.604225873947144

Build Website
30.413740396499634


Guide for contributing that includes step-by-step guides for the following sections

Motivation

To keep high quality standards, first time contributors should have access to detailed guidelines.
User Story
As a first time contributor
I want to run tests locally
So that I can develop the app
Success Criteria
Scenario: Contributing to this project for the first time
Given that I am a Python developer
When I refer to the contributing guide
Then I have access to all required information to contribute for the first time
Deliverables

[x] Guidince in README.md that includes step-by-step guides for the following

First time setup
[Optional] Start coding -- especially for feature branches
Running the tests
Project structure description

Checklist

[x] Defuzz date and participants: ...
[x] Demo date and participants: ...

The work in this issue was done as part of #2


Close ChannelFactory when TiSession is closed

What problem does this PR solve?
Close ChannelFactory when TiSession is closed.
Check List
Tests

Integration test

Related changes

Need to cherry-pick to the release branch

/run-all-tests

/run-all-tests

/run-all-tests

/run-integration-tests

/run-integration-tests

/run-integration-tests

/run-integration-tests

/run-integration-tests

/run-integration-tests


Gallery

gallery component at the stage of completion
todo:

change functionality of updating the items by pressing on refresh button, not after changing a single option
add component for upload photos


Refactor predictable vars module

This PR refactors the predictable_vars module. The module now returns an issue when:

"coinbase", "gaslimit", "timestamp" or "number" is found to influence a control flow decision that leads to a CALL or SUICIDE
if block.blockhash is called with the block number of a previous block (< block.number), and the result of this is used in a control flow decision that leads to a CALL or SUICIDE

TODO: Handle use of blockhash

@JoranHonig I tried to add taint propagation to the sha3 implementation as suggested but couldn't get it to work.
Currently, this is detected:
/*
 * @source: https://capturetheether.com/challenges/lotteries/guess-the-random-number/
 * @author: Steve Marx
 */

pragma solidity ^0.4.21;

contract GuessTheRandomNumberChallenge {
    bytes32 answer;

    function GuessTheRandomNumberChallenge() public payable {
        require(msg.value == 1 ether);
        answer = block.blockhash(block.number - 1);
    }

    function isComplete() public view returns (bool) {
        return address(this).balance == 0;
    }

    function guess(bytes32 n) public payable {
        require(msg.value == 1 ether);

        if (n == answer) {
            msg.sender.transfer(2 ether);
        }
    }
}

This isn't:

/*
 * @source: https://capturetheether.com/challenges/lotteries/guess-the-random-number/
 * @author: Steve Marx
 */

pragma solidity ^0.4.21;

contract GuessTheRandomNumberChallenge {
    bytes32 answer;

    function GuessTheRandomNumberChallenge() public payable {
        require(msg.value == 1 ether);
        answer = keccak256(block.blockhash(block.number - 1));
    }

    function isComplete() public view returns (bool) {
        return address(this).balance == 0;
    }

    function guess(bytes32 n) public payable {
        require(msg.value == 1 ether);

        if (n == answer) {
            msg.sender.transfer(2 ether);
        }
    }
}

Any ideas?

OK, I fixed propagation of annotations in sha3 but I'm encountering a different problem now. For guess_the_random_number.sol Mythril never reaches the CALL instruction where the Ether is sent:
$MYTH -xc<PHONE_NUMBER>670de0b6b3a76400003414151561001a57600080fd5b600143034042604051808360001916600019168152602001828152602001925050506040518091039020600190046000806101000a81548160ff021916908360ff160217905550610164806100706000396000f30060606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634ba4c16b14610051578063b2fa1c9e1461006c575b600080fd5b61006a600480803560ff16906020019091905050610099565b005b341561007757600080fd5b61007f610117565b604051808215151515815260200191505060405180910390f35b670de0b6b3a7640000341415156100af57600080fd5b6000809054906101000a900460ff1660ff168160ff161415610114573373ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f19350505050151561011357600080fd5b5b50565b6000803073ffffffffffffffffffffffffffffffffffffffff1631149050905600a165627a7a72305820e70964dd89df0e5b2cf45faf9eecd590a00131d465ed3f65857d843d01c130270029 -v5 2>&1 | grep CALL

I tried various max_depth and search strategy settings but can't reach that path, apparently it's pruned?
The same applies to this code (without the uint8 cast):
pragma solidity ^0.4.21;

contract GuessTheRandomNumberChallenge {
    bytes32 answer;

    function GuessTheRandomNumberChallenge() public payable {
        require(msg.value == 1 ether);
        answer = keccak256(block.blockhash(block.number - 1));
    }

    function isComplete() public view returns (bool) {
        return address(this).balance == 0;
    }

    function guess(bytes32 n) public payable {
        require(msg.value == 1 ether);

        if (n == answer) {
            msg.sender.transfer(2 ether);
        }
    }
}

This should be ready to merge now but still doesn't solve GuessTheRandomNumber due to the SHA3 BitVecFunc equivalence thing (can't detect the tainted variable being used to decide on a CALL if the CALL is pruned).

Mostly looks good from my side :+1: , just few minor questions, and typehints stuff.


fix: context activation for HTTP instrumentation's outgoing requests

Which problem is this PR solving?
A while ago context activation was removed from outgoing HTTP requests due to wrong context being activated, here: https://github.com/open-telemetry/opentelemetry-js/pull/1546
However with net module instrumentation connect spans were attached to the parent span of the request, which is wrong. Besides the wrong context (parent) context was being activated in the response callbacks (data event) even if the response was not yet finished this made it impossible accessing the outgoing request span inside the response callbacks (e.g. when processing data chunks).
Short description of the changes
Before
context.with(parent, () => {
  http.get(url, response => {
    /* active context: parent */
    response.on('data', () => { /* active context: parent */ });
    response.on('end', () => { /* active context: parent */ });
});

After
context.with(parent, () => {
  http.get(url, response => {
    /* active context: outgoing request */
    response.on('data', () => { /* active context: outgoing request */ });
    response.on('end', () => { /* active context: parent */ });
});

Example: chaining outgoing requests for an incoming request
app.get('/foo', (req, res) => {
  /* active context: incoming request */
  https.get('https://www.google.com', (response) => {
    /* active context: outgoing request to www.google.com */
    response.on('chunk', () => { /* active context: outgoing request to www.google.com */ });
    response.on('end', () => {
      /* active context: incoming request */
      http.get('http://www.example.com', (response2) => {
         /* active context: outgoing request to www.example.com */
        response2.on('chunk', () => { /* active context: outgoing request to www.example.com */ });
        response2.on('end', () => {
          /* active context: incoming request */
          res.send("ok\n");
        });
      });
    });
  });
});

Which will produce a trace similar to this (net instrumentation is enabled here, thus the connect spans):

Remarks

There's a custom event emitter binder pretty much the same as is in @opentelemetry/context-async-hooks, however I decided not to request a change to ContextManager interface of @opentelemetry/api to add a bind method which instead of taking in a context, takes in a function which returns a context and opted for some code duplication. This is useful for event emitters which might require different contexts being activated based on the events.

I don't think that response event should have the outgoing request span on active context.
If someone triggers a followup request (client HTTP, database,...) this would be child which is not intended (see https://github.com/open-telemetry/opentelemetry-js/issues/1479).
I think the span for the outgoing request should be set as active for the http.request() call only but the callbacks/events should be bound to the parent context.
This would fix the issue with net (and most likely also dns) instrumentation without changing the whole span tree.

I don't think that response event should have the outgoing request span on active context.
If someone triggers a followup request (client HTTP, database,...) this would be child which is not intended (see #1479).
I think the span for the outgoing request should be set as active for the http.request() call only but the callbacks/events should be bound to the parent context.
This would fix the issue with net (and most likely also dns) instrumentation without changing the whole span tree.

response is emitted once the response headers are received, the request is not yet finished, this I think it is wrong to do any follow up requests after you have received the response headers and any such followups be done in the response.on('end', ...) event handler.

What's wrong in issuing a followup operation already in response event if all the needed information is present?
What about other events like error, close?

What's wrong in issuing a followup operation already in response event if all the needed information is present?
What about other events like error, close?

Nothing wrong with that, it's a question of which context to activate in the response callback. The outgoing request context needs to be made available in at least one location. This is not related to net instrumentation, but an option to have access to the outgoing request's span inside the callbacks. data callback is not called for empty response bodies, thus my reasoning to activate the outgoing request context inside the response handler.

I disagree that in your original example the current behavior is incorrect. If I make a request to http://example.com/api/tasks, wait for a response, and make a request to http://example.com/api/task/:id when I receive chunks of that response, the /api/task/:id calls are not children of the /api/tasks call but siblings.

I disagree that in your original example the current behavior is incorrect. If I make a request to http://example.com/api/tasks, wait for a response, and make a request to http://example.com/api/task/:id when I receive chunks of that response, the /api/task/:id calls are not children of the /api/tasks call but siblings.

Perhaps, but in a sense isn't the outgoing context lost forever then?

It's at least serialized by api.propagation.inject and picked up on remote.
My expectation on the span tree are as follows. Assume an incoming http request which does two outgoing and remote process is also monitored:
IncomingHttpSpan
    ClientHttpSpan1
        NetConnectSpan1
            DnsLookupSpan1
        IncomingHttpSpan1 (remote process)
    ClientHttpSpan2
        NetConnectSpan2
            DnsLookupSpan2
        IncomingHttpSpan2 (remote process)

I'm not 100% sure if DnsLookup should be a child of NetConnect but I think it should.

It is picked up by inject indeed, but if I wanted to add attributes to the outgoing span?

It is picked up by inject indeed, but if I wanted to add attributes to the outgoing span?

That sounds like a usecase for something like the applyCustomAttributesOnSpan  config. Not supported by the net instrumentation module currently, but by the http instrumentation module and I believe the XHR/fetch modules as well.

We talked about this at the SIG meeting today and the current behavior is the desired behavior. I am going to close this PR for now. If you disagree you can comment here and it could be reopened if there is reason to do so.

We talked about this at the SIG meeting today and the current behavior is the desired behavior. I am going to close this PR for now. If you disagree you can comment here and it could be reopened if there is reason to do so.

In any case I'll modify it so the connect spans are linked correctly (i.e. activating the request context when doing the call)

I am wondering if it would be useful to introduce applyCustomAttributesOnSpan to the net instrumentation?

I am wondering if it would be useful to introduce applyCustomAttributesOnSpan to the net instrumentation?

It could be but this is a separate issue

We talked about this at the SIG meeting today and the current behavior is the desired behavior. I am going to close this PR for now. If you disagree you can comment here and it could be reopened if there is reason to do so.

In any case I'll modify it so the connect spans are linked correctly (i.e. activating the request context when doing the call)

Are you going to modify this PR or open a new one for that?

We talked about this at the SIG meeting today and the current behavior is the desired behavior. I am going to close this PR for now. If you disagree you can comment here and it could be reopened if there is reason to do so.

In any case I'll modify it so the connect spans are linked correctly (i.e. activating the request context when doing the call)

Are you going to modify this PR or open a new one for that?

I'll open a new one


PERF: use GEOSCoordSeq_copyToBuffer for get_coordinates (GEOS >= 3.10)

Similar as https://github.com/pygeos/pygeos/pull/436, but now for getting coordinates.
Small example showing the speed-up (10,000 polygons of 100 vertices):
geoms = shapely.polygons(np.random.randn(10000, 100, 2))

In [10]: %timeit shapely.get_coordinates(l)
13.6 ms ± 314 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)   # <-- main
6.46 ms ± 322 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)   # <-- PR

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 84.315%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2075

Relevant Lines:
2461

💛  - Coveralls


Fix dependencies of the theme

(I'm trying to iterate quickly on this, we can revert if necessary)


Invalid SVGs don't fail gracefully

When drawing an SVG, if the XML has a syntax error for instance, the app crashes.

this has been fixed via #503


[Discussion]: Go further with 2.1.9?

Summary
2.1.9 is a mandatory for something very ill-defined. It doesn't make a lot of sense to me.
Source
No response
Detail
2.1.9 currently says "Your TRE must provide software applications that are relevant to working with the data in the TRE." and is mandatory. As it's written I don't find it very useful. Could we morph it into something else? One cry we often hear from researchers is that every TRE seems to be different in the tools it provides and it can be a pain to switch between them. We could take this opportunity to mandate a minimum application environment for TREs. Yes, this could open a can of worms, but: "a TRE must provide R, Python, git" (say - this should be a short list) should really not be that controversial and would be a quantum leap towards standardising environments. Now package versioning etc. is somethnig else best addressed under Artefact Management, and "only R & Python" would be insufficient for many existing Stata/SAS-based analysis suites, but we can't really mandate non open-source tooling. Still, we could recast 2.1.9 as defining a necessary minimum.
Intended Output
No response
Who can help
No response

Relevant survey question here.
I think this has been discussed in collaboration cafés and other meetings quite a bit. I think the summary is saying "You must have Python to be a TRE", for example, would be unacceptable for some implementations/domains and we don't want to exclude those.
That is how I think we settled on the attitude "A TRE should provide what is common, necessary, expected for it's users to work effectively". Which might be Python, but it also may be a spreadsheet and word processor.

I agree with @JimMadge. Python is very useful for a lot of people, but not everyone. Security best practice is to only install things that are required- if it's not installed it can't be exploited. Of course this has to be balanced against convenience, so in practice most TREs would install a standard set of applications relevant to their users, but this should be up to the TRE.
Once we get into more industrial/commerical TREs this is even more relevant since they may have corporate policies that require use of standard tools, e.g. they may mandate that all analysis is done only using <X>.

I agree with the arguments (and apols for missing the original discussion), with my only caveat being the push we see towards more standardisation in TRE environments. That aside: as it's written I'm still unconvinced of it as mandatory requirement. Are we trying to say: to be a TRE you need to offer some kind of analytical capability, not just host data?

Are we trying to say: to be a TRE you need to offer some kind of analytical capability, not just host data?

I think yes, though maybe a bit stronger that that: it should be analytical capability that fits the requirements of your researchers.


Fixes and enhancements in WebAccess

This PR is about fixing and enhancing some WebAccess items:

Buttons: JS events onmousedown and onmouseup replace onclick to be able to use Flash mode
AudioTriggers: new signal captureEnabled(bool) in VCAudioTriggers allows WebAccess AudioTriggers state to be updated when changed in QLC+ directly
Frames: possibility to use circular scrolling of pages
Cuelist: fixes which prevented Cuelist to work correctly

More generally, I refactored the JS code to be more simple:

move style update code from websocket.js to virtualconsole.js
style updates are done only when receiving messages from the WS, not when clicking on the elements of the Web UI

This prevents style updates (ie. a button going green) when the element isn't actually activated in QLC+ (ie. if QLC+ is not in operate mode). Web UI only sends UI events to QLC+, then QLC+ tells back the Web UI what to update.
This also simplifies websocket.js which doesn't have style update code anymore, only calls to functions in virtualconsole.js
Finally, this removes some duplication of code between websocket.js and virtualconsole.js

I'm gonna merge this cause I need to release 4.11.2.
I'll make a couple of changes that I found while testing this.
Thanks a lot for this PR. Well done.


TFDF 0.2.2 breaks printing of training logs

In the latest version of TFDF (0.2.2), displaying training logs seems to have broken.
e.g. this no longer prints detailed training logs.
with sys_pipes():
  model_1.fit(x=train_ds)

This used to print detailed training logs and debug info. Now it prints (as of 0.2.2):
Training GradientBoostedTrees classification model on: XXXXXXX
Resolve hyper-parameter template "benchmark_rank1" to "benchmark_rank1@v1" -> {'growing_strategy':  …
Use /tmp/tmpqp29oi53 as temporary training directory
Starting reading the dataset
1/1 [==============================] - ETA: 0s
Dataset read in 0:00:00.552562
Training model
Model trained in 0:00:00.058688
Compiling model
1/1 [==============================] - 1s 626ms/step

Ah, I see this in the changelog at https://github.com/tensorflow/decision-forests/blob/main/CHANGELOG.md
You can get the old behavior by passing  verbose=2 to .fit(), e.g. model_1.fit(x=train_ds, verbose=2)
(Closing this, though the examples need to be updated.)

Hi @semenko,
The 0.2.2 release changed the training log system to make it more similar to other Keras models. The amount of printed training logs is controlled by the verbose constructor or fit arguments as follow:
verbose=0 => No training logs.
verbose=1 (default) => a little bit of training logs.
verbose=2 => All the training logs.
Notably, "with sys_pipes():" is not required anymore.
In your case, replace
model = tfdf.keras.GradientBoostedTreesModel()
with sys_pipes():
    model.fit(train_ds)

by
model = tfdf.keras.GradientBoostedTreesModel(verbose=2)
model.fit(train_ds)


Issue with Onyxia ENV Configuration

I am facing a popup error as shown in the following image:

I have made changes to the values.yaml file in order to add the missing environment variables. However, I am uncertain about the URL to use because I have set up an ingress for the front-end, but I don't know the URL for the API. Can someone please assist me?
serviceAccount:
  clusterAdmin: true
ingress:
  enabled: true
  ingressClassName: nginx
  hosts:
    - host: onyxia.$DOMAIN
  tls: # Adding TLS configuration
    - secretName: tls-secret
      hosts:
        - onyxia.$DOMAIN
ui:
  env:
    ONYXIA_API_URL: https://onyxia.$DOMAIN/api
    KEYCLOAK_REALM: datalab
    KEYCLOAK_URL: https://auth.$DOMAIN/auth
api:
  env:
    security.cors.allowed_origins: "*"
    authentication.mode: openidconnect
    keycloak.realm: datalab
    keycloak.auth-server-url: https://auth.$DOMAIN/auth
  regions:
    [
       {
          "id":"demo",
          "name":"Demo",
          "description":"This is a demo region, feel free to try Onyxia !",
          "services":{
             "type":"KUBERNETES",
             "singleNamespace": false,
             "namespacePrefix":"user-",
             "usernamePrefix":"oidc-",
             "groupNamespacePrefix":"projet-",
             "groupPrefix":"oidc-",
             "authenticationMode":"admin",
             "expose":{
                "domain":"lab.$DOMAIN"
             },
             "monitoring":{
                "URLPattern":"todo"
             },
             "cloudshell":{
                "catalogId":"inseefrlab-helm-charts-datascience",
                "packageName":"cloudshell"
             },
             "initScript":"https://inseefrlab.github.io/onyxia/onyxia-init.sh"
          },
          "data":{
             "S3":{
                "URL":"todo",
                "monitoring":{
                   "URLPattern":"todo"
                }
             }
          },
          "auth":{
             "type":"openidconnect"
          },
          "location":{
             "lat":48.8164,
             "long":2.3174,
             "name":"Montrouge (France)"
          }
       }
    ]

Did you actually replace the $DOMAIN?

Yes of course

Hi! In my experience this error message occurs even though the onyxia-api is up, but the response is unsuccessful.
Two suggestions from me is to:

Check the network tab in you developer tools in the browser to see if the request contains any information about the error
Check the logs of onyxia-api.

More general i think this issue should be renamed (or a new issue should be created) with subject "better error messages in UI when request to onyxia-api is unsuccessful )

@GuillaumeDorschner you can come to our slack if you need help, you will find the link on our web site https://www.onyxia.sh/