Support SetContext method on *ghttp.Request to intergrate with opentelementry

1. What version of Go and system type/arch are you using?
go 1.14, linux/amd64
2. What version of GoFrame are you using?
v1.14.5
3. Can this issue be reproduced with the latest release?
yes
4. What did you do?
I want to use opentracing or opentelementry with goframe
5. What did you expect to see?
I want to implement a middleware intergrated with opentelementry, but context of ghttp.Request can not be assigned by generated new ctx, so when we try to begin a new tracing context like
ctx := r.Context() // r is *ghttp.Request
ctx = global.TextMapPropagator().Extract(ctx, &metadataSupplier{
        metadata: metadata,
    })

how can we pass the new context to following handler methods?
I hope, ghttp.Request  can provided a public method like
func (r *Request) SetContext(ctx context.Context) {
	r.context = ctx
}

If so, the tracing context can be passed to following handler methods
6. What did you see instead?
context of ghttp.Request can not be assigned directly, it's really hard to intergrate opentelementry with goframe, the context usage is different from others like in gRPC or other frameworks

@isword123 The ghttp.Request is inherited from net/http.Request, so you can use r.Request = r.WithContext(ctx) change its underlying conetxt. Thanks for your proposal, I'll add a new method r.SetCtx for convenience.

Thank you for your advice. I'll try with this method.


[Question] What are Notification used for?

Hello,
I'm trying to figure out what are notifications used for? Can someone share is knowledge on the topic please? thanks for any info you could provide on this.
Alex

A notification is a change to a viewmodel, it contains always the whole new state of the vm.
This is helpful for tests, and if you want to send the actualized viewmodel to a user (i.e. via socket.io)

thanks for the clarification.


Checkout button issue

Hello!
I've been following your tutorial on Gatsby e-commerce, and noticed an issue with the "Checkout" button on your advanced cart tree.
I fired it up, and with nothing added to the cart, the button was enabled still by default.
On the advancedCheckout.js component you use props.cart.length frequently for different functionality (like disabling the checkout button). However, because the cart is initially an empty array (here on line 7), when I console.log(props.cart) I get both the empty array and then the updated array. (screenshot attached)
Due to the cart returning an empty array first before the component mounts, it's producing inconsistent results when checking the length of props.cart

Hi @good3n yah, the integration wasn't great. I'm actually working on a refactor and using a react cart library: https://github.com/thorsten-stripe/ecommerce-gatsby-tutorial/pull/24


Invalid redeclaration of 'bundle' on v7.x

Due to some constraints on our CICD, we need a folder reference inside the xCode project with name bundle. R.swift generates a bundle reference as a file which conflicts with the actual bundle
  /// This `_R.file` struct is generated, and contains static references to 32 resource files.
  struct file {
    let bundle: Foundation.Bundle

 ....
     /// Resource file `bundle`.
    var bundle: RswiftResources.FileResource { .init(name: "bundle", pathExtension: "", bundle: bundle, locale: LocaleReference.none) }
  }

bundle is actually a non empty folder. Shouldn't even be generated as a file. My current solution is to just skip file generation:
"$PODS_ROOT/R.swift/rswift" generate --generators image,string,color,font "$SRCROOT/R.generated.swift"

Thanks for the report.
I thought of this issue when building this feature, then promptly forgot about it again. 🤦♂
The name "bundle" (and other names conflicting with pre-defined members) should never be generated.


2f140 causing segmentation fault

Describe the bug
After installing in python2.7 with virtualenv on Mac OS Sierra, I get the following error on the block_stacking example script:
pybullet build time: Mar 28 2020 16:47:39
Version = 4.1 NVIDIA-10.17.5 3<IP_ADDRESS>f01
Vendor = NVIDIA Corporation
Renderer = NVIDIA GeForce GT 750M OpenGL Engine
b3Printf: Selected demo: Physics Server
startThreads creating 1 threads.
starting thread 0
started thread 0
MotionThreadFunc thread started
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: ee_link
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: base
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: tool0
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: left_inner_finger_pad
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: right_inner_finger_pad
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: ee_tip
Fatal Python error: Segmentation fault

Current thread 0x000070000201a000 (most recent call first):
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 158 in get_pos
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 214 in _set_rest_joints
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 207 in _th_mimic_gripper
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763 in run
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810 in __bootstrap_inner
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 783 in __bootstrap

Thread 0x00007fffb8ec43c0 (most recent call first):
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/utils/common.py", line 353 in list_class_names
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/sensor/camera/__init__.py", line 6 in <module>
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/__init__.py", line 136 in __init__
  File "block_stacking.py", line 15 in main
  File "block_stacking.py", line 58 in <module>
Segmentation fault: 11

It only errors on "ur5e_2f140" not "ur5e_stick". The end effector is causing problems.
Additionally, when I break into the line right before the error:
File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 158 in get_pos

I can call getJointInfo successfully on the same self.robot_id and jnt_id for which getJointState fails:
self._pb.getJointInfo(self.robot_id, jnt_id)
(Pdb) (12, 'finger_joint', 0, 13, 12, 1, 0.0, 0.0, 0.0, 0.7, 1000.0, 2.0, 'left_outer_knuckle', (-1.0, 0.0, 0.0), (-8.625e-08, -0.030596341699999998, 0.023455000000000004), (0.9119033508710461, 0.0, 0.0, -0.4104050178423233), 11)

So the joint exists, is loaded from the URDF, yet we can't read the state...
Expected behavior
The script should complete the block stacking behavior in pybullet.
Desktop (please complete the following information):
Mac OSX 10.12 Sierra

I bypassed this issue by commenting out lines 78-80 here:
https://github.com/Improbable-AI/airobot/blob/5f9c6f239a16f31f8923131e144b360f71a89a93/src/airobot/ee_tool/robotiq2f140_pybullet.py#L78
But of course, this means only one finger is actuated. Maybe there is a way to do the mimicing without a new thread?

There are some discussions on how to model mimic joints in pybullet here. It's possible to model it using addConstraint. I tried a little bit but didn't make it work. Maybe you can have another try, and pull requests are always welcomed.
Do u have any intuition on why creating a thread will cause seg fault on Mac? Maybe we can switich to use a multiprocessing module instead?

I didn`t find this problem in windows. Does it fixed or just I am lucky?


Proposed: Set guest default to false

Change default for guest access to "false" and inform users about setting it to true in the docs?
There is much discussion of this setting currently so I thought I'd submit.

Hi @cogneato,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

Isn't this a duplicate of #311 @cogneato ?

Yeah it's a duplicate. We should get going on merging that one.


feat(security): use https by default

Originally the fact to use the page protocol or http by default was made
to speed up first requests to avoid initiating an https connection.
Nowadays this is no more of a big issue performance wise (citation
needed), but security wise, the use of http by default combined with
JSONP can be a big issue of MITM attacks.

Releasing tomorrow

Is it released?

@asurak ready to release but just now had a doubt if this might not accidentally suppress the error when people run any of the methods we guard to only run on https

Never mind, was confused. That error is in the server, and that's why I didn't find it in the code base 👍

3.25.0


Use alternate candidate search (#363)

Update matching: v4.3.2-alpha.7

create new matchPackage CONTENTALT, that uses several tiers of search queries for content match (title, author, publishing year) candidateSearch and errors only if all of these result in tooManyCandidates

Update deps

3.5.0-alpha.2

[MRA-765] edit config to fix maxCandidates=1 for CONTENTALT


⚠ TorrentLeech has degraded performance

In 48f1a8e, TorrentLeech ($TL) experienced degraded performance:

HTTP code: 200
Response time: 5239 ms

Resolved: TorrentLeech performance has improved in b6a7f7a after 245 days, 18 hours, 13 minutes.


Update program description field to use new short description field

The field that the program description uses will be updated in the #8243 work. We need to update the field to use the shorter description field that will be added.
Done when:

[ ] Program description field uses the new short description field
[ ] Application flows display the short description text, and falls back on the long description if the short description is empty

[ ] Long description text will be truncated to 150 characters with an ellipsis ...

@sijiayam can we close this issue as a duplicate of https://github.com/orgs/civiform/projects/1/views/94?pane=issue&itemId=85441842&issue=civiform|civiform|9089?


Empty reports and disabled pip and python analyzers

I am running DependencyCheck (v6.5.0.) CLI in Azure DevOps to scan python scripts for vulnerabilities. I used the option --enableExperimental to enable the Python and Pip analyzers. However, the plugin produces empty reports

Looking at the logs, I checked that the analyzers are indeed enabled

However, further in the log, I noticed that the analyzers have been skipped

This is the command I am using in the Azure DevOps pipeline (I am not using the extension)
dependency-check.sh --project 'testing_owasp' -l '$(System.DefaultWorkingDirectory)/log.txt' --enableExperimental --format 'ALL' --scan $(System.DefaultWorkingDirectory)/**/* --data "$(System.DefaultWorkingDirectory)/owasp-cache/depcheck-v6" --noupdate --disableOssIndex
Notice that I am using a local database since I am working in an air-gapped environment.
Do you know why are the analyzers skipped ?
Thanks !

Any hints ?

How have you defined your dependencies? using a requirements.txt and/or  a PipFile?....
https://github.com/jeremylong/DependencyCheck/blob/5beebdf2b24dbeecd4725912d7872665a5449b5b/core/src/main/
java/org/owasp/dependencycheck/analyzer/PipAnalyzer.java#L62
https://github.com/jeremylong/DependencyCheck/blob/5beebdf2b24dbeecd4725912d7872665a5449b5b/core/src/main/java/org/owasp/dependencycheck/analyzer/PipfileAnalyzer.java#L62

also see https://github.com/jeremylong/DependencyCheck/blob/main/src/site/markdown/analyzers/pip.md and https://github.com/jeremylong/DependencyCheck/blob/main/src/site/markdown/analyzers/python.md

I used a requirements.txt file with a known vulnerability of pillow==2.5.0 to test the plugin

Sorry about the delay - my best guess would be that --scan $(System.DefaultWorkingDirectory)/**/*  from your command is not being interpreted correctly. Leave the /**/* off as it is not needed.


⚠ Bofrost.de has degraded performance

In 5490592, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1720 ms

Resolved: Bofrost.de performance has improved in 8fd8ec8 after 19 minutes.


Document responsive font size

I have idea for a new feature for jQuery Terminal
In Figlet Pipe demo I've added responsive font size with media queries and --size it should be document.
https://codepen.io/jcubic/pen/vYLvvXx?editors=0110
This is important for big screens, default font is way to small for big screens

Alternative is:
@media (min-width: 800px) {
    :root {
        --size: 1.2;
    }
}
@media (min-width: 1200px) {
    :root {
        --size: 1.5;
    }
}


Flone Scans

Source information
Manga Flame
Source language
English
Source new URL
https://mangaflame.org/
Other details
No response
Acknowledgements

[X] I have updated all installed extensions.
[X] I have opened WebView and checked that the source URL has not changed yet.
[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I will fill out all of the requested information in this form.

Add a :+1: reaction to issues you find important.

You opened the same issue request yesterday & was told by the bot that this source already exists in our repo, learn to read the bot message.
The extension is called Manga Flame, as it says in the bot message above.


Unable to validate Collection length > 0 client side

I am currently leveraging FluentValidation in an MVC 5 application and am experiencing an issue where I'm initializing a NotEmpty validator for a property of type List as follows:
this.RuleFor(x => x.IntList)
      .NotEmpty()
      .WithLocalizedMessage(() => Resources.Errors.Required);

I am not seeing any validation attributes on my  element client side and am not getting IsRequired =true in my model metadata for that property. Any guidance would be more than welcome.

UPDATE: It seems as though the validator for the model containing the lists is never instantiated but the validator for a complex object property is...
public ModelValidator()
{
    this.RuleFor(x => x.ComplexProperty).SetValidator(new SubModelValidator());

    this.RuleFor(x => x.IntList)
          .NotEmpty()
          .WithLocalizedMessage(() => Resources.Errors.Required);
}

The both the Model and ComplexProperty types are decorated with the correct Validator attributes.

I found my issue...Silly mistake on my part.


NODE_ENV=production is not supported in the .env file

Describe the bug

Reproduction
https://github.com/lixiaofa/vant-sku-next
Steps to reproduce
pnpm dev
System Info
"vite": "^4.0.0",

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

It's supposed to be not supported as the error mentioned. vite build will make a production build by default.

What should I do？
@bluwy

Remove NODE_ENV=production in .env.production, add NODE_ENV=development in .env.development


I can't delate the folder of the installation

Body
When i deleted the folder , i lost the extension on chrome
Version
0.0.0
What browsers are you seeing the problem on?
Chrome
What OS are you seeing the problem on?
Windows
Anything else?
thanks for your attention

This is a normal side effect, unlike extensions that are installed straight from the store, sideloaded extensions require the core files to always be intact (meaning you can't delete the folder).
I recommend downloading the extension again and saving it in a place where you don't need to delete it, then load the unpacked extension,


Drop the action parameter logic doesn't work when path is broken

Describe the bug
When the answerId, answerLoadAsCurrent are present in url and the path is broken - it causes a race condition and so answer doesn't loading correct (sometimes correct).
To Reproduce
Steps to reproduce the behavior:
As usual

Go to this page
Then I see "1234567" answer

Expected behavior

When the path is broken and answerId, answerLoadAsCurrent are present in url - it must load correct result
Cover case by e2e test

Screenshots

This is a quite minor issue.


Make the data presentable

Once the data is accessible, it needs to be presented in a way that is user-friendly and appropriate for the audience.
An example of this is from the New York Times article on the measles vaccine story.

While a map would be nice, a simple grid output would be appropriate, searchable and rank schools in the district.

Traced the SVG to TopoJSON(https://github.com/mbostock/topojson). Exploring its APIs.
Will work the DB into JSON structure for it to consume but might be needing location reference. POC will be shown off of search page - a select feature for "view map of schools"


(feature-enhancement) Exclude dynamic classes from getting into selectors

I've a lot of input element of the page with the same class called Input. Also these Input components have a Input-focus classname attached to them when the user focuses the element. Now while tabbing through and filling the forms, this focus class is getting picked up by the recorder. While running the script then, since this dynamic class is not there in the dom, puppeteer is unable to find the input element through the selector.

Might be related to how @medv/finder gives us a selector here.

@tnolet Any thoughts on this? :this

Hey @shobhitchittora this seems like a bit of a corner case, but more control over what classes are used to record clicks etc. is certainly coming. This does not guarantee your case will work. Honestly, I've never seen extra classes added on focus. Normally you add a pseudo class, i.e. :hover etc. to change styling.


[Mobile] Dependency conflict issues with i18n_extension: ^6.0.0

My issue is about [Mobile]
We are having dependency conflict issues with i18n_extension: ^6.0.0. This is causing a conflict with sprintf: ^6.0.0 on our end, which in turn causes us to downgrade analyzer to version 5.3.0, which then does not allow us to run flutter packages pub run build_runner build --delete-conflicting-outputs.
Downgrading i18n_extension to  ^5.0.1 resolves all this issue.
Flutter Version: 3.3.10

Try bumping sprintf

Yes, so we did that and that was what was causing an issue with analyzer.


net/wireguard - add option to enable verbose logging

While debugging a production WireGuard setup I found myself repeatedly enabling verbose logging in /etc/rc.conf.d/wireguard. So let's add that to the UI, now shall we? ;)
Kind regards,
Patrick

So what do you think about my lastest commits?

Totally fine with it, but it needs upstream changes, so WE wait for it?

I already submitted a pull request for our own port. That's why I asked. It will need some watching of where upstream is going with respect to the kernel module, because it only works with the wireguard-go implementation. So I think it's best to keep it local and re-evaluate after we switch to FreeBSD 13 ...

If you don't feel like integrating this just yet, I can close the pull request, of course.
I run some "pure FreeBSD" WireGuard instances too and will have an eye on the kernel module implementation and upstream improvements, anyway. No problem re-visiting our module when the kernel module has become the standard.

If you don't feel like integrating this just yet, I can close the pull request, of course.
I run some "pure FreeBSD" WireGuard instances too and will have an eye on the kernel module implementation and upstream improvements, anyway. No problem re-visiting our module when the kernel module has become the standard.

https://github.com/opnsense/ports/pull/135#issuecomment-966589467


Render customAttrs for Scatter.

Scatter.customAttrs was being ignored by Scatter.view.
The behavior of simply appending the customAttrs was a bit surprising as Svg.Attributes.style does not behave like Html.Attributes.style; In Svg the last style will override the others instead of being accumulated into a list of styles. I've included customAttrs last so that its style takes precedence, which was a bit confusing when it overrode Scatter.fill and Scatter.stroke since those get converted to style.

Hey! Sorry I didn't answer earlier for this - It shouldn't be a problem in the new api!


Support for Falcon-7B

Just to confirm, trl does not support newer models like Falcon-7B, right? I tried to load the Falcon-7B using AutoModelForCausalLMWithValueHead.from_pretrained(), but it throws an error in the PPOTrainer.
Traceback (most recent call last):
  File "/lustre07/scratch/dake1/DeepLearningTrack/RL_BM25/old/train.py", line 85, in <module>
    ppo_trainer = PPOTrainer(config, model, None, tokenizer, dataset=dataset, data_collator=collator)
         File "/lustre06/project/6003284/dake1/ENVs/pytorch2/lib/python3.11/site-packages/trl/trainer/ppo_trainer.py", line 185, in __init__ raise ValueError(
ValueErrorValueError: : ValueErrormodel must be a PreTrainedModelWrapper, got <class 'transformers_modules.mpt-30b-instruct.modeling_mpt.MPTForCausalLM'> - supported architectures are: (<class 'trl.models.modeling_value_head.AutoModelForCausalLMWithValueHead'>, <class 'trl.models.modeling_value_head.AutoModelForSeq2SeqLMWithValueHead'>)

Thanks!

In general, we support all decoder and encoder-decoder models that are supported in transformers. It looks like you are not loading Falcon-7B but transformers_modules.mpt-30b-instruct.modeling_mpt.MPTForCausalLM. Can you share the full code causing the issue or the script you used?

Hi @DakeZhang1998
Thanks for the issue, I think it should be supported out of the box if you load the AutoModelForCausalLM outside the declaration of AutoModelForCausalLMWithValueHead. Can you share the small snippet where you load the model? Thanks!

Sorry for the wrong traceback in my initial post.
I tried to load Falcon-7B using the following code derived from one of your examples.
model = AutoModelForCausalLMWithValueHead.from_pretrained(config.model_name, cache_dir='../../huggingface/',
                                                          trust_remote_code=True, device_map='auto')
ref_model = AutoModelForCausalLMWithValueHead.from_pretrained(config.model_name, cache_dir='../../huggingface/',
                                                              trust_remote_code=True, device_map='auto')
tokenizer = AutoTokenizer.from_pretrained(config.model_name, cache_dir='../../huggingface/')
# GPT-2 tokenizer has a pad token, but it is not eos_token by default. We need to set it to eos_token.
# only for this model.
tokenizer.pad_token = tokenizer.eos_token

# We then build the PPOTrainer, passing the model, the reference model, the tokenizer
ppo_trainer = PPOTrainer(config, model, ref_model, tokenizer, dataset=dataset, data_collator=collator)

I used a cloud machine with two A100 GPUs to do naive pipeline parallelism because one GPU does not have enough memory to fully fine-tune 7B models.
And I got the following error:
Traceback (most recent call last):
  File "/project/6003284/dake1/DeepLearningTrack/RL_BM25/old/train.py", line 86, in <module>
Traceback (most recent call last):
  File "/project/6003284/dake1/DeepLearningTrack/RL_BM25/old/train.py", line 86, in <module>
    ppo_trainer = PPOTrainer(config, model, ref_model, tokenizer, dataset=dataset, data_collator=collator)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/trl/trainer/ppo_trainer.py", line 293, in __init__
    ) = self.accelerator.prepare(
        ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1182, in prepare
    result = tuple(
             ^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1183, in <genexpr>
    self._prepare_one(obj, first_pass=True, device_placement=d) for obj, d in zip(args, device_placement)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1022, in _prepare_one
    return self.prepare_model(obj, device_placement=device_placement)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1275, in prepare_model
    ppo_trainer = PPOTrainer(config, model, ref_model, tokenizer, dataset=dataset, data_collator=collator)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/trl/trainer/ppo_trainer.py", line 293, in __init__
    model = torch.nn.parallel.DistributedDataParallel(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/torch/nn/parallel/distributed.py", line 603, in __init__
    ) = self.accelerator.prepare(
        ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1182, in prepare
    self._log_and_throw(
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/torch/nn/parallel/distributed.py", line 769, in _log_and_throw
    raise err_type(err_msg)
ValueError: DistributedDataParallel device_ids and output_device arguments only work with single-device/multiple-device GPU modules or CPU modules, but got device_ids [1], output_device 1, and module parameters {device(type='cuda', index=0), device(type='cuda', index=1)}.
    result = tuple(
             ^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1183, in <genexpr>
    self._prepare_one(obj, first_pass=True, device_placement=d) for obj, d in zip(args, device_placement)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1022, in _prepare_one
    return self.prepare_model(obj, device_placement=device_placement)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/accelerator.py", line 1275, in prepare_model
    model = torch.nn.parallel.DistributedDataParallel(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/torch/nn/parallel/distributed.py", line 603, in __init__
    self._log_and_throw(
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/torch/nn/parallel/distributed.py", line 769, in _log_and_throw
    raise err_type(err_msg)
ValueError: DistributedDataParallel device_ids and output_device arguments only work with single-device/multiple-device GPU modules or CPU modules, but got device_ids [0], output_device 0, and module parameters {device(type='cuda', index=0), device(type='cuda', index=1)}.
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 36678) of binary: /project/6003284/dake1/DeepLearningTrack/env/py3.11/bin/python
Traceback (most recent call last):
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/bin/accelerate", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/commands/accelerate_cli.py", line 45, in main
    args.func(args)
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/commands/launch.py", line 932, in launch_command
    multi_gpu_launcher(args)
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/accelerate/commands/launch.py", line 627, in multi_gpu_launcher
    distrib_run.run(args)
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/torch/distributed/run.py", line 785, in run
    elastic_launch(
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 134, in __call__
    return launch_agent(self._config, self._entrypoint, list(args))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/6003284/dake1/DeepLearningTrack/env/py3.11/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 250, in launch_agent
    raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
============================================================
train.py FAILED
------------------------------------------------------------
Failures:
[1]:
  time      : 2023-07-13_21:19:47
  host      : gra1342.graham.sharcnet
  rank      : 1 (local_rank: 1)
  exitcode  : 1 (pid: 36679)
  error_file: <N/A>
  traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html
------------------------------------------------------------
Root Cause (first observed failure):
[0]:
  time      : 2023-07-13_21:19:47
  host      : gra1342.graham.sharcnet
  rank      : 0 (local_rank: 0)
  exitcode  : 1 (pid: 36678)
  error_file: <N/A>
  traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html
============================================================

Not sure whether it is caused by Falcon-7B or that I use this framework wrongly. (PS: Is there a way to only print those error messages once? I searched around and haven't found a way to do so.)
Thanks!


chore: better noir sync (DRAFT)

Benchmark results
Metrics with a significant change:

note_history_trial_decrypting_time_in_ms (5): 172 (+83%)
note_trial_decrypting_time_in_ms (8): 107 (+556%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit 8569e7c0 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,636
180,516
720,036

l1_rollup_calldata_gas
222,600
870,984
3,465,588

l1_rollup_execution_gas
315,087
988,724
3,685,245

l2_block_processing_time_in_ms
1,152
4,335 (-1%)
17,213

note_successful_decrypting_time_in_ms
299 (-2%)
961 (-1%)
3,627 (+1%)

note_trial_decrypting_time_in_ms
:warning: 107 (+556%)
92.0 (-8%)
145 (+4%)

l2_block_building_time_in_ms
17,822
70,166
283,849 (+1%)

l2_block_rollup_simulation_time_in_ms
13,081
51,707
209,354 (+1%)

l2_block_public_tx_process_time_in_ms
4,692 (+1%)
18,384
74,219 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
13,812 (-1%)
26,488

note_history_successful_decrypting_time_in_ms
2,311 (-4%)
4,792

note_history_trial_decrypting_time_in_ms
:warning: 172 (+83%)
175 (-2%)

node_database_size_in_bytes
17,322,064
33,017,936

pxe_database_size_in_bytes
29,923
59,478

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
310
44,481
26,193

private-kernel-ordering
194 (+1%)
44,513
14,929

base-rollup
1,410
128,970
881

root-rollup
82.6
4,088
677

private-kernel-inner
415
71,640
26,193

public-kernel-private-input
240
32,615
26,193

public-kernel-non-first-iteration
239
32,657
26,193

merge-rollup
7.63
2,608
881

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
2 leaves
8 leaves
16 leaves
32 leaves
128 leaves
64 leaves
512 leaves
1024 leaves
2048 leaves
8192 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.2
11.3 (+1%)
13.3 (+1%)
17.2 (+2%)
23.0
64.5 (+1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.9
17.5
23.0
31.6
47.0
143
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.594
0.630 (+1%)
0.567 (+1%)
0.530 (+1%)
0.483 (+1%)
0.445 (+1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
N/A
N/A
N/A
75.4 (+1%)
47.5
238
462
898
3,554

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
N/A
N/A
N/A
159
96.0
543
1,055
2,079
8,223

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
0.466 (+1%)
0.487
0.435
0.432
0.428
0.427

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
N/A
N/A
N/A
104 (+1%)
56.6
352 (+1%)
689
1,364 (-2%)
5,387

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
N/A
N/A
N/A
197
104
691
1,363
2,707
10,771

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
0.494 (+1%)
0.495
0.482 (+1%)
0.474
0.474
0.470

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
56.5
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
94.1
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
0.577
N/A
N/A
N/A
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
15,575
37,974

Transaction processing duration by data writes.

Metric
0 new commitments
1 new commitments

tx_pxe_processing_time_ms
546
1,222 (+1%)

Metric
0 public data writes
1 public data writes

tx_sequencer_processing_time_ms
0.492 (-21%)
573


Add a dev cluster type

Add the kind field to the clusters table
Add the dev cluster kind
Separate the dev and non-dev cluster actions

Done in this ticket
https://github.com/UffizziCloud/uffizzi_cli/issues/364


Add a progress bar indicator for record processing

As record processing is an operation that can take an arbitrary amount
of time depending on the size of the file, some users can be frustrated
because they don't know how much time the processing is going to take.
To help with this, add a progress bar indicator that periodically
updates while we are processing records in the FileReader. The class is
updated strategically to avoid impacting the performance of the actual
processing.

I played with this for a while locally. I've pushed some fixup commits that manage to make it much faster, especially in the incomplete file / OOM killer case. Rather than letting Rich decide when to redraw the screen, my version calculates that ourselves, using calls to clock_gettime (which is in the VDSO) rather than making calls into Python code. This winds up being substantially faster, especially when a too-low value was chosen for _update_interval.
Incidentally, I also raised _update_interval from 200 to 100,000. On my WSL box with its relatively slow disk IO, we still process approximately 7,000,000 allocations per second, so at 10 refreshes per second we process ~700k allocations per refresh, which works out to 7 calls to clock_gettime per refresh, which seems like a fair enough price to pay for snappier updates of the progress bar.


404 Not Found: Is modrewrite configured on your system?

404 Not Found: Is modrewrite configured on your system?
Error when trying to register the first user.
Config:
databases:

homeassistant
logins:
username: homeassistant
password: xxxxxx
rights:
username: homeassistant
database: homeassistant

Hi @ricard0g0mes!
What version of the extension are you installing? I just did a fresh install within the devcontainers setup included in this from the tagged 0,1.0.
modrewrite is not used in this addon since it's based on php-fpm + nginx.
Any other information to help debug this would be useful :)

Tell me how can I help debugging.
I'm using rp4 with hassos

Are you able to provide a screenshot of the error?

Here it is

Hi @ricard0g0mes sorry for the delay.
The error is coming from here: https://github.com/emoncms/emoncms/blob/813a02a46bbb16c8d7f326687db97add01743f23/Modules/user/user.js#L59
I'm guessing it's because this URL isn't working http://<hass-host>:9541/feed/list
I'm still unable to reproduce the error :)

It looks fine for me :(

You can try it if you want.

Try to register and the error will come.

disabled ssl and it's working now!
thank you

Hey sorry for getting back to me on this - I was trying to investigate last night but didn't far with it.
I'll add this as a known limitation of something that needs to be worked on as TLS should work.

:(

Hi @ricard0g0mes found the SSL issue I think.
https://github.com/inverse/hassio-addon-emoncms/pull/14 - It was a copy paste error from the base I used for the extension.
Just released 0.1.1  which should solve this.
Could you create a new issue for the next issue you're facing - I'm not a emoncms user so you may have to explain more where this is occurring.


WIP, ENH: Be verbose if fitting ICA on rank-deficient data

@agramfort and I encountered a weird, seemingly inexplicable issue when using ICA for EOG and ECG artifact correction. Turned out – the only reason that lead us to "waste" several hours was simply that the input data was rank-deficient, because it had 3 SSP projection vectors in .info.
I have therefore opted to enhance ICA.fit() such that it would (hopefully) detect such cases in the future, and voice its concerns or even fail hard.
I have added a check_rank=True kwarg to ICA.fit(). If True (default), the user will get an extensive warning if the rank of the data is expected to be NOT full even after the PCA step. The error message contains concrete directions on what to do.
My idea is that this message, for now, remains a warning, and will change to an Exception with 0.23 the latest. In fact, I'd prefer if we immediately made it an exception, because I think we should fail hard in this case; but I assume other devs would be against this, therefore we should probably do a deprecation cycle.
If the user passes check_rank=False, we will still produce a warning, but it won't be as extensive. My reasoning behind this is that it helps ensure that one doesn't accidentally leave check_rank =False in the code after testing something and forgetting about it. Once check_rank=True raises an exception, the behavior difference between check_rank=True and check_rank=False will become more clear.
Todo:

[ ] Amend ICA tutorial
[ ] Amend changelog

Voice call with @agramfort:

don't introduce a new parameter to ICA.fit, but offer more options for ICA.max_pca_components, e.g. 'rank' or 'auto' instead
maybe deprecate max_pca_components=None


Support slashes in recipe name

Hello,
Thank you for your work on tree-sitter-just!
Currently, just supports slashes in recipe names:
# justfile
foo/bar:
  echo baz

However, the above seems to break tree-sitter-just, and syntax highlighting fails.

That sounds easy enough, I didn’t know they were allowed. Any chance you can find a specific list of allowed characters in Just’s documentation?

I found https://github.com/casey/just/blob/master/GRAMMAR.md, which does not explicitly mention that slashes are allowed. According to section 1.8.4 in the just manual, the GRAMMAR.md file is "non-normative."

Thank you for taking a look into this!


How can I extend method

If I need to add a method like encode or fromJSON, what should I do?

Hi, you can try this:
const ExQueryProposalsRequest = {
newMethod() {
return QueryProposalsRequest.fromPartial({});
},
...QueryProposalsRequest,
};
Hope this helps!


API Major rewrite for inclusion into framework

Framework PR will follow later.
Changes:
API Split ConfigCollectionInterface into mutable / immutable
API New CachedConfigCollection behaviour
API Middleware pattern to allow getClassConfig() to be decorated
API Support $class and $name instead of $key for properties
API Revendor from micmania1\config to SilverStripe\Config
BUG Fix support for before:* / after:*
ENHANCEMENT: Allow nulls to replace non-nulls
API Make Priority methods static
API Added shiv for ->update() legacy method
API Drop symfony dependencies to 2.8
API Enable stores and transformers to be constructed as a nested composite object
API Enable deferred loading of private-static classes

Did you mean to include composer.lock here?

The original module had it included. It's for testing only.

I'll take it out; It's probably not needed. :D

@tractorcow can you have a look at Michael's feedback on Monday?
@micmania1 assuming all is well, can you merge this on Monday?

Fixing up feedback now.

@micmania1 I've written up some nice docs on middleware too. :) All points are addressed (except https://github.com/silverstripe/silverstripe-config/pull/4/#discussion_r103094625, which we can talk about Monday).
I'll push up once I check tests are ok.

@micmania1 feedback fixes pushed up as separate commit (for ease of review ^^)
Thanks very much for the review; It's well appreciated friend!

Oh look, it's green. :)


clone_hcc2.sh doesn't work

--- NEW CLONE of repo atmi-staging to /home/<...>/git/hcc2/atmi-staging ----
git clone https://github.com/radeonopencompute/atmi-staging
Cloning into 'atmi-staging'...
Username for 'https://github.com':

I meet the error, too
atmi-staging disappear.

Sorry for the VERY long response to this issue.
We just put a public available version of atmi source.  Please pull updates to the hcc2 repo to get the updates to clone_hcc2.sh.   Then rerun it.


Fix remaining linter warnings

Signed-off-by: Marek Cermak<EMAIL_ADDRESS>modified:   setup.py
modified:   src/toolkit/preprocessing/preprocessors.py
modified:   src/toolkit/transformers/classifiers.py
modified:   tests/test_preprocessors.py

LGTM, thanks a lot.


cloudflare_access_identity_provider with AAD not accepting secrets

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version
Terraform v1.0.10
on windows_amd64

provider registry.terraform.io/cloudflare/cloudflare v4.7.1

Affected resource(s)

cloudflare_access_identity_provider

Terraform configuration files
terraform {
  required_providers {
    cloudflare = {
      source  = "cloudflare/cloudflare"
      version = "~> 4.7"
    }
  }
}

provider "cloudflare" {

}

resource "cloudflare_access_identity_provider" "terminal_cloudflare_identity_provider_aad" {
  zone_id = cloudflare_zone.terminal_default_zone.id
  name       = "CMA B5"
  type       = "azureAD"
  config {
    client_id            = var.terminal_aad_client_id
    client_secret        = var.terminal_aad_client_secret
    directory_id         = var.terminal_aad_tenant_id
    support_groups       = true
    token_url            = ""
    sign_request         = false
    centrify_account     = ""
    issuer_url           = ""
    okta_account         = ""
    centrify_app_id      = ""
    onelogin_account     = ""
    api_token            = ""
    apps_domain          = ""
    email_attribute_name = ""
    auth_url             = ""
    sso_target_url       = ""
    pkce_enabled         = false
    certs_url            = ""
  }
}

resource "cloudflare_zone" "terminal_default_zone" {
  account_id = var.account_id
  paused     = false
  plan       = "free"
  type       = "full"
  zone       = var.terminal_public_domain_name
}

variable "terminal_public_domain_name" {
  type        = string
  description = "The terminal DNS zone (e.g. terminalname.com) name which will be added to the account"
}

variable "account_id" {
  type        = string
  description = "Account ID of the terminal to manage the resources"
}

variable "terminal_aad_tenant_id" {
  type        = string
  description = "AAD tenant ID of the terminal"
}

variable "terminal_aad_client_secret" {
  type        = string
  description = "AAD Client secret of the app registration dedicated for Cloudflare"
}

variable "terminal_aad_client_id" {
  type        = string
  description = "AAD Client ID of the app registration dedicated for Cloudflare"
}

Link to debug output
https://gist.github.com/charlesb87/91337a21e78e4aee1872df355a526bd6
Panic output
No response
Expected output
Cloudflare identity provider for AAD created with secret
Actual output
Cloudflare identity provider for AAD not created, faulty output
Steps to reproduce

terraform init
terraform plan -out my.plan
terraform apply my.plan

Additional factoids
No response
References
No response

thanks for the issue. are you able to do two things to diagnose this further:

run the reproduction case without any other resources. you have a bunch of other resources and these logs don't show the creation/modification of the resource you are raising an issue with here.
remove the unrelated attributes from cloudflare_access_identity_provider resource. you shouldn't be defining values (even empty ones) if you don't need to configure them.

Hey @jacobbednarz  ,
main.tf file:
resource "cloudflare_access_identity_provider" "terminal_cloudflare_identity_provider_aad" {   zone_id = "removed_as_it_is_sensitive"   name       = "CMA B5"   type       = "azureAD"   config {     client_id            = "removed_as_it_is_sensitive"     client_secret        = "removed_as_it_is_sensitive"     directory_id         = "removed_as_it_is_sensitive"     support_groups       = true   } }
providers.tf file:
`terraform {
required_providers {
cloudflare = {
source  = "cloudflare/cloudflare"
version = "~> 4.7"
}
}
}
provider "cloudflare" {
}`
Terraform plan debug output : https://privatebin.charlesborcke.xyz/?6c57d0dc2986bb67#3LooqgBejoav9BfuvynnE4Cz8LqkAAmAsoPP24CFvjzp

It's a fresh creation in fact.

One fun fact, It's working fine using Linux terraform provider, but not on windows.


Workflow hangs when HTTP template is used as exit handler

Summary
When creating a Workflow that uses HTTP Template as exit handler, the workflow hangs in a Running state after the steps are completed, and the exit handler is not run.
This is how the Workflow was left hanging when I ran the reproducible example below:
$ argo get hello-world-d5lpl
Name:                hello-world-d5lpl
Namespace:           default
ServiceAccount:      default
Status:              Running
Conditions:
 PodRunning          False
Created:             Wed Oct 27 18:46:35 +0900 (14 minutes ago)
Started:             Wed Oct 27 18:46:35 +0900 (14 minutes ago)
Duration:            14 minutes 10 seconds
Progress:            1/1
ResourcesDuration:   34s*(1 cpu),28s*(100Mi memory)

STEP                         TEMPLATE      PODNAME            DURATION  MESSAGE
 ✔ hello-world-d5lpl         whalesay      hello-world-d5lpl  26s

 ◷ hello-world-d5lpl.onExit  exit-handler

This workflow does not have security context set. You can run your workflow pods more securely by setting it.
Learn more at https://argoproj.github.io/argo-workflows/workflow-pod-security-context/

HTTP Template steps run as expected when used as a regular step (not as an exit handler).
Argo Workflow version is v3.2.3
Diagnostics
I used the following manifest as reproducible example:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: hello-world-
spec:
  entrypoint: whalesay
  onExit: exit-handler
  templates:
  - name: whalesay
    container:
      image: docker/whalesay:latest
      command: [cowsay]
      args: ["hello world"]
  - name: exit-handler
    http:
      url: https://example.com

The workflow YAML including the status:
$ kubectl get -o yaml workflow/hello-world-d5lpl
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  creationTimestamp: "2021-10-27T09:46:35Z"
  generateName: hello-world-
  generation: 5
  labels:
    workflows.argoproj.io/phase: Running
  name: hello-world-d5lpl
  namespace: default
  resourceVersion: "4227492"
  uid: c62834cf-4d78-4db2-9a12-2b28ca4bd797
spec:
  arguments: {}
  entrypoint: whalesay
  onExit: exit-handler
  templates:
  - container:
      args:
      - hello world
      command:
      - cowsay
      image: docker/whalesay:latest
      name: ""
      resources: {}
    inputs: {}
    metadata: {}
    name: whalesay
    outputs: {}
  - http:
      url: https://example.com
    inputs: {}
    metadata: {}
    name: exit-handler
    outputs: {}
status:
  artifactRepositoryRef:
    artifactRepository: {}
    default: true
  conditions:
  - status: "False"
    type: PodRunning
  finishedAt: null
  nodes:
    hello-world-d5lpl:
      displayName: hello-world-d5lpl
      finishedAt: "2021-10-27T09:47:01Z"
      hostNodeName: kind-worker
      id: hello-world-d5lpl
      name: hello-world-d5lpl
      outputs:
        exitCode: "0"
      phase: Succeeded
      progress: 1/1
      resourcesDuration:
        cpu: 34
        memory: 28
      startedAt: "2021-10-27T09:46:35Z"
      templateName: whalesay
      templateScope: local/hello-world-d5lpl
      type: Pod
    hello-world-d5lpl-623060013:
      displayName: hello-world-d5lpl.onExit
      finishedAt: null
      id: hello-world-d5lpl-623060013
      name: hello-world-d5lpl.onExit
      phase: Pending
      startedAt: "2021-10-27T09:47:05Z"
      templateName: exit-handler
      templateScope: local/hello-world-d5lpl
      type: HTTP
  phase: Running
  progress: 1/1
  resourcesDuration:
    cpu: 34
    memory: 28
  startedAt: "2021-10-27T09:46:35Z"

What Kubernetes provider are you using?
I've tried on a GKE cluster and a Kind cluster.
What executor are you running? Docker/K8SAPI/Kubelet/PNS/Emissary
PNS on both cases. The logs below are from the Kind cluster:
# Logs from the workflow controller:
$ kubectl -n argo logs deploy/workflow-controller | grep hello-world-d5lpl
time="2021-10-27T09:46:35.408Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:35.414Z" level=info msg="Updated phase  -> Running" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:35.414Z" level=info msg="Pod node hello-world-d5lpl initialized Pending" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:35.461Z" level=info msg="Created pod: hello-world-d5lpl (hello-world-d5lpl)" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:35.461Z" level=info msg="TaskSet Reconciliation" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:35.461Z" level=info msg=reconcileAgentPod namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:35.471Z" level=info msg="Workflow update successful" namespace=default phase=Running resourceVersion=4227391 workflow=hello-world-d5lpl
time="2021-10-27T09:46:45.462Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:45.462Z" level=info msg="Updating node hello-world-d5lpl message: PodInitializing" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:45.462Z" level=info msg="TaskSet Reconciliation" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:45.462Z" level=info msg=reconcileAgentPod namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:45.476Z" level=info msg="Workflow update successful" namespace=default phase=Running resourceVersion=4227428 workflow=hello-world-d5lpl
time="2021-10-27T09:46:55.477Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:55.477Z" level=info msg="Updating node hello-world-d5lpl status Pending -> Running" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:55.477Z" level=info msg="TaskSet Reconciliation" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:55.477Z" level=info msg=reconcileAgentPod namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:46:55.487Z" level=info msg="Workflow update successful" namespace=default phase=Running resourceVersion=4227463 workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.487Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.487Z" level=info msg="Updating node hello-world-d5lpl exit code 0" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.487Z" level=info msg="Updating node hello-world-d5lpl status Running -> Succeeded" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.487Z" level=info msg="TaskSet Reconciliation" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.487Z" level=info msg=reconcileAgentPod namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.487Z" level=info msg="Running OnExit handler: exit-handler" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.487Z" level=info msg="HTTP node hello-world-d5lpl-623060013 initialized Pending" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.498Z" level=info msg="Workflow update successful" namespace=default phase=Running resourceVersion=4227492 workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.502Z" level=warning msg="error updating taskset" error="failed patching taskset: workflowtasksets.argoproj.io \"hello-world-d5lpl\" not found" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:05.507Z" level=info msg="cleaning up pod" action=labelPodCompleted key=default/hello-world-d5lpl/labelPodCompleted
time="2021-10-27T09:47:15.498Z" level=info msg="Processing workflow" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:15.499Z" level=info msg="TaskSet Reconciliation" namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:15.499Z" level=info msg=reconcileAgentPod namespace=default workflow=hello-world-d5lpl
time="2021-10-27T09:47:15.499Z" level=info msg="Running OnExit handler: exit-handler" namespace=default workflow=hello-world-d5lpl

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

There still seems to be an issue around HTTP Templates and exit handling. While the reproducible example included with this issue does complete, this simple change will make it hang:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: hello-world-
spec:
  entrypoint: whalesay
  onExit: exit-handler
  templates:
    - name: whalesay
      container:
        image: docker/whalesay:latest
        command: [cowsay]
        args: ["hello world"]
    - name: exit-handler
      steps:
        - - name: run-example-com
            template: example-com
    - name: example-com
      http:
        url: https://example.com

It looks like running an HTTP Template within an invocation exit handler template (step or dag) still hangs. I've seen this behavior in v3.8.8 and K8s v1.21.


update phpunit exception assertions

https://github.com/keboola/object-encryptor/pull/6#discussion_r208914436

https://keboola.atlassian.net/browse/PS-442


Add my first file

i have created a new branch, created a file, and made a commit !

I have created a new branch, created a file, and made a commit!


Add questions and answers to a json file

Currently all the question and answer is being stored in a locally created dictionary.
As discussed in meeting, it is decided that we need to store the question and answers in a json file.
This avoids the loss of data incase of bot going offline.

Created json and now storing all the q&a in json instead of runtime memory.
This feature has been approved in meeting and no issues are open now.
Closing this ad discussed.


[Slider] Fix slider disabled onKeydown error

onKeydown shouldn't be boolean

@henryj Thank you.

@henryj


How to run your project

Thanks for your work. I am confused about the complex pipeline, and which dataset should I use? Could you please provide a test instance or a specifc dataset, just like fox in nerfstudio.

Thank you for your insterest and suggestion. We will upload an example to demo the process later.


Add Android Target to Project

Add Android Target to Project
This work is to make Android functional (with some noted workarounds) and get more developer eyes on it.
Changes

Bumped gdxVersion down to 1.11.0 from 1.11.1-SNAPSHOT. This is the highest Android version available at the moment. M1 Mac needs 1.11.1-SNAPSHOT, so I feel we should special case one target or the other.
Targeted Android SDK+build tools v31 as per suggested by libGDX. This requires gradle to use Java 11, but for now we can keep the source at level 1.8.
Also added a Github Action to build APKs on changes to master

Looks good!


Post-processing

This is PR related to https://github.com/webaverse/app/issues/1617
Post-processing can be toggled via button 'k'

Implemented the full version in https://github.com/webaverse/app/pull/1689


client.createDocumentAsync error?

I might just be very tired, but I noticed some unexpected behavior I though I would share to check my sanity/lack of sleep.
If I call : client.createDocumentAsync(collection._self, doc); the promise chain is broken and I get an error that automatidIdgeneration can't be read on undefined. I'm not passing in options as you can see.
However, if I call: client.createDocumentAsync(collection._self, doc,{}); it works fine and continues.
The original call, client.createDocument(collection._self, doc, function (err,doc){}); does not return an error with the same params. From the tests in the core SDK I can't see that  {disableAutomaticIdGeneration: false} is required.
Anyways, great job- thanks for wrapping up the client neatly. Thumbs up!

Hi Iris,
Thanks for reporting the issue. There is a bug now in the promise wrapper that happens with createDocumentAsync without passing options and without having an id property in the document ( I guess that's the case you have and it's the case not covered in tests ).
A fix for this issue will be available with the next release but for now you can continue with the work around you have.

closed with release of 1.0.1


Download all files from a (Commons) category

await wiki.categorymembers('category name')

This lists the member of the category, we already have a method to use name to then download the media (image, audio) ?

Thank you :) 👍🏻


[REQUEST] Auto kick members in specific role when detected voice activity

As the title, I want the bot to auto kick default newly joined members once they join the music channels to prevent audio spam.
Or is there already a way to prevent them from using voice activity?
Since music is in its own dedicated channel.
Running Ubuntu 16.04 Server

You can set the channels permissions to disables everybodys Microphone.

Yeah but then they would use push to talk.

No, if you deny them permission to speak in a voice channel, they won't be able to talk at all.


Palindrome checker using doubly linked list in C++

🚀 Feature
To implement Palindrome checker using doubly linked list in C++
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


VNode children property of type boolean not handled

When searching through VNode children, a boolean value can cause unexpected results.
If the boolean is true (Ex. node.children === true), the short-circuit logic will interpret the children property as being truthy and continue past this check and then attempts to perform array function calls.
(line 179)
 if (!node.children || isStringOrNumber(node.children)) {         return foundNodes       }
Adding a new isBoolean function and modifying the short-circuit logic should prevent this and return the expected results.
function isBoolean (thing) {     return typeof thing === "boolean"; } ... if (isBoolean(node.children) || isStringOrNumber(node.children)|| !node.children) {      return foundNodes }

I've made updates for this in a fork if you would like me to submit a pull request

yeah, would be great. Also with proper test if possible

thanks for the fixes


Suggestion: Add some detailed examples

Hi every authors:
Thanks for developing this very useful and powerful tool in modeling complex landscape genomic, I found it could satisfy my research needs, such as I want to model the effect of different kinds of environmental changes on species.
But it seems there are no available examples here or on the web https://geonomics.readthedocs.io/en/latest/index.html. Maybe It is difficult for beginners like me to get started.
Hope to see it going on.
Best

Hi there!
Thank you. You are completely right! I still need to build some detailed examples into the docs. (I have a placeholder section for this, but have been so busy tying up my dissertation that I have not yet had the time.) That said, a few places to start:

Here's a 5-minute intro video that I prepared for the Evolution conference last year.
The demos subdir has the code for the three examples published in the methods paper.
This is not officially integrated into the Geonomics docs, but here is a repo with some code I developed with colleagues, used in a course at Berkeley.
If you would like specific support then please feel free to email me with some more details about who you are and what research you are trying to develop. I am happy to help you get up and running, or, if time allows, to talk about the potential to collaborate on a project and provide the simulation code.

I hope that helps!
Drew

Hi Drew,
Thanks for your kind reply and instructions.
Please let me email you and I will describe the questions there.
Best!


Add find, position, any, and all

This is an independent implementation from #128, just happened to be developed around the same time.  I think the lack of unsafe is an advantage here, but performance needs to be compared.

I've included some micro-benchmarks here, and made some comparisons with #128.  The biggest differentiator appears to be the choice whether to check for completion within the folder loop, so I'll show each one both ways.  This is running on Fedora 24 on an i7-2600 (4 cores plus HT).
  I think that's probably still the right thing to do in general, but that's just intuition.

@cuviper my thoughts:

I prefer a name like find_any to indicate that the semantics diverge from ordinary find (doesn't necessarily find the first one). Similarly, I'd prefer another name for position.

This is a bit of a tough call but I feel like it should be a principle that if you change from iter to par_iter then it should stop compiling if the semantics are different. (Either because the name is different or because the signature has changed -- the latter is the case with fold.)

I'm torn about the unsafe thing:

Of course less unsafe is good, but the *mut is pretty trivial and it feels like copying around larger values (e.g., a Vec or some such) might be a noticeable cost. I guess if I want to state that I had better construct a benchmark. =)

I agree that loading the "am I done" counter each loop iteration seems better, not sure why I didn't write it that way to start.

I don't really agree about naming, but I don't feel strongly if that's what you want.  To me, the semantic difference is relatively minor, and unsurprising if one thinks about what parallel find implies.

Any suggestion for alt position?  find_any is OK, but I don't like the sound of position_any.

Vec is a bad example for your copy concern, because its data is boxed away unmoved.  I get what you're saying though, but note that the number of copies is at most just the number of splits, something like O(log N).  So I think this a minor overhead compared to the search itself, not worth unsafe hacking.
It can go either way, but for more expensive searches I think we'll want to escape ASAP.

Rebased to solve the merge conflict.

@cuviper

To me, the semantic difference is relatively minor, and unsurprising if one thinks about what parallel find implies.

Yeah, I can't decide how to weigh the convenience that things "just work" versus subtle changes in semantics. Part of my thought process was that it would be useful to also have a find_first that always found the first result -- it would basically keep a counter with the lowest matching index, and cut off searches as appropriate. I'd probably avoid calling that find because it's likely not what you want by default, since it's less efficient. Similarly, one could imagine position_{any,first}, though I agree the names are less good.

Vec is a bad example for your copy concern, because its data is boxed away unmoved.

I'd expect your code to perform as well on vecs, but I tossed it out there because I'd want to at least measure something larger than a word. =) I had planned to do some kind of benchmark using [u32; N] for various values of N (lack of const generics means that would require macros, I guess, but oh well). I also thought it'd be nice to have some benchmarks for things like "match occurs N% of the time".

I get what you're saying though, but note that the number of copies is at most just the number of splits, something like O(log N). So I think this a minor overhead compared to the search itself, not worth unsafe hacking.

Yeah, having slept on it a bit, I'm inclined to say let's just take your branch -- if we find the overhead is a problem for some example, we can move to unsafe code later. I do like having the iterators be largely safe code, as long as there isn't a strong performance case.

I think I'd prefer a Mutex<Option<T>> before dipping back into unsafe code.  I've been bitten too many times by subtle concurrency memory-ordering issues (in other languages), so I'd avoid the risk, even though your unsafe code does look trivially correct.

(I'd still keep the relaxed atomic bool as a hint for early exits, so there wouldn't be a ton of mutex serialization.)

I went ahead and tried it, so we can find a better middle ground. :)  I now have a Mutex around the shared result location, and the rest of the Consumer and Finder implementations are greatly simplified.  I added one more "common" benchmark which looks for any x % 1000 == 999 in the random haystack.
test find::parallel_find_common             ... bench:      20,295 ns/iter (+/- 853)
test find::parallel_find_first              ... bench:      16,082 ns/iter (+/- 412)
test find::parallel_find_last               ... bench:   2,695,487 ns/iter (+/- 947,960)
test find::parallel_find_middle             ... bench:   1,642,146 ns/iter (+/- 631,507)
test find::parallel_find_missing            ... bench:   5,668,282 ns/iter (+/- 6,475,071)

@cuviper

I think I'd prefer a Mutex<Option> before dipping back into unsafe code.

To me it all comes down to benchmarks, but I suspect I am mildly more tolerant of unsafe code, particularly if it is simple. Using both a mutex and an atomic feels sad to me. =) That said, I do appreciate your wariness! Still, I'd probably lean towards your original version or mine.
One thing about mutexes that's worth noting is that their performance varies dramatically on different operating systems-- what O/S were those measurements taken on?
(Also, you could eliminate the possibility of mutex contention by leveraging the atomic a bit better. e.g., use a seq-cst swap, as I did in my code, and then acquire the mutex only if you know that you will be the winner.)

OK @cuviper I went ahead and whipped up some more benchmarks. In particular, I replicated your benchmarks but with data of size 1 (as you had it), 64, and 256. Here are the results, collected into a gist. I did 3 runs of each but just collected the results into a gist. Honestly, I haven't had time to even analyze them yet!

OK, I think the TL;DR is that it doesn't make much difference what scheme we use.  But I'm pretty sure I didn't. Anyway, the source is on my branch; you can switch the impl by changing the #[cfg].

How many cores are you using? The choice of atomic primitive may have different performance behaviors with higher/lower contention.
Anyway, if the performance is in the noise, I like the reduce implementation best, as the semantics are clearer to me and I think it would have the least contention with many cores.

@edre oh yeah should have clarified; this would be an 8x2-core CPU, I believe, running linux. I also agree that the reduce-based version is the best if perf doesn't matter.

@cuviper so I thought about it some more, and I think we should call it find_any. I would like to maintain the principle that if you use par iters, your code either does the same thing, or doesn't compile, modulo atomics and a few other nitpicky things, like float addition not being commutative.
Basically, it seems like switching to par_iter could otherwise introduce a very subtle bug. position is annoying but I'd go for position_any just for consistency and predictability (any_position is a bit more grammatical though).
One other thought I had is keeping find (and position) but "pre-deprecating" it, and referring people to find_any and (position_any) instead.

I suspect I am mildly more tolerant of unsafe code, particularly if it is simple.

You might well be more tolerant, but you're also more aware than most of the gray areas around unsafe code, Mr. Tootsie Pop. :)
I'm moderately OK with unsafe code for memory tricks, like I used to implement par_iter vector, but I'm really wary of hand-written synchronization.

Using both a mutex and an atomic feels sad to me. =)

I suppose, but it's with reason.  The mutex is used to gate concurrent access, as mutexes do.  The atomic is simply a global flag which doesn't need any synchronization since it's only one-way (false->true), and in a looser language I probably wouldn't even use an atomic construct.

One thing about mutexes that's worth noting is that their performance varies dramatically on different operating systems-- what O/S were those measurements taken on?

Linux - Fedora 24 x86_64.  But the performance of this mutex doesn't really matter, as it's only ever called in the race to the finish.  At worst it will only be called once in each rayon thread, and even that is uncontended because I only used try_lock.

(Also, you could eliminate the possibility of mutex contention by leveraging the atomic a bit better. e.g., use a seq-cst swap, as I did in my code, and then acquire the mutex only if you know that you will be the winner.)

This is the sort of thing try_lock already does, at least with Linux futexes.

OK, I think the TL;DR is that it doesn't make much difference what scheme we use.

Thanks for measuring!  I'm not really surprised that these variations are in the noise -- the reduce version has only a handful of copies as I mentioned before, and the mutex version only ever even tries to lock once per thread.  And your version is roughly just an unsafe-hand-rolled equivalent to my mutex version.

So the TODOs:

[ ] Revert to the reduce-based implementation.
[ ] Rename to find_any and position_any
[ ] Add pre-deprecated find and position so users get a clue.
[ ] Incorporate the expanded benchmark sizes.

Anything else?  I'll work on this more tonight...

@cuviper I think I'd leave off the expanded benchmark sizes; maybe incorporate just the macro. The main reason is that the larger sizes take forever to run, and they didn't prove particularly informative.

Thanks for measuring! I'm not really surprised that these variations are in the noise -- the reduce version has only a handful of copies as I mentioned before, and the mutex version only ever even tries to lock once per thread. And your version is roughly just an unsafe-hand-rolled equivalent to my mutex version.

Indeed. It makes sense, but always good to check.

@cuviper (but yes that looks great!)

Looks good to me! Nice.


Training failed

Hi, when I run the script "python conv_qsar_fast/main/main_cv.py conv_qsar_fast/inputs/De-aq.cfg", some minor errors show up. I fixed it and then it runs normally. However, the final results are odd. The training loss never decreases in each CV folder and the predicted values stay all the same. I run it several times but with same results. Don't know why.

Hi,
What were those errors and how did you fix them? It's hard to know what the problem could be without any other information.  I imagine that you are using a newer version of Keras than this code was written for and that could be the root cause.


Confirm Credential removal with a touch

By design all state changes (exception: HOTP counter) should be confirmed by touch. Currently removal of the credential does not have such. To add it.
Connected: https://github.com/Nitrokey/nitrokey-3-firmware/issues/303

https://github.com/Nitrokey/trussed-secrets-app/blob/d1b083dc47d48e40fbec4477b3b2f1d0248a666e/src/authenticator.rs#L436-L464

Wow, I love that diagram. Is it something I can try and fix? I want to contribute to the firmware and this seems to be a good start! I have done embedded security hardware before (Ledger, in C) but am working fulltime in Rust now.

Sure! This is a one-line change, but it needs to be tested / checked for potential implications. Feel free to take it :-)
Let me know if you need any directions. Quick crash course  - you can test all changes live using USB/IP simulation:
$ cargo run --example usbip --features "ctaphid devel"
$ make -f examples/Makefile attach
# run tests
$ cd ../pynitrokey && make secrets-test
# or with pynitrokey as usual
$ pynitrokey nk3 secrets list
# disconnect from the USB server once done
$ make -f examples/Makefile stop
# kill the usb/ip client run by the cargo
# <ctrl+c> or killall

I forgot to mention, that you need USB/IP kernel modules and tools available in your Linux system. I have not tested that with Windows/macOS, but perhaps it would work there too.

If you want to develop with real hardware, this would be the starting point: https://github.com/Nitrokey/nitrokey-3-firmware/blob/main/docs/lpc55-quickstart.md

Yes, you can run it locally, and it could behave like a real connected device. For the real hardware test you would need a "Hacker" variant to flash your build, since only signed firmware is accepted in the sold Nitrokey 3 devices.

Ah that's kinda sad, I was hoping to add more features to the firmware when I would get more experienced, I assumed that since the firmware was open source it would be possible to flash a custom build in some way or another

Ah that's kinda sad, I was hoping to add more features to the firmware when I would get more experienced, I assumed that since the firmware was open source it would be possible to flash a custom build in some way or another

This is not possible for normal Nitrokey 3 devices because they are shipped with secure boot.  But if you order a Nitrokey 3 Hacker device from<EMAIL_ADDRESS>you will get the same hardware without secure boot and can run any firmware you want on it.

Ah that's kinda sad, I was hoping to add more features to the firmware when I would get more experienced, I assumed that since the firmware was open source it would be possible to flash a custom build in some way or another

This is not possible for normal Nitrokey 3 devices because they are shipped with secure boot. But if you order a Nitrokey 3 Hacker device from<EMAIL_ADDRESS>you will get the same hardware without secure boot and can run any firmware you want on it.

I might get back about that later then 👍🏼

I did get the error about USB/IP. I managed to install the driver and now tests seem to run well, so I can begin make the change

I seem to have done it! It was really easy in hindsight, I will make a PR now and we'll see from there. The logs were very clear on where a button was supposed to be pressed.

Here we go: https://github.com/Nitrokey/trussed-secrets-app/pull/93
Ironically, this is my first commit signed with a NitroKey

Wow, that was quick! :)

Also, this USB/IP thing is very new to me but very pleasant to work like this, it this possible on any Rust based embedded hardware/software project? Like using it on a firmware written in Rust for STM32 or something.

This is not related to Rust at all.  You just need a driver that wraps the USB packets in IP packets and sends them to the correct socket.  Rust’s abstractions make it easy to switch out the real USB driver with the usbip driver, but the same principle works for all languages.

@peterwilli
I am glad you like it! We are using this one: https://github.com/sawchord/usbip-device
You may find the examples there interesting. As @robin-nitrokey said you need a proper abstraction, but once this is set up its a breeze.

Wow, that was quick! :)

Also, this USB/IP thing is very new to me but very pleasant to work like this, it this possible on any Rust based embedded hardware/software project? Like using it on a firmware written in Rust for STM32 or something.

This is not related to Rust at all. You just need a driver that wraps the USB packets in IP packets and sends them to the correct socket. Rust’s abstractions make it easy to switch out the real USB driver with the usbip driver, but the same principle works for all languages.

Oh, so you use an abstraction layer in Rust to switch to USB/IP. From what I understand, there's no "emulator" in place that ran the firmware I just tested?

From what I understand, there's no "emulator" in place that ran the firmware I just tested?

Exactly.  The bigger picture is:  We use the Trussed framework for our firmware.  This framework provides abstractions that can be used by applications like the secrets app.  Then there is a runner that provides implementations for these abstractions and defines the available applications.
To run the firmware on hardware, you would use a runner that uses hardware-specific code to implement these abstractions, e. g. accessing the flash chip or the touch button.  But for the usbip simulation, we just use the standard library and the file system to implement them and compile to a native binary.  The advantage is that it is very easy to test, the downside is that we don’t test the low-level components of the firmware.  But for application development, this is typically sufficient.

Oh, that makes sense, so it's a good Swiss Army knife for development, but for testing out actual hardware elements you'd still need a different way to test on an actual device.


fix typo MAILCHIMP_PROXY in spec

minor cosmetic change to a test to fix an inconsistent env variable name.

Thanks!


Release v2.140.0

Closes #1724
Summary

Merge next into master to trigger 2.140.0 release on @latest

Acceptance Test (how to verify the PR)

checks should pass
storybook deploy preview should build/deploy successfully

:tada: This PR is included in version 2.140.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Registering base class data members in Meta

Currently, I'm not able to register to the reflection system a public base class B member when registering a class D derived from B. In code:
struct B { int i; };
struct D : B {};

entt::Meta::reflect<D>("D").data<int, &D::i>("i");

The problem here is that the member variable i belongs to the base class B, not to D directly.
How can I correctly reflect my class D and its inherited member i?

Good point. Thank you. Tagged v3, it will be part of the next major release along with meta.

Works as expected with the current implementation. See branch meta. Your snippet compiles and runs fine now.
Feel free to reopen the issue if you find any other error. Thank you!!


(hardware_layer) Cameras

OpenCV change image processing nodes to use image from topic and change hardware_camera to publish images on topic. Topics can be named like
sensor/data/camera_front
sensor/data/camera_bottom

Closed by #64 #63


luci-app-adblock: Overview tab hangs

Overview tab never loads and reports a TypeError: "result[0].trim is not a function"
package version git-20.311.84795-abf6950-1

Error eventually went away.  Perhaps 'result' was empty over time was filled with something?

Typically an update/caching issue - see #3931 for reference.


Fi 489 - Set first search for diagnosticreport

This pull request sets the first search for diagnostic report sequences to patient+category. It also fixes a bug in the generator that made it not get all the values from a valueset.
Submitter:

[X] This pull request describes why these changes were made
[X] Internal ticket for this PR: https://oncprojectracking.healthit.gov/support/browse/FI-489
[X] Internal ticket links to this PR
[X] Internal ticket is properly labeled (Community/Program)
[X] Internal ticket has a justification for its Community/Program label
[X] Code diff has been reviewed for extraneous/missing code
[ ] Tests are included and test edge cases
[X] Tests/code quality metrics have been run locally and pass

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure
where appropriate, and accomplishes the task's purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure
where appropriate, and accomplishes the task's purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Should this be rebased against the current state of development?  There is a lot of stuff here that looks like its from the unit test work from @Jammjammjamm


[CWS] sync pkg/security/seclwin package before 7.54 freeze

What does this PR do?
This PR simply runs
inv -e security-agent.sync-secl-win-pkg

to sync the seclwin package
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge

/merge


TypeScript Ingestion SDK Generation

Thank you for great work!
Is your feature request related to a problem? Please describe.
TypeScript delivers more concrete type information than python.
As one of the DataHub's main selling point is type safety, I think it would be great to support ingestion for type safe language.
When we think about TypeScript's popularity and its ubiquity, ingesting metadata in type safe way by TypeScript would give DataHub more attention and lead to broaden ecosystem.
Describe the solution you'd like
TypeScript Ingestion SDK Generation (Including No Code Metadata Schema)
Describe alternatives you've considered
Ingestion examples by TypeScript would be helpful.
Not just putting snapshot json, but putting snapshot with proper type definition assisted.
Additional context
May be this would be helpful for type generation.
https://www.npmtrends.com/@chasdevs/avro-to-typescript-vs-@degordian/avro-to-typescript-vs-avro-typescript-vs-avro-tsc

Is there a reason you don't want to or can't use the Python ingestion framework? It currently uses codegen for similar effect, and is fully annotated with Python type annotations (example: https://github.com/linkedin/datahub/blob/master/metadata-ingestion/src/datahub/metadata/schema_classes.py). Those type annotations can be statically checked using a tool like mypy.
At the same time, we'd be happy to accept contributions in this area

@hsheth2
In Python, is it possible to have some code assist on IDE?
At least, I just hope to have full picture of how snapshot structured and how to make snapshot data.
For me, it's bit time consuming to understand actual snapshot structure.
If TypeScript definition can be utilized on this matter, it would be more easier as schema can be described more clear way.
Moreover, you can send snapshot on browser.
Thank you.

The snapshot structure definitely requires a bit of work in order to grok. In brief, we've got MetadataChangeEvents, which each contain a proposedSnapshot that is an "entity type", and each entity has a unique identifier URN and any number of aspects.
As for code assistance in an IDE, I'm using vscode's standard install, and automatically get type hints and completion:

That said, I think having an additional, TypeScript-native interface would be great, and we'd be happy to take contributions :)

@hsheth2
It's seems datahub changes dramatically every release.
Especially, feature like no code schema generation would impact a lot on ingestion part I guess.
Do you think it is right time to investigate TypeScript generation?
Or would it be good for waiting some big changes?

I think that if we do a Typescript SDK, it would be best to rely on codegen so that it can easily stay in sync with the rest of the models. This is the approach that the Python framework takes as well.
Not sure if it’s the right time - my impression is that the Python ingestion framework is working pretty well for people right now.

Hi folks!
We are now managing feature requests through our new portal to improve visibility & prioritize work into our public roadmap. If this request is still relevant, please create a new issue so we can gauge current interest from the Community & prioritize work accordingly.
We'll close out this issue in the meantime. Feel free to reach out to me on DataHub Slack with any questions!


Proxy core native image build optimization

The three docker images built from the proxy core project (no-store, in-memory and dev-mode) are identical apart from the command that gets executed. Yet, when we build them now, the native image gets recompiled. Docker does support incremental builds, it will only re-execute a build stage if the files have changed. The files that are changing are the jars we produce - the contents of the jars are identical but the timestamps of the files in them are different, which changes the jar files. I haven't worked out which timestamps are different and/or why incremental building isn't working for the jar files.
It would be ideal if this didn't happened. There are three possible solutions that I see:

Ensure the jars don't get rebuilt when no source files have changed. There was a point when I had this working. This is the most natural in some ways because the idea is that a full build always gets done with incremental optimisations applied. However, it's very fragile, add a new sbt plugin, or just tiny sbt changes can break it.
Use a different zip implementation that zeros all the timestamps to build jars. This is more stable, though still has some fragility, since there are other reasons the files could change (generate sources including timestamps for example).
Build a base docker image for the proxy core project, and then have separate Dockerfiles that use this image as the starting point. This is guaranteed to work, is not fragile, however, it does mean building these docker images is a two step process, first you need to build the core image, then build the next image. And you can't use the sbt dependency tree to do this, because it will just end up reexecuting the build of the base image each time.

I'm not sure which is the best option.

We could look at using https://github.com/raboof/sbt-reproducible-builds, which will strip the timestamps from jars.
Also wonder if it's worthwhile going even further and seeing what it would be like to have one native image which has all the persistence backends and can be switched into different modes.

Would just need to consider image sizes for that. And yeah we don't necessarily need different images, we could switch entirely using config.

But certainly, for the core build, we could switch to specifying the mode using arguments passed via Kubernetes, rather than in Docker. I think that might be simpler than our current setup.


[INLONG-1916][website] modify the business to InLong Group

Title Name: [INLONG-XYZ][component] Title of the pull request
where XYZ should be replaced by the actual issue number.
Fixes #1916
Motivation
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications
Describe the modifications you've done.
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

Codecov Report

Merging #1917 (ef608e6) into master (f167402) will increase coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1917   +/-   ##
=========================================
  Coverage     12.27%   12.28%
- Complexity     1157     1158    +1
=========================================
  Files           413      413
  Lines         35225    35225
  Branches       5542     5542
=========================================
+ Hits           4325     4328    +3
+ Misses        30130    30127    -3
  Partials        770      770

Impacted Files
Coverage Δ

.../producer/qltystats/DefaultBrokerRcvQltyStats.java
45.70% <0.00%> (+0.39%)
:arrow_up:

...bemq/server/common/heartbeat/HeartbeatManager.java
38.38% <0.00%> (+2.02%)
:arrow_up:

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 f167402...ef608e6. Read the comment docs.


Add API documentation to the Radar

There is a documentation of the REST API available at http://techradar.make-it.io/docs/?url=/docs, but in order to find it I had to read 2 deliverables and even check within the code, so this should be made more explicit in the TechRadar itself by adding (after the About page in the menu) an API page.

Related to #30

This page should be embedded in an iframe inside the app: http://techradar.make-it.io/docs/?url=/docs


cmd/doc: factory methods of a type are not being shown with other methods

What version of Go are you using (go version)?
go version go1.11 windows/amd64

What operating system and processor architecture are you using (go env)?
set GOARCH=amd64
set GOBIN=
set GOCACHE=$HOME\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=$HOME\Devel\Go
set GOPROXY=
set GORACE=
set GOROOT=$HOME\scoop\apps\go\current
set GOTMPDIR=
set GOTOOLDIR=$HOME\scoop\apps\go\current\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$HOME\AppData\Local\Temp\go-build398922042=/tmp/go-build -gno-record-gcc-switches

What did you do?
Ran go doc http.request.
What did you expect to see?
Snippet from go1.10.4 doc http.request's output:
    A Request represents an HTTP request received by a server or to be sent by a
    client.

    The field semantics differ slightly between client and server usage. In
    addition to the notes on the fields below, see the documentation for
    Request.Write and RoundTripper.

func NewRequest(method, url string, body io.Reader) (*Request, error)
func ReadRequest(b *bufio.Reader) (*Request, error)
func (r *Request) AddCookie(c *Cookie)
func (r *Request) BasicAuth() (username, password string, ok bool)

What did you see instead?
The same snippet with Go 1.11:
    A Request represents an HTTP request received by a server or to be sent by a
    client.

    The field semantics differ slightly between client and server usage. In
    addition to the notes on the fields below, see the documentation for
    Request.Write and RoundTripper.

func (r *Request) AddCookie(c *Cookie)
func (r *Request) BasicAuth() (username, password string, ok bool)
func (r *Request) Context() context.Context
func (r *Request) Cookie(name string) (*Cookie, error)

You mean they are not being shown at all.

There is something funky going on here. The go/doc package is not returning the factory methods of the Request type at all. Whereas the 1.10 version does. This seems to be a go/doc issue rather than cmd/doc issue.
Here is a sample reproducer -
package main

import (
	"fmt"
	"go/doc"
	"go/parser"
	"go/token"
	"log"
	"os"
)

func main() {
	include := func(info os.FileInfo) bool {
		return true
	}
	fs := token.NewFileSet()
	pkgs, err := parser.ParseDir(fs, "/usr/local/go/src/net/http", include, parser.ParseComments)
	if err != nil {
		log.Fatal(err)
	}
	astPkg := pkgs["http"]
	docPkg := doc.New(astPkg, "net/http", doc.AllDecls)
	for _, f := range docPkg.Funcs {
		if f.Name == "NewRequest" {
			fmt.Printf("got NewRequest: %v\n", f.Decl)
		}
	}
	for _, t := range docPkg.Types {
		if t.Name == "Request" {
			fmt.Printf("got type Request %v\n", t.Funcs)
			for _, f := range t.Funcs {
				fmt.Printf("func %s\n", f.Name)
			}
		}
	}
}

Output with 1.11 -
got NewRequest: &{<nil> <nil> NewRequest 0xc000cd8e40 <nil>} <-- This got moved to a Func
got type Request [0xc000f11a90 0xc000f11ae0 0xc000688960 0xc0006889b0 0xc000688a00 0xc000ed8c80]
func dummyReq <---- Only internal methods
func dummyReq11
func dummyRequest
func dummyRequestWithBody
func dummyRequestWithBodyNoGetBody
func http2requestWithContext

Output with 1.10.3
got type Request [0xc4210eef00 0xc4210ef180 0xc4210eff90 0xc4210fa000 0xc4211361e0 0xc421136230 0xc421136280 0xc420f7f180 0xc42105ee60 0xc4210ef1d0]
func NewRequest  <--- factory methods get matched
func ReadRequest
func dummyReq
func dummyReq11
func dummyRequest
func dummyRequestWithBody
func dummyRequestWithBodyNoGetBody
func http2requestWithContext
func http2shouldRetryRequest
func readRequest

So, it seems in 1.11, the factory methods detach themselves from the method and remain as a top-level Func.
But then how does godoc work ?  https://tip.golang.org/pkg/net/http/#NewRequest
Both are consumers of go/doc.
@griesemer - Any ideas here ?

Yes, I had thought about that. But then godoc uses the same thing, so it should also have broken. Somehow that doesn't seem to be the case. I will check.

Finally figured it out. This is an issue with the doc.Mode that gets passed to doc.New. cmd/doc uses doc.AllDecls, and godoc uses 0. On passing 0, the factory methods get attached, but on passing doc.AllDecls, they do not get attached because r.Visible(n) evaluates to true and the logic breaks.
So we need to fine tune the logic a bit. But at least the mystery is solved on why cmd/doc and godoc were behaving differently.


DrillPage scroll up seems broken on iOS

🐛 Bug Report
Environment
iOS
Steps to Reproduce

Go to any drill with several steps (variants)
Scroll down
go to the next variant
scroll up

Expected Behavior
You should be able to scrollup
Actual Behavior
The scrolling seems stuck inside the animation
Comment
It could be caused by double nested scrolling

Fixed by #260