Prevent installation of device-incompatible packages

Here is the first draft in solving the issue of packages working only on certain models.
Currently there is still a problem that when someone attempts to install the wrong package (later as a dependency), the fail of the script still marks the wrong rmx-only package to be installed. This causes an conflict with actually supported packages (that use the other rmx-only pkg). Does anyone have an idea on how to solve this?
reMarkable: /home/root/ opkg install rm2-only
Installing rm2-only (0.1.0-1) to root...
Downloading https://rmtestrepo.cosmos-ink.net/rm2-only_0.1.0-1_armv7-3.2.ipk
Your devices got identified as: reMarkable 1.0
You are attempting to install a package that only works on the reMarkable 2.
Collected errors:
 * pkg_run_script: package "rm2-only" preinst script returned status 1.
 * preinst_configure: Aborting installation of rm2-only.
 * opkg_install_cmd: Cannot install package rm2-only.
reMarkable: /home/root/ opkg remove retris
Removing package retris from root...
reMarkable: /home/root/ opkg install retris
Installing retris (0.5.8-3) to root...
Downloading https://rmtestrepo.cosmos-ink.net/retris_0.5.8-3_armv7-3.2.ipk
Installing rm1-only (0.1.0-1) to root...
Collected errors:
 * check_conflicts_for: The following packages conflict with rm1-only:
 * check_conflicts_for:         rm2-only *
 * opkg_install_cmd: Cannot install package retris.
reMarkable: /home/root/

We could probably just ensure the right package is installed in the bootstrap script. Not sure if this is the cleanest possible way though as we would duplicate the version checking. Most people would probably also just install new packages with opkg directly making the fix ineffective for them (though this are probably not many).

should we add rm1-only to packages that aren't rm2 compatible yet? (plato and...?)

This PR isn't ready at the moment. If a user installed a rM 1 package on his rM 2 first, the rm1-only package would fail configuration because of the check, but it would still be technically installed and conflict with any future rM 2 only package (and vice versa ofc).
I'm not sure, but is there another way to prevent installation of these meta packages or make them just block others (triggers maybe)?
Funnily enough, I plan on making plato's input and battery work in a few hours.

Would it make more sense to have the check in preinstall to avoid that?

Would it make more sense to have the check in preinstall to avoid that?
Edit: I see that it is in fact in the preinstall that you have this already, so it should work fine as is.

I thought this as well. But if I exit with an error. The package/dependency will fail, but count as installed the next time.

Would it make more sense to have the check in preinstall to avoid that?
Edit: I see that it is in fact in the preinstall that you have this already, so it should work fine as is.

I thought this as well. But if I exit with an error. The package/dependency will fail, but count as installed the next time.

Hmm odd. I guess the better way would be to have bootstrap install the package by default and use it as a conflicts? So instead of rm1-only/rm2-only the package could be rm1 and rm2 and have packages conflict with rm2.

Would it make more sense to have the check in preinstall to avoid that?
Edit: I see that it is in fact in the preinstall that you have this already, so it should work fine as is.

I thought this as well. But if I exit with an error. The package/dependency will fail, but count as installed the next time.

Hmm odd. I guess the better way would be to have bootstrap install the package by default and use it as a conflicts? So instead of rm1-only/rm2-only the package could be rm1 and rm2 and have packages conflict with rm2.

Thats a good idea as well. It would probably make current packages incompatible/buggy when using an older bootstrap script, but luckily this repo isn't announced yet. So this won't be a problem in my opinion.

Thats a good idea as well. It would probably make current packages incompatible/buggy when using an older bootstrap script, but luckily this repo isn't announced yet. So this won't be a problem in my opinion.

Which is where implementing https://github.com/toltec-dev/toltec/issues/140 is a good idea still. We could also add some generic install scripts to warn users when it's missing.

That's a really good idea. Didn't even think of that idea anymore. The fact that I basically stated the problem, you want solved there, proves your point. :laughing:

I added your suggestions. Haven't tested it out yet.
We should probably take on #140 first and then add an autoinstall of the rm1 or rm2 package to the bootstrap script in this PR.

I think we should just make them two separte server-side-repos (not git repos; maybe keeping the current state for compatibility).
It would basically be an extra entry in the package which would decide where packages will get copied to on the server. the bootstrap would then decide to use an url such as https://toltec-dev.org/rm1/stable/ and so on. Even though we duplicate some files, on the server this could also simply be symlinks to /stable and /testing as before, keeping backwards compatibility and preventing duplicate files on the server.
it's probably cleaner than us trying to hack around the dependencies or similar to convince opkg to not install stuff that's not meant for a certain device.

I think we should just make them two separte server-side-repos (not git repos; maybe keeping the current state for compatibility).
It would basically be an extra entry in the package which would decide where packages will get copied to on the server. the bootstrap would then decide to use an url such as https://toltec-dev.org/rm1/stable/ and so on. Even though we duplicate some files, on the server this could also simply be symlinks to /stable and /testing as before, keeping backwards compatibility and preventing duplicate files on the server.
it's probably cleaner than us trying to hack around the dependencies or similar to convince opkg to not install stuff that's not meant for a certain device.

To elaborate on the previous. Here is a mockup idea of how it could look on the server.
╭─linus@HomeLX /tmp/toltec-dev.org
╰─$ tree
.
└── stable
    ├── Packages
    ├── Packages.gz
    ├── rm1
    │   ├── Packages
    │   ├── Packages.gz
    │   ├── simple_0.1.0-1_armv7-3.2.ipk -> ../simple_0.1.0-1_armv7-3.2.ipk
    │   └── tarnish_2.0.1~beta-3_armv7-3.2.ipk -> ../tarnish_2.0.1~beta-3_armv7-3.2.ipk
    ├── rm1packages
    ├── rm2
    │   ├── Packages
    │   ├── Packages.gz
    │   ├── rm2fb_1.0.0-3_armv7-3.2.ipk -> ../rm2fb_1.0.0-3_armv7-3.2.ipk
    │   ├── simple_0.1.0-1_armv7-3.2.ipk -> ../simple_0.1.0-1_armv7-3.2.ipk
    │   └── tarnish_2.0.1~beta-3_armv7-3.2.ipk -> ../tarnish_2.0.1~beta-3_armv7-3.2.ipk
    ├── rm2fb_1.0.0-3_armv7-3.2.ipk
    ├── rm2packages
    ├── simple_0.1.0-1_armv7-3.2.ipk
    └── tarnish_2.0.1~beta-3_armv7-3.2.ipk

3 directories, 16 files

I excluded the testing-branch in the above. Here are the mock files seen in the tree (all files are empty since that doesn't matter in the mockup): toltec-dev.org.tar.gz
in that example, users would have the following repo urls:

rm1 + rm2 (as now): https://toltec-dev.org/stable/
rm1 only: https://toltec-dev.org/stable/rm1/
rm2 only: https://toltec-dev.org/stable/rm2/

To elaborate on the previous. Here is a mockup idea of how it could look on the server.
╭─linus@HomeLX /tmp/toltec-dev.org
╰─$ tree
.
└── stable
    ├── Packages
    ├── Packages.gz
    ├── rm1
    │   ├── Packages
    │   ├── Packages.gz
    │   ├── simple_0.1.0-1_armv7-3.2.ipk -> ../simple_0.1.0-1_armv7-3.2.ipk
    │   └── tarnish_2.0.1~beta-3_armv7-3.2.ipk -> ../tarnish_2.0.1~beta-3_armv7-3.2.ipk
    ├── rm1packages
    ├── rm2
    │   ├── Packages
    │   ├── Packages.gz
    │   ├── rm2fb_1.0.0-3_armv7-3.2.ipk -> ../rm2fb_1.0.0-3_armv7-3.2.ipk
    │   ├── simple_0.1.0-1_armv7-3.2.ipk -> ../simple_0.1.0-1_armv7-3.2.ipk
    │   └── tarnish_2.0.1~beta-3_armv7-3.2.ipk -> ../tarnish_2.0.1~beta-3_armv7-3.2.ipk
    ├── rm2fb_1.0.0-3_armv7-3.2.ipk
    ├── rm2packages
    ├── simple_0.1.0-1_armv7-3.2.ipk
    └── tarnish_2.0.1~beta-3_armv7-3.2.ipk

3 directories, 16 files

I excluded the testing-branch in the above. Here are the mock files seen in the tree (all files are empty since that doesn't matter in the mockup): toltec-dev.org.tar.gz
in that example, users would have the following repo urls:

rm1 + rm2 (as now): https://toltec-dev.org/stable/
rm1 only: https://toltec-dev.org/stable/rm1/
rm2 only: https://toltec-dev.org/stable/rm2/

I think we should just make them two separte server-side-repos (not git repos; maybe keeping the current state for compatibility).

I'd prefer to avoid two git repos as much as possible. Two server side is okay, but we might want to create a package for handling updating the repo paths so that we have an upgrade path in the future.

I think we should just make them two separte server-side-repos (not git repos; maybe keeping the current state for compatibility).

I'd prefer to avoid two git repos as much as possible. Two server side is okay, but we might want to create a package for handling updating the repo paths so that we have an upgrade path in the future.

Added the ideas above.

I removed the old rmx package in commit 49e06f79
Take a look at commit d949be4c. Maybe polish it, but check whether you agree with the definition of when to use any @Eeems
Take a look at commit f9b68d98 and check if I have made any mistake regarding what device a package supports @Eeems @raisjn and @others
Commit 0292fa03 has the actual new changes. They may need some rework as it's the first draft. Since this changes the folder structure on the server @matteodelabre should take a look. I'm also not sure how I should handle the case of already existing rm1/rm2 sub-folders.

TODO:

[ ] Bootstrap: Automatically point to the correct repo (e.g. https://toltec.delab.re/$toltec_branch/rm1)
[ ] Bootstrap: Upgrade the old repo path (which still works) to the new one ↑
[ ] Require a review from @matteodelabre in the end, since these changes add additional content onto his server.

Added the ideas above.

I removed the old rmx package in commit 49e06f79
Take a look at commit d949be4c. Maybe polish it, but check whether you agree with the definition of when to use any @Eeems
Take a look at commit f9b68d98 and check if I have made any mistake regarding what device a package supports @Eeems @raisjn and @others
Commit 0292fa03 has the actual new changes. They may need some rework as it's the first draft. Since this changes the folder structure on the server @matteodelabre should take a look. I'm also not sure how I should handle the case of already existing rm1/rm2 sub-folders.

TODO:

[ ] Bootstrap: Automatically point to the correct repo (e.g. https://toltec.delab.re/$toltec_branch/rm1)
[ ] Bootstrap: Upgrade the old repo path (which still works) to the new one ↑
[ ] Require a review from @matteodelabre in the end, since these changes add additional content onto his server.

I looked over the commits you called out and they look good.

I looked over the commits you called out and they look good.

@LinusCDE The current build is creating a 500MB archive :/

@LinusCDE The current build is creating a 500MB archive :/

@LinusCDE The current build is creating a 500MB archive :/

Then there is something not using the symlinks properly. Should around 190MB if the symlinks work correctly. Had the same issue when scp'ing. Not sure but the transfer method may need an update to prevent this unnecessary coping.
From the man scp

-r      Recursively copy entire directories.  Note that scp follows symbolic links encountered in the tree traversal.

Though I think the transfer is done with something else. That may need some adjustment as well. The symlinks are relative, so coping them is fine.

@LinusCDE The current build is creating a 500MB archive :/

Then there is something not using the symlinks properly. Should around 190MB if the symlinks work correctly. Had the same issue when scp'ing. Not sure but the transfer method may need an update to prevent this unnecessary coping.
From the man scp

-r      Recursively copy entire directories.  Note that scp follows symbolic links encountered in the tree traversal.

Though I think the transfer is done with something else. That may need some adjustment as well. The symlinks are relative, so coping them is fine.

Third rework (currently in sync with testing-branch). Most of the above will be redundant.

Third rework (currently in sync with testing-branch). Most of the above will be redundant.

@LinusCDE files changed show no changes?

@LinusCDE files changed show no changes?

The last commits reverted all of them. We didn't want to go that route as well, so I wanted to start the architecture approach.
But we haven't decided on the details yet. So the PR will probably be used when this gets done.

The last commits reverted all of them. We didn't want to go that route as well, so I wanted to start the architecture approach.
But we haven't decided on the details yet. So the PR will probably be used when this gets done.

Will be resolved in another pr


Getting errors trying to run model explain this

I'm trying to use model explain this and getting the following error in my talon logs:
2023-12-20 20:08:53.247 ERROR TalonScript TypeError in: /Users/schwa/.talon/user/talon-ai-tools/GPT/gpt.talon:7
2023-12-20 20:08:53.248 ERROR Line 8: user.paste(text: str)
2023-12-20 20:08:53.248 ERROR Line 8:   parameter 1 (text) expects type <class 'str'>, got <class 'NoneType'>

Can you provide more content (ie did the GPT command fail?) Did  any text get pasted? Is it just a type error?

Nothing happened... I just opened the logs and saw that. I tried adding some more logs but didn't see those printed either. I can try again in a few days. I'm also open to doing a screen share/debug if it helps!

Ok, you have pulled the latest version right? Since you say the command model explain this failed but the line number you are quoting is failing within the model ask command in the Talon file.
Do you have your system notifications turned off? Since if your API key isn't defined it will fail and only lets you know via app.notify which calls system notifications. I think this might be an API key issue.
I think this is best to do a quick call if the above info doesn't help. Feel free to PM me on Slack.

I think I see the issue. I don't think you used the proper name for the key.
import os
os.environ["OPENAI_API_KEY"] = "YOUR-KEY-HERE"

In the readme that is the name of the env var, but yours, according to what you sent me on Slack is not the same name.

That could do it! I'll give it a try when I get back. Thank you!

Closing this since I assume it is fixed. If you have issues I will reopen


fix: update to eye v10.19.3

fix: update to eye v10.19.3

:tada: This issue has been resolved in version 16.18.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release
v16.18.1

Your semantic-release bot :package::rocket:


latest branch also not working after editing

Please provide more context info. Can you provide a stripped down XML file that has the content that produces that error.
element-citation editing is a work in progress, so it's likely there are errors related to it. See #238

Guess this is no longer applicable. Closing.


[Runtime] Fix infinite recursion in protocol conformance checking on class Sub: Super.

Conformance checks now walk the superclass chain in two stages: stage 1 only walks superclasses that have already been instantiated. When there's a negative result and there's an uninstantiated superclass, then stage 2 will walk the uninstantiated superclasses.
The infinite recursion would occur in this scenario:
class Super<T: P> {}
class Sub: Super<Sub>, P {}

Instantiating the metadata for Super requires looking up the conformance for Sub: P. Conformance checking for Sub would instantiate the metadata for Super to check for a Super: P conformance.
The compiler does not allow the conformance to come from a superclass in this situation. This does not compile:
class Super<T: P>: P {}
class Sub: Super<Sub> {}

Therefore it's not necessary to look at Super when finding the conformance for Sub: P in this particular case. The trick is knowing when to skip Super.
We do need to instantiate Super in the general case, otherwise we can get false negatives. This was addressed in a80fe85, which walks the full superclass chain during conformance checks, even if the superclass has not yet been instantiated. Unfortunately, that causes this infinite recursion.
This fix modifies that fix to make superclass instantiation conditional. The result is the ability to choose between the old algorithm (which skipped uninstantiated superclasses, albeit somewhat by accident) and the new one. A small wrapper then runs the check with the old algorithm, and then only if the old algorithm fails and there is an uninstantiated superclass, it runs with the new one.
Uninstantiated superclasses are uncommon and transient (you only run into this while metadata is in the process of being constructed) so 99.9999% of the time we'll just run the first stage and be done, and performance should remain the same as before.
rdar://80532245

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 0397ab36c1be518660d1796eb62c3541e83bc1e1

@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - b37252d4185c97563e8add54d65a134a22ef5886

@swift-ci please test linux platform

Build failed
Swift Test OS X Platform
Git Sha - b37252d4185c97563e8add54d65a134a22ef5886

@swift-ci please smoke test macOS platform

@swift-ci please smoke test OS X platform


Error Related to post_routing_pb_pin_fixup.cpp

Describe the bug
I am trying to run a task that involves utilizing dsp in the fabric. I am running the task.conf located openfpga_flow/tasks/benchmark_sweep/mac_units/config/task.conf

To Reproduce
Steps to reproduce the behavior:

Clone OpenFPGA repository and checkout master
Execute OpenFPGA task listed above

Expected behavior
This will fail with the following error.
/research/ece/lnis/Share/OpenFPGA_VTR/vtr-verilog-to-routing/vpr/src/pack/post_routing_pb_pin_fixup.cpp:747 update_cluster_regular_routing_traces_with_post_routing_results: Assertion 'is_single_fanout_pb_pin(const_cast<const t_pb_graph_pin*>(new_sink_pb_pin_to_add))' failed.

@AllenDBoston I see similar issues in VTR community but still have no time to debug.
However, the testcase you mentioned should be under CI's testing coverage. According to CI status, it should be working fine.
https://github.com/lnis-uofu/OpenFPGA/blob/163e94c05c14881453674de999722d969ff94b4f/openfpga_flow/regression_test_scripts/micro_benchmark_reg_test.sh#L3-L21
Can you double check?


changeDetection: ChangeDetectionStrategy.OnPush

When adding this to my component, I'm getting this error:
changeDetection: ChangeDetectionStrategy.OnPush

ERROR TypeError: Cannot read property 'rtl' of undefined

Here is an example of
changeDetection: ChangeDetectionStrategy.OnPush

Similar issue: https://github.com/kekeh/angular-mydatepicker/issues/13


Kubernetes features - deciding which pod runs on which worker

Hi,
I'm exploring kubernetes and I see that when the pod is created, the master automatically assigns it to some worker (I'm guessing randomly) in the cluster.
However, if the worker1 (low CPU specs) gets overloaded it extends the pod to worker2 (high-end CPU specs) eventually. I know that every time the pod will be overloaded and shifted to this high-end worker but still the master always initializes the pod on worker1.
Is there any feature which can allow me to configure the master such that it deploys the pods directly on the high-end worker rather than deploying it on a weak system and then shifting on to a better one?

if you have node pools for high end CPU worker.
you can use nodeSelection in deployment/statefulsets to run the pod in specific pool

@abhaynayak24 can you elaborate on what you mean by analysing the nodes before deploying pods.
Any particular use case.
You can also look into resource request, affinity and taints which will help decide where the pods should be scheduled.

@champsaurav my thought process is something like this
If I can get the CPU usage/Memory usage of all the workers, then I can choose on which node should the pod be deployed according to the pods load.
the other option that I've is to create a database where in I've the final state of pods (which worker the pod runs at maximum load). From this database I can learn and next time when the pod is initialized I can make the master deploy the pod on the final worker directly


recipe/scripts/deactivate.sh: try again

Duh, it helps to actually read the error message properly. Corrected take on #121.
Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


fixed rails new url

the old address redirected me to this url, rails new script couldn't handle that redirect

Weird, works on Rails 3.1.1, merged & pushed though, thanks!


Cannot install with npm v2.0

NPM 2.0 is more strict with semver, so the ~1.9 dependency on phantomjs doesn't match any of the available versions, which are all of the form "<phantomjs_version>-module_version" e.g. 1.9.7-15 is current.
While that versioning is sensible, it causes npm to treat phantomjs as eternally pre-release, so no version of the phantomjs node module satisfies the dependency on karma-phantomjs-launcher.
Ideally the phantomjs team will fix their versions, but in the meantime, could the launcher pin to a particular version e.g "^1.9.7-15" ?

+1

Should be fixed by #70


Magic Link Doesn't validate dummy secret key

✅ Prerequisites

[NO ] Did you perform a cursory search of open issues? Is this bug already reported elsewhere?
[YES ] Are you running the latest SDK version?
[YES ] Are you reporting to the correct repository (magic-admin-python)?

🐛 Description
I tried to put a dummy secret key to magic link for example "123XXX456" which is obviously not a correct secret key, and code passes normally, Code should stop or raise an exception
here is a sample screenshots

code continue execution and validate token and get issuer with the dummy api secret key

🧩 Steps to Reproduce

Initialize a class for magic link
add dummy secret key with try and except as per the attached image
you will find that code is not executing the except for ForbiddenError4.
I can then validate tokens with this dummy secret key

🤔 Expected behavior
Code should stop or execute exception, here is a sample when trying invalid key with javascript, I need to validate the same scenario in python

💻 Code Sample
from magic_admin import Magic
from magic_admin.error import ForbiddenError
class MagicLink:
@classmethod
def initialize(cls):
try:
magic = Magic(api_secret_key="123XXX456")
cls.magic = magic
except ForbiddenError as e: // should be executed
msg = str(e)
@classmethod
def get_magic(cls):
    return cls.magic

🌎 Environment
python 3.9/3.10
MacOs
magic-admin-python latest version

Hey @Youssefnaguib thanks for reporting this? Is the ask that we support adding secret key validation upon Magic client initialization?

Hello Justin
Thank you for your mail,
Yes, this is my question, When I have added dummy secret key, the code continues and didn’t catch an exception or anything,
What is the best way for handling this?
Thanks
Regards
YoussefNaguib
On 19 Dec 2022, at 7:48 PM, Justin Herrera<EMAIL_ADDRESS>wrote:
Hey @Youssefnaguibhttps://github.com/Youssefnaguib thanks for reporting this? Is the ask that we support adding secret key validation upon Magic client initialization?
—
Reply to this email directly, view it on GitHubhttps://github.com/magiclabs/magic-admin-python/issues/48#issuecomment-1358021769, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AZCTHNZ4YP3VUBNPRK7ZJ7TWOCNWFANCNFSM6AAAAAAS7TUKW4.
You are receiving this because you were mentioned.Message ID: @.***>

Hello @Youssefnaguib and thank you for reporting this. We appreciate your feedback! This is expected behavior from the SDK as no calls are made to Magic's API upon instantiation of the SDK. Without making a call to Magic's API it can't be yet known if the API key is valid.


Can't open the panel which is be collapsed if has not set height style to Collapsible

RN Version: 0.38.0
collapsible Version: 0.7.0
If I haven't set height or minHeight style to Collapsible, the collapsed panel can't be opened.
<Button
  onPress={this.togglePanel}
  title="切换Panel"
/>
<Collapsible collapsed={this.state.isCollapsed} style={{ minHeight: 100 }}>
  <Text>我是面板</Text>
</Collapsible>

togglePanel() {
  this.setState({ isCollapsed: !this.state.isCollapsed })
}

Thanks @susan-github !  I was having the same issue but didn't know how to fix it till I saw this!  I'm running the latest React Native.  Adding style={{ minHeight: 100 }} to the <Collapsible/> element seems to fix it.

Hey, this issue has been inactive for long time and will be closed. If the issue still persists feel free to tag me to reopen.


Inline code segments hard to distinguish from regular text

Rendering of inline code blocks surrounded by backticks is weird, see attached example. Letters are colored, while numbers and special characters are black, just as the rest of the text. The code is properly set in a monospaced font, but still hard to distinguish from surrounding text. Would it be possible to adopt the way GitHub renders inline code, that is by changing the background of those segments to some greyish color, maybe the one you already use for listings (such as this)?
Apart from that, the bold highlighting of for may be due to the renderer assuming some sort of default language the snippet is written in? Is it possible to have no default there, so that at least the whole code block uses the blue font color?
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do `\/etc\/.*\/something` eiusmod tempor incididunt
ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
`Bits 12-23 of /proc/0/pagemap entries are about to stop being page-shift some time soon. See the
linux/Documentation/vm/pagemap.txt for details` aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Probably only suitable definitions are missing here that extend the verbatim environment ...
In the meantime, a filter like
function Code(el)
    return { pandoc.RawInline("latex", "\\inlinecode{"), el, pandoc.RawInline("latex", "}") }
end

could help plus this definition
\usepackage{tcolorbox}
\newtcolorbox{codeblock}{enhanced,frame hidden,colback=code,borderline={1pt}{1pt}{border,dotted}}

(to be included via -H)

Rendering of inline code blocks surrounded by backticks is weird, see attached example. Letters are colored, while numbers and special characters are black, just as the rest of the text.

Yes, this is the desired coloring for code. The language is assumed to be Java when no language is selected (e.g. for inline code).

The code is properly set in a monospaced font, but still hard to distinguish from surrounding text.

That's true. Maybe you want to use the built-in highlighting that pandoc provides via skylighting. Please see the section Syntax Highlighting Without Listings in the readme and the Pandoc manual on the topic. As far as I know the pandoc syntax highlighting is only applied to fenced code blocks.

Would it be possible to adopt the way GitHub renders inline code, that is by changing the background of those segments to some greyish color, maybe the one you already use for listings (such as this)?

There was already an issue reported on that topic here: https://github.com/Wandmalfarbe/pandoc-latex-template/issues/42. listings has no way to add a background color to inline code and I'm not convinced of the other solutions mentioned in that thread.

Apart from that, the bold highlighting of for may be due to the renderer assuming some sort of default language the snippet is written in? Is it possible to have no default there, so that at least the whole code block uses the blue font color?

Yes, the default language is Java. My reasoning was that you get good enough highlighting even when no syntax is specified. I deliberately choose this because adding a language attribute on every in line code block is very tedious.
Pandoc does support this via the extension inline_code_attributes:

Extension: inline_code_attributes
Attributes can be attached to verbatim text, just as with fenced code blocks:
`<$>`{.haskell}

I might consider an option to change the default language. That would only work for listings and needs some thought.
In the meantime you can attach a language attribute with the value txt to your code to disable the Java highlighting like so:
This is some text. `This is code for my document`{.txt} This is some text

@Wandmalfarbe I've got the impression the OP was mainly bothered by the fact that inline code does not use a background color like in rendering on Github. Would it be helpful to include a reference to the wrapping in a tcolorbox (or other) like proposed in https://github.com/Wandmalfarbe/pandoc-latex-template/issues/183#issuecomment-682390772 in the Readme.md? This way a coloured background is generated for inline code, and no changes to the template are necessary.


Rename and MoveTo not working under Windows11

Type of issue
Code doesn't work
Description
[Enter feedback here]
I wrote a file renaming utility several years ago using VB.net. I have updated it with new features over the years and as new versions of Windows came out. A few months ago, I started getting "Access to the path 'pathname' is denied" errors on the line using the Rename command. This seems to be after an update on Windows 11 Home. Based on some advice here, I tried changing Rename o Move and MoveTo, both to no avail. What commands actually work to rename files under Windows 11? I have a similar issue with deleting files from a C# app I wrote. I've also tried changing permissions on the folders based on documentation I've seen here and elswehre but nothing seems to work.
Page URL
https://learn.microsoft.com/en-us/dotnet/visual-basic/developing-apps/programming/drives-directories-files/how-to-rename-a-file
Content source URL
https://github.com/dotnet/docs/blob/main/docs/visual-basic/developing-apps/programming/drives-directories-files/how-to-rename-a-file.md
Document Version Independent Id
ef935b89-2a27-e760-c768-b85409f0b4d3
Article author
@KathleenDollard
Metadata

ID: de22554d-f31b-bcea-5cbb-218e64729bb4
Service: dotnet-visualbasic

Hi @jerryelbow it depends on the place you're trying to write files. The example here in this article is indeed very old. Windows has locked down root boot drive access it seems. In explorer I can't event create a file at C:\ but I can create a directory. Saving files from browsing, even exporting an email in outlook, all fail at the root of C:\ but work fine in other places.
To test the API I ran this code, which worked fine. If I changed it to the root of C:\ it does indeed fail.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Const newFileName = "C:\folder1\Test.txt"
    Const renameFileName = "C:\folder1\secondTest.txt"
    Const moveFileName = "C:\folder1\movedTest.txt"

    If My.Computer.FileSystem.FileExists(newFileName) Then My.Computer.FileSystem.DeleteFile(newFileName)
    If My.Computer.FileSystem.FileExists(renameFileName) Then My.Computer.FileSystem.DeleteFile(renameFileName)
    If My.Computer.FileSystem.FileExists(moveFileName) Then My.Computer.FileSystem.DeleteFile(moveFileName)

    Dim newFileWriter = My.Computer.FileSystem.OpenTextFileWriter(newFileName, False)
    newFileWriter.Write("Some content")
    newFileWriter.Close()
    newFileWriter.Dispose()

    My.Computer.FileSystem.RenameFile(newFileName, System.IO.Path.GetFileName(renameFileName))
    My.Computer.FileSystem.MoveFile(renameFileName, moveFileName)
End Sub

Steve;
Thanks for the information. However, my file renaming utility is failing on files in subfolders folders like "V:\Media\CDs\Rock and Roll\Rolling Stones, The\Let It Bleed". I'm not trying to rename files in the root of C:.
Jerry

From: Andy (Steve) De George @.>
Sent: Monday, May 27, 2024 4:09 PM
To: dotnet/docs @.>
Cc: jerryelbow @.>; Mention @.>
Subject: Re: [dotnet/docs] Rename and MoveTo not working under Windows11 (Issue #40319)
Hi @jerryelbowhttps://github.com/jerryelbow it depends on the place you're trying to write files. The example here in this article is indeed very old. Windows has locked down root boot drive access it seems. In explorer I can't event create a file at C:\ but I can create a directory. Saving files from browsing, even exporting an email in outlook, all fail at the root of C:\ but work fine in other places.
To test the API I ran this code, which worked fine. If I changed it to the root of C:\ it does indeed fail.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Const newFileName = "C:\folder1\Test.txt"
Const renameFileName = "C:\folder1\secondTest.txt"
Const moveFileName = "C:\folder1\movedTest.txt"
If My.Computer.FileSystem.FileExists(newFileName) Then My.Computer.FileSystem.DeleteFile(newFileName)
If My.Computer.FileSystem.FileExists(renameFileName) Then My.Computer.FileSystem.DeleteFile(renameFileName)
If My.Computer.FileSystem.FileExists(moveFileName) Then My.Computer.FileSystem.DeleteFile(moveFileName)

Dim newFileWriter = My.Computer.FileSystem.OpenTextFileWriter(newFileName, False)
newFileWriter.Write("Some content")
newFileWriter.Close()
newFileWriter.Dispose()

My.Computer.FileSystem.RenameFile(newFileName, System.IO.Path.GetFileName(renameFileName))
My.Computer.FileSystem.MoveFile(renameFileName, moveFileName)

End Sub
—
Reply to this email directly, view it on GitHubhttps://github.com/dotnet/docs/issues/40319#issuecomment-2134002544, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AH7EJUDKGHFXIQDLK7O74CTZEOHGNAVCNFSM6AAAAABFWIKN76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZUGAYDENJUGQ.
You are receiving this because you were mentioned.Message ID: @.***>

Steve;
Thanks for trying. I never set any of my folders to be protected, much less all of them, under Win 11. The drives are all local, though some are external USB drives. The code works fine on Win 10 and worked fine under Win 11 until some update happened at some point. What fun!
Jerry Bell

From: Andy (Steve) De George @.>
Sent: Wednesday, May 29, 2024 2:31 PM
To: dotnet/docs @.>
Cc: jerryelbow @.>; Mention @.>
Subject: Re: [dotnet/docs] Rename and MoveTo not working under Windows11 (Issue #40319)
I couldn't really say if there's a difference between WIn11/10. If you're using a netword drive for example it would be up to the file server to accept or deny your rename request. Or if the folder is under the Protected Folders list Win11 has, or something like that.
I don't think there's anything in the docs I can update to address your issue 😦
—
Reply to this email directly, view it on GitHubhttps://github.com/dotnet/docs/issues/40319#issuecomment-2138026056, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AH7EJUBTR52N6PME7QIA37LZEYNI5AVCNFSM6AAAAABFWIKN76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZYGAZDMMBVGY.
You are receiving this because you were mentioned.Message ID: @.***>

@jerryelbow I totally get it. I would use the feedback hub in Windows to see if you can report it and get someone to look at it. Hopefully the regression is going to be fixed at some point if someone else has reported it, especially those in the Insiders program.


404 error - looks like native-secrets no longer available

output from  make test-all
git clone https://github.com/kickstarter/native-secrets Frameworks/ios-ksapi/Frameworks/native-secrets
Cloning into 'Frameworks/ios-ksapi/Frameworks/native-secrets'...
remote: Repository not found.
fatal: repository 'https://github.com/kickstarter/native-secrets/' not found
make[1]: [secrets] Error 128 (ignored)
if [ ! -d Frameworks/ios-ksapi/Frameworks/native-secrets ];
then
mkdir -p Frameworks/ios-ksapi/Frameworks/native-secrets/ios
&& cp -n Configs/Secrets.swift.example Frameworks/ios-ksapi/Frameworks/native-secrets/ios/Secrets.swift
|| true;
fi
xcodebuild test -scheme Kickstarter-Framework-iOS -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS Simulator, OS:9.3, name:iPhone 6 }
The requested device could not be found because no available devices matched the request.

Available destinations for the "Kickstarter-Framework-iOS" scheme:
	{ platform:iOS Simulator, id:A64A1C8E-8CF6-4034-9D5D-8015FE315B88, OS:10.2, name:iPad Air }
	{ platform:iOS Simulator, id:08D76504-6C4C-40BE-8A77-0A91E651E364, OS:10.2, name:iPad Air 2 }
	{ platform:iOS Simulator, id:3B625A32-BFFF-47F7-A050-8830AB66678C, OS:10.2, name:iPad Pro (9.7 inch) }
	{ platform:iOS Simulator, id:CF9411AA-6A47-4AF9-AC0E-50E6249745E2, OS:10.2, name:iPad Pro (12.9 inch) }
	{ platform:iOS Simulator, id:FB771706-E415-4BCE-8268-CF9830424BB4, OS:10.2, name:iPad Retina }
	{ platform:iOS Simulator, id:E55D6180-D535-4495-A515-CB1572823996, OS:10.2, name:iPhone 5 }
	{ platform:iOS Simulator, id:539BD7CE-725B-4022-B632-15589028DA8C, OS:10.2, name:iPhone 5s }
	{ platform:iOS Simulator, id:6836D9A2-188C-49A3-91B7-B288158B92BC, OS:10.2, name:iPhone 6 }
	{ platform:iOS Simulator, id:37FD242D-910B-4C06-B66D-7FD6473FB08A, OS:10.2, name:iPhone 6 Plus }
	{ platform:iOS Simulator, id:9251A038-47F8-45ED-B806-EECCE8059409, OS:10.2, name:iPhone 6s }
	{ platform:iOS Simulator, id:097FE47F-E23A-438B-8DF5-88EC4EAADB7A, OS:10.2, name:iPhone 6s Plus }
	{ platform:iOS Simulator, id:A9146875-7C3C-44FE-A142-FE728162A1C4, OS:10.2, name:iPhone 7 }
	{ platform:iOS Simulator, id:564D152F-FA64-4DCA-8A3F-DB14C45DEAAA, OS:10.2, name:iPhone 7 Plus }
	{ platform:iOS Simulator, id:6935EC5F-6099-4DCA-AC16-E0AB76F6F59A, OS:10.2, name:iPhone SE }

Ineligible destinations for the "Kickstarter-Framework-iOS" scheme:
	{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device }
	{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device }

make[1]: *** [test] Error 70
make: *** [test-all] Error 2

It seems this error is because you are running xcode 8+, whereas currently we only support xcode 7.3.x and swift 2.2.
We are working on our Swift 3 upgrade now (more here), but in the meantime you unfortunately need to run an older version of xcode :(

Thanks, that explains it. I can wait for the upgrade.


nexctl: use --service-url instead of --host.

also set better usage description for the command.
udpates docs usage.
—host is still supported but deprecated.
rename controllerUrl field to apiURL.

fixes: #1231

sad: now the generate step fails because it's generating the UI files which breaks the lint.


BUG: CI on Azure broken with PyTest 7.1

Seems like the new release of PyTest broke the CI on Azure. Ex. https://dev.azure.com/scipy-org/SciPy/_build/results?buildId=16988&view=logs&jobId=7d84eb14-5b07-5555-8e62-838a7038a2b0&j=ede89041-5e8e-5201-ce5c-f68c2cbf02dd&t=141d9d53-a127-58b4-0262-4b9693c8e91f
E   pytest.PytestUnknownMarkWarning: Unknown pytest.mark.slow - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html

https://docs.pytest.org/en/latest/changelog.html
I am not 100% sure it's due to Pytest, but the timing seems to corresponds.

Yes this was not the case with 7.0.1 but now with 7.1.0 on Azure workflows mark.slow errors out

I did not see any other update of dependencies nor don't see anything we changed recently that could be causing this. But locally I could not reproduce, so not sure.

Adding a milestone to not forget to check this.

Pytest folks detected the problem and relevant change will be soon I presume.

So they fixed it and released 7.1.1. I am not sure what to do between pytest != 7.1.0, pytest >=7.1.1 or just pytest. In the end there is little change a user would get bitten by that and our CI would just pick latest.


Analyzer: null.foo reports no warning

The dart analyzer reports no warnings with this code:
main() {
  null.foo;
}

I would expect: "The getter 'foo' is not defined for the class 'Null'."

I guess you want to enable strong mode https://www.dartlang.org/guides/language/analysis-options

See also #27276

I'm guessing this is what triggered #27276
The problem is that the specification special-cases null to the synthetic bottom type at the type level, so the type Null isn't even part of the analysis here. There is no definition of the capabilities of the bottom type because it doesn't really exist. We need to fix that.

cc @lrhn @eernstg @munificent @floitschG
Should Null allow all methods, or should we forbid this?

The Null class is a class, it has the same methods as Object.
If this is about the null expression, we have changed that, and it's type is now Null, not bottom.
That doesn't completely avoid the problem because (throw 42).method() tries to call method on the bottom type, but it's unlikely to happen much in practice.

Currently both strong and non-strong mode allow this code with no errors:
import 'dart:async';

main() {
  Future<Null> f;
  f.then((x) => x.length);
}

Do we view this as an implementation bug?  WAI?  Or something we need to sort out?

Non-strong-mode is unsurprising, the static type of (x) => x.length is dynamic->dynamic, so it can't trigger any warnings.
Strong mode is wrong. Inference should make x have type Null and Null doesn't have a length getter. The behavior is not even matching original Dart 1 + inference, because in Dart 1, Null was not bottom. The null literal had static type bottom, but the Null type itself was just a class. If you write:
import 'dart:async';

main() {
  Future<Null> f;
  f.then((Null x) => x.length);
}

you should get a warning in non-strong mode (and probably an error in strong mode).
A quick check in dartpad shows that there is no warning, not even in non-strong mode, so yes, I think we do have an analyzer bug here.

The new front end implements the correct behavior for this.  Re-assigning this as an analyzer bug.

This seems to be fixed.

Correction, the original issue still reproduces on recent bleeding edge.  Calling a method on something of type Null seems to have been fixed, but in at least some cases, calling a method on the null literal succeeds.

This was fixed at some point recently; Dart analyzer 2.5.0 reports:

The getter 'foo' isn't defined for the class 'Null'.


Keybind for closing tabs

Requested by Icarus:

Is there a way that closing an NS tab is tied to one key so you dont have to reach halfway across your keyboard to press ctrl+w but instead can just press w (for example) to close the tab? It is something that ive always missed in breeze that has just improved my switch times etc a lot.

I think this is a good idea, but it shouldn't be set by default because that could lead to surprises.

Just from some quick googling, this doesn't seem like it's possible in Chrome due to security concerns. I'm not sure that Breeze has ever had this feature either.

chrome.tabs.remove() should do the trick.


Remove test coverage from ChainerX contribution guide

The ChainerX contribution documentation is obsolete and we agreed that's it's currently not of high importance. This PR simply removes the section.

Jenkins, test this please

Jenkins CI test (for commit 8bf93148e580f902086c3662f4e807e3e1585c5f, target branch master) failed with status FAILURE.

LGTM


packaging.version.InvalidVersion: Invalid version: '0.10.1,<0.11'

This is not a code problem but a packaging package problem
If you get this error, just reinstall packaging version 21.3
pip install packaging==21.3

Intentionally close.


Focus on first element of current step when changing steps

I'm trying to give focus to the first form field on the current step when changing steps. As a default, the focus is on the step button, how can I change it to focus the first form field?
I tried:
onStepChanged: function (event, currentIndex, priorIndex)
{
    $('#wizard .content :input:enabled:visible:first').focus();
}

but this isn't working unfortunately. Is this possible to accomplish?

Reviving topic, i'm still get this issue.
autofocus on input not work.


MIME type problem

I keep getting this error

So I am using trunk to serve a yew application. The point is to call M.AutoInit function from a materialize-css js library.
I have done my research and I notice that the web-server I am using is returning text/html instead of text/javascript
Is there a way I can configure trunk to help me with that?
#[wasm_bindgen(raw_module = "/materializejs/js/materialize.js")]
extern "C"{
    #[wasm_bindgen(js_namespace = ["M"])]

    type M;

    #[wasm_bindgen(static_method_of = M)]
    pub fn AutoInit();
}

pub fn auto_init_elements(){
    M::AutoInit();
}

#[function_component(Loader)]
pub fn load() -> Html{

    let div_ref = use_node_ref();
    {
        let div_ref = div_ref.clone();

        use_effect_with_deps(
            |div_ref|{
                let div = div_ref
                        .cast::<web_sys::HtmlElement>()
                        .expect("div_ref not attached to div element");
                let listener = Closure::<dyn Fn(Event)>::wrap(Box::new(|_|{
                    auto_init_elements();
                    // M::AutoInit();
                    // web_sys::console::log_1(&"clicked!".into());
                }));
                div.add_event_listener_with_callback(
                    "click",
                    listener.as_ref().unchecked_ref(),
                )
                .unwrap();

                move || {
                    div.remove_event_listener_with_callback(
                        "click",
                        listener.as_ref().unchecked_ref(),
                    ).unwrap()
                }

            },
            div_ref
        )
    }
        html!{
        <>
          {"Drop Me!"}

{"one"}

{"two"}

{"three"}

{"view_module"}{"four"}

{"cloud"}{"five"}

        </>
    }
}

I think I'm running into a similar issue with the trunk dev server. I'm simply trying to reference a basic styles.css from the index.html, but the browser rejects to apply it because the http response has the wrong MIME type:

I'm having the same issue

Having very similar issue, chunk outputted by rollup that is not explicitly needed by wasm-bindgen is returned to the browser with the wrong MIME type:

Even though the file extension is .js

Notice this comment: https://github.com/thedodd/trunk/issues/198#issuecomment-886217493
In my case, the file I was imagining to be my js chunk was actually the index.html, since wasm-bindgen didn't require that specific file it was not copied over to the server (/dist) and hence wasn't there to be served.
The MIME type shenanigans actually helped me this time, I can't treat HTML (actual and MIME type text/html) as a .js file!
If you searching through the networking logs for MIME types because the error says 'wrong mime type!', just take a peak at the actual data being send as well :)

heyo


"This CKEditor 4.22.1 version is not secure"

The following message appears as overlay on the text editor area. We updated to Release 6.7.0 which integrates CKEditor 4.22.1

This CKEditor 4.22.1 version is not secure. Consider upgrading to the latest one, 4.24.0-lts.

Is djago-ckeditor upgradeable to CKEditor 4.24.0-lts?

https://ckeditor.com/ckeditor-4/download/
ckeditor 4 LTS is a paid product, so we cannot bundle it in django-ckeditor unfortunately, or that's my understanding.

Oh, i didn't do further investigations. Ok, that argument just closes the ticket :(

We have the same problem, is there nothing that can be done?

I have downgraded a client's project to django-ckeditor=6.6.1 for now. I'm afraid I don't have a better option right now.

I have downgraded a client's project to django-ckeditor=6.6.1 for now. I'm afraid I don't have a better option right now.

Thank you, we too did the same while waiting to find a viable alternative

For now we hide the box but we will examin the possibility to change all RichTextfields to django-ckeditor-5
.cms-admin-modal {   .cke_notifications_area:has(.cke_notification_warning) {     display: none;   } }

For me, it worked like this. Add in admin/base.html
    <style>
        .cke_notifications_area { display: none; }
    </style>

Another solution I discovered is in your Django settings, add or modify this setting:
CKEDITOR_CONFIGS = {
    'default': {
        'versionCheck': False
    }
}

'versionCheck': False should probably be made the default

Oh nice, the versionCheck thing is great.
I think it's not that useful to show this warning ot users when we're bundling a CKEditor version in django-ckeditor itself.
OTOH I understand why the CKEditor folks did this. Also, running software which isn't patched anymore is certainly a risk.
I think we should add the versionCheck: False but also add a system check warning which tells developers that they should think about the consequences of using non-LTS CKEditor 4 in production environments
https://docs.djangoproject.com/en/4.2/topics/checks/

https://ckeditor.com/cke4/release/CKEditor-4.24.0-LTS
CKEditor 4.22.1 really isn't secure. (It always depends on the threat model of course.)
I have implemented the change mentioned above. If anyone wants to propose a different wording or maybe a different solution, please feel free! I don't think I'm willing to include the LTS package in django-ckeditor though since I'm quite sure that this would violate the spirit of the licensing change, and being an open source developer and maintainer myself I'd rather not disregard the licensing choices of others.

I edited: [ config.js ]
With the following:
CKEDITOR.editorConfig = function( config ) {
config.versionCheck = false;
};

@cctslo django-ckeditor 6.7.1 already sets versionCheck = False  by default.

@matthiask This was in response to the general ckeditor error -
["This CKEditor 4.22.1 version is not secure"]
I was leaving this incase someone else ran into that error.

very nice bro!

Another solution I discovered is in your Django settings, add or modify this setting:
CKEDITOR_CONFIGS = {
    'default': {
        'versionCheck': False
    }
}

very nice bro!

It's nice that y'all are posting about that, but you could also just upgrade to django-ckeditor 6.7.1 which already includes this setting.

I simply searched "latestVersion" in ckeditor.js and modified the condition "if(e.secure&&e.latest)" to "if(true)".

I simply searched "latestVersion" in ckeditor.js and modified the condition "if(e.secure&&e.latest)" to "if(true)".

Can confirm this works, bizarre that it came up as an issue for me on a legacy site and you commented 3 hours ago - saved me some hassle so thanks :)

Another solution I discovered is in your Django settings, add or modify this setting:
CKEDITOR_CONFIGS = {
    'default': {
        'versionCheck': False
    }
}

Hahaha, you saved my life, brother


generate-query-string doesn't encode sequential values properly

Sometimes one needs to supply multiple values to a single parameter in a POST request. Currently if a vector is provided in the query map it's incorrectly encoded as is.
The attached patch fixes the problem.
Example -
user> (generate-query-string {:to<EMAIL_ADDRESS><EMAIL_ADDRESS>:from<EMAIL_ADDRESS>;=> "from=e%40g.com&to=%5B%22a%40b.com%22+%22c%40d.com%22%5D"
;; after fix
user> (generate-query-string {:to<EMAIL_ADDRESS><EMAIL_ADDRESS>:from<EMAIL_ADDRESS>;=> "from=e%40g.com&to=a%40b.com&to=c%40d.com"

Awesome, thanks!


ORC-1480: [C++] Fix build break w/ BUILD_CPP_ENABLE_METRICS=ON

What changes were proposed in this pull request?
Pass IOCount to SCOPED_STOPWATCH when counting I/Os.
Why are the changes needed?
SCOPED_STOPWATCH macro was not correctly called when counting I/Os. This breaks build when BUILD_CPP_ENABLE_METRICS is set to ON and fails the unit test as well.
How was this patch tested?
Failed test cases are fixed and all cases pass.

cc @ffacs @coderex2522

+1,LGTM

Thank you @ffacs and @dongjoon-hyun !

I have also backported it into branch-1.9


installation and run

when docker run image
Traceback (most recent call last):   File "/home/keentic_influxdb_exporter.py", line 110, in <module>     infuxdb_writer = InfuxWriter(config['influx2'], config_path)   File "/usr/local/lib/python3.8/configparser.py", line 960, in __getitem__     raise KeyError(key) KeyError: 'influx2'
And crash

@xsiriusx please share your config file

[influx2]
url=http://localhost:8086
For influx v1.x please use "-" as a value
org=keenetic
For influx v1.x please use "username:password" as a token
token=mytoken
timeout=6000
For influx v1.x DB name
bucket=keenetic
[keenetic]
admin_endpoint=http://ipkeenetic:80
skip_auth=false
login=myuser
password=mypass
[collector]
interval_sec=30

this is command for buil docker
git clone you repository

edit config.ini

docker build image

docker run image

maybe something wrong?

@xsiriusx You don't need to pull the repo and build image.
Please follow steps from README.md step by step.


Add layby to parking field

https://wiki.openstreetmap.org/wiki/Tag:parking%3Dlayby
Would be useful to have this value added to the dropdown as it's a useful refinement to a parking object. This is actually used more often than some of the values already included in the parking tag.
https://github.com/openstreetmap/id-tagging-schema/blob/278b0441afe4d34993ac9a409a168241a4a69efd/data/fields/parking.json#L6-L15

Sorry for being late with feedback here after @tyrasd just pushed the requested change.
I just wanted to make sure we have this value explained properly. Or, in case the explanation leaves room for misunderstanding, maybe we should scope this value to the UK where the Wiki says it is most common?
Mind, that we cannot really look just at the usage numbers, because the tag was (miss)used in the past (more below).
https://github.com/openstreetmap/id-tagging-schema/commit/728cceb27407072c10219f6ed01e0d874b5fb2e3#diff-7d8184601e0b81f317066fbca4f83d67d318a784b0655512f40587c760ac7ad0R16 explains the value with "Turnout" which I don't know as a term (and Google Translate is not help). Is this a term signifying "rest area" or "parking to take a break"?
Background: I remember a recent proposal and discussion that tried to untangle the lay(_|-)by values. Mind, that this values here for key parking (not key parking:lane) is fine; this is just to document the previous and recent discussion and make sure mappers don't misunderstand the value.

https://wiki.openstreetmap.org/w/index.php?oldid=2066642#Relation_to_other_parking.3D.2A_values tries to untangle a bit of history, concluding in deprecating the value for the parking:lane schema
https://wiki.openstreetmap.org/wiki/Key:parking:lane#Parking_position deprecates the tag for parking:lane and also stresses the rest area character of parking=layby
https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dparking explains it with "take a break"

A minimal parking facility alongside a major road where motorists can take a break en-route to their destination.

https://wiki.openstreetmap.org/wiki/Tag:parking%3Dlayby tries to cleanup old tagging with the "when not to use" headline

If you're not familiar, an example of a layby can be found here: https://www.mapillary.com/app/?pKey=1558477194356640

If it where not for the [P] sign I would for sure map this as a highway=passing_place.

Looking at the map, I wonder if we should start by scoping the value to GB and wait for the Finish(?) community to request it as well https://taginfo.openstreetmap.org/tags/parking=layby#map.

If it where not for the [P] sign I would for sure map this as a highway=passing_place.

If it was a narrow road then yes, but it's a two lane road though so you don't need a passing place 😉

"Turnout" which I don't know as a term

I went with the term Wikipedia mentions on https://en.wikipedia.org/wiki/Rest_area#Lay-bys: ‘Equivalent terms in the United States are "turnout" or "pullout".’
I also thought about labeling it as rest area, but I think that could be confusing in case of larger rest areas: “For larger rest-areas separated from the main road with its own service roads and other facilities, consider […] map the parking facilities there with parking=surface […]”

"turnout" which nobody British will understand, although I assume it can be translated to en-GB?

yes, it can be translated on transifex

As for the translation - is there an en-ie translation

As far as I can see, there is currently no dedicated en-ie translation active on transifex for the iD editor project (which includes also the presets. It could be added if you like (and if the Irish OSM community agrees).
I've also renamed the string to Turnout / Lay-By in 969421dce242db2e29cb1d3736b31b44d9fee18f for now.

Oh, I missed this discussion before posting https://github.com/openstreetmap/id-tagging-schema/commit/969421dce242db2e29cb1d3736b31b44d9fee18f#r64054862. “Lay-by” is so unknown and odd-sounding in American English that I’m sure it’ll cause any American English speaker who knows what “turnout” means to second-guess themselves. Instead of overloading the American English localization with terms from around the world, why not create an en-IE localization and invite the Irish community to help override Americanisms with local vocabulary? I’m sure “turnout” isn’t the only thing that Irish English speakers would find confusing or off-putting. (As far as I know, its spelling is closer to British English anyways.)

Hey. There were a few different reasons behind me adding the term "lay-by" in this label:

I wanted to wait for a confirmation of the Irish community if they actually want to maintain a translation.
The regular en locale also needs to work for people who have set up the generic en in their OS/browser (see also #288 (comment)). This could be everywhere on the planet.
The default en locale is also the basis for translators, so being a little over-specific helps to avoid translation errors.

I see now that my solution is not optimal for Americans. Apologies for that. I have an idea which could be a solution which works for everyone: Why not just add a dedicated en-US locale? More information about this proposal is outlined in #357. What do you think?

These are the source strings for StreetComplete for street parking (parking:lane):
https://github.com/streetcomplete/StreetComplete/blob/b77f72070aec92efbd3d8524e3826e9ce9db1225/app/src/main/res/values/strings.xml#L1168-L1180

I wanted to wait for a confirmation of the Irish community if they actually want to maintain a translation.

For what it’s worth, there are currently 58 languages without any translators on Transifex, not counting the ones lacking active translators. It’s been this way for years. Do you see any downside in creating a localization as a holding place for overrides we already know we need, and allowing the other strings to be inherited from the main English localization?

Good point, we can already add the language on transifex. But I would need to know who to add as a Language Coordinator, since that seems to be required by transifex to add a new language. @boothym – would it be OK if you manage that? If I recall correctly, the language coordinator can then add more collaborators to translate the respective strings in that locale.

Transifex doesn’t require anyone to be on a language team in order to add a new language. It just displays a little label complaining when there are no translators. A coordinator can help manage requests by other users to join their translation team. However, I’m pretty sure iD’s maintainers over the years have just approved every request to join a language team. (By contrast, they would decline most requests for new regional locale, because Transifex’s confusing UI misleads users into thinking they need to request a new regional locale just to do any translation.)

Going back to the original topic, I’m getting the sense that “lay-by” in British English is actually a very broad term that can cover everything from a wayside rest area with basic concessions all the way down to a short parking lane reminiscent of a passing place or emergency bay. Is this true, or are these cases just called “lay-by” by analogy with a “typical” lay-by?
The wiki has defined parking=layby quite differently, constraining it to what American English would unambiguously call a “turnout”. Do British English and Irish English have a more precise word for this kind of lay-by, perhaps by adding a qualifier like “away from the carriageway”?
(Also being discussed in OSMUS Slack.)


SyncBatchNormalization layer segfaults on multi-worker with NCCL

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 14.04 (in a Docker container, on an 18.04 host)
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): Source
TensorFlow version (use command below): 2.2.0
Python version: 3.6.8
Bazel version (if compiling from source): 0.24.1-3.0
GCC/Compiler version (if compiling from source): 4.8.5
CUDA/cuDNN version: 10.0
GPU model and memory: Nvidia TITAN X 11GB

Describe the current behavior
When training models with the tf.keras.layers.experimental.SyncBatchNormalization layer, and using tf.distribute.experimental.MultiWorkerMirroredStrategy to train across multiple workers with tf.distribute.experimental.CollectiveCommunication.NCCL communication, the model trains for some amount of time (e.g. several thousand steps), then crashes with a segfault.
Describe the expected behavior
The model should train without segfaulting.
Standalone code to reproduce the issue
An example is below. Please note that this code must run on multiple workers. The TF_CONFIG environment variable must be set appropriately for your specific multi-worker configuration.
import tensorflow as tf
from tensorflow import keras

def get_dataset():
    x = tf.zeros([10], dtype=tf.float32)
    x = tf.data.Dataset.from_tensors(x)

    y = tf.constant([5])
    y = tf.data.Dataset.from_tensor_slices(y)

    dataset = tf.data.Dataset.zip((x, y))
    dataset = dataset.batch(1)
    dataset = dataset.repeat()
    return dataset

def main():
    # NOTE: You must set os.environ["TF_CONFIG"] as appropriate
    strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy(tf.distribute.experimental.CollectiveCommunication.NCCL)
    # assert strategy.num_replicas_in_sync == 2

    # Create dataset
    dataset = get_dataset()

    with strategy.scope():
        # Construct model
        model = keras.Sequential(
            layers=[
                tf.keras.layers.experimental.SyncBatchNormalization(),
                tf.keras.layers.Dense(1),
            ]
        )
        model.compile(
            optimizer=keras.optimizers.Adam(),
            loss=keras.losses.MeanSquaredError(),
        )

    model.fit(x=dataset, steps_per_epoch=10 ** 6, epochs=10 ** 3)

if __name__ == "__main__":
    main()

This is reproducible across a wide array of contexts, for example a Keras model, an Estimator model, different GPU types, etc.
Other info / logs
I used gdb to inspect a coredump from the crashed process. The backtrace is:
#0  0x00007f1d68cef711 in tensorflow::NcclReducer::Run(std::function<void (tensorflow::Status const&)>) (this=this@entry=0x7f18cc011af0,
    done=...) at external/org_tensorflow/tensorflow/core/kernels/collective_nccl_reducer.cc:185
#1  0x00007f1d71797ca6 in tensorflow::BaseCollectiveExecutor::<lambda()>::operator()(void) const (__closure=<optimized out>)
    at external/org_tensorflow/tensorflow/core/common_runtime/base_collective_executor.cc:276
#2  0x00007f1d71797efe in std::_Function_handler<void(), tensorflow::BaseCollectiveExecutor::ExecuteAsync(tensorflow::OpKernelContext*, const tensorflow::CollectiveParams&, const string&, tensorflow::StatusCallback)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
    at external/gcc_7_4/usr/include/c++/7/bits/std_function.h:316
#3  0x00007f1d669a0e08 in std::function<void ()>::operator()() const (this=this@entry=0x7f185e7fbe60)
    at external/gcc_7_4/usr/include/c++/7/bits/std_function.h:706
#4  0x00007f1d71cc4f44 in tensorflow::UnboundedWorkQueue::PooledThreadFunc (this=0x20758660)
    at external/org_tensorflow/tensorflow/core/platform/default/unbounded_work_queue.cc:99
#5  0x00007f1d71cc5004 in tensorflow::UnboundedWorkQueue::<lambda()>::operator() (__closure=<optimized out>)
    at external/org_tensorflow/tensorflow/core/platform/default/unbounded_work_queue.cc:68
#6  std::_Function_handler<void(), tensorflow::UnboundedWorkQueue::Schedule(tensorflow::UnboundedWorkQueue::WorkFunction)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at external/gcc_7_4/usr/include/c++/7/bits/std_function.h:316
#7  0x00007f1d669a0e08 in std::function<void ()>::operator()() const (this=<optimized out>)
    at external/gcc_7_4/usr/include/c++/7/bits/std_function.h:706
#8  0x00007f1d71d136dd in std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) (__f=...)
    at external/gcc_7_4/usr/include/c++/7/bits/invoke.h:60
#9  std::__invoke<std::function<void ()>>(std::function<void ()>&&) (__fn=...) at external/gcc_7_4/usr/include/c++/7/bits/invoke.h:95
#10 std::thread::_Invoker<std::tuple<std::function<void ()> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=<optimized out>)
    at external/gcc_7_4/usr/include/c++/7/thread:234
#11 std::thread::_Invoker<std::tuple<std::function<void ()> > >::operator()() (this=<optimized out>)
    at external/gcc_7_4/usr/include/c++/7/thread:243
#12 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() (this=<optimized out>)
    at external/gcc_7_4/usr/include/c++/7/thread:186
#13 0x00007f1d2eb72ae0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#14 0x00007f1da0c12184 in start_thread (arg=0x7f185e7fc700) at pthread_create.c:312
#15 0x00007f1d9fdef03d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Disassembling the function showed that this was the offending instruction:
   0x00007f1d68cef707 <+2651>:  jg     0x7f1d68cf0642 <tensorflow::NcclReducer::Run(std::function<void (tensorflow::Status const&)>)+6550>
   0x00007f1d68cef70d <+2657>:  mov    0x18(%rbx),%rax
=> 0x00007f1d68cef711 <+2661>:  mov    0x8(%rax),%rdi
   0x00007f1d68cef715 <+2665>:  mov    (%rdi),%rax
   0x00007f1d68cef718 <+2668>:  mov    0x20(%rbx),%rsi

And printing out the registers shows rax            0x0                 0, so some sort of pointer is set to 0. It therefore looks like there is some sort of null pointer exception in line 185 of collective_nccl_reducer.cc, which I believe is the line col_ctx_->col_exec->UnblockDependencies(*col_params_);. I don't have any idea why it would segfault there, however. The same line appears shortly above on line 176, so it's strange that it would segfault the second time.
Also, a log is attached here, however it is not very interesting as it just runs for a while and then segfaults.

@MinasTyuru
I have tried in colab with TF version 2.2 and i am seeing the error message(ModuleNotFoundError: No module named 'tflight').Request you to share colab link or simple standaalone code with supporting files to reproduce the issue in our environment.It helps us in localizing the issue faster.Thanks!

@ravikyram Oops, sorry about that. I removed the line that was the problem and it should work now. Please keep in mind that the code must run on multiple workers to reproduce the issue. As far as I know, this is not possible on Google Colab.

Hi @MinasTyuru, thanks for providing very detailed debugging information. BTW you can use virtual GPUs in colab to simulate a multiworker environment, but NCCL is not supported in this case, so probably not helpful for debugging this particular issue.
Can you confirm that you do not see this issue if the  CollectiveCommunication is set to AUTO? Additionally, can you try and run on TF nightly and let me know what happens?

@nikitamaia Thank you for the information! Yes, that's correct. Using AUTO or RING seems to work fine. Running on TF nightly may be a bit tricky on our infrastructure, I will get back to you on that.

@nikitamaia Hi Nikita, I was able to reproduce on TF-nightly 2.4.0.dev20200708. When using AUTO it works fine, but when using NCCL it immediately segfaults. Attached are the failed log with NCCL and the successful log with AUTO.

@MinasTyuru thank you for the report. It seems to be the case from the title, but I would like to confirm: does this issue only show up when using SyncBatchNormalization layer? (And goes away when not using it, or using a regular batch norm).
Getting a segfault is terrible, we will look into it.
We have used SyncBatchNormalization for some models before with multi worker, so I am trying to see what's different here since your repro is quite simple. Would you mind trying one thing: Can you make the batch size bigger? Currently seems 1. Usually we try to split the batch across the replicas but since batch size of 1 cannot be split, the other replicas will end up getting empty batches. I am wondering if that's what is triggering this. Although, it would not explain why it works for some steps and then fails..

After some more investigation, it looks like we can reproduce the issue in some contexts but not others, so it's possible that it is some sort of configuration issue. I thought that I was able to reproduce on TF-nightly, but I believe that was due to a mistake I made when installing CUDA, and now I think it may work fine on TF-nightly. It may be related to how we build TensorFlow from source or something of that nature. I will investigate some more and let you know if it seems to be a problem on our end or not.

thanks for the update @MinasTyuru .
@dubey is looking into the segfault more - he thinks there is a possible race condition which might be leading to the seg fault and he is looking into a possible fix.
Re: nightly, yes, your logs indicated that the issue with the nightly was that it was not able to find the GPUs and hence failed right away. I would guess that once you fix that issue, it may probably run into the segfault at some point later like with 2.2.

Yes, we are seeing something similar. When I used a debugger, it changed the behavior. For example, it seems like adding a breakpoint after line 176 of collective_nccl_reducer.cc, which introduces a very small delay, causes TensorFlow to immediately segfault. In this case, it seems that the col_ctx_ variable is set to a null pointer by bfc_allocator.cc. Perhaps this memory is inappropriately freed before it is finished being used? I'll post some more logs in ~12 hours.
We tried to reproduce on TF2.2 and TF-nightly, and on a clean build (i.e. installing TensorFlow from pip, etc.), it seems like it trains for a long time without any problems. But in our production environment (which has some backported bugfixes to TensorFlow and other build differences), we encounter the segfault, so perhaps subtle timing differences are triggering the underlying issue.

Attached are a stacktrace from when col_ctx_ is set to 0 by the memory allocator, and the assembly around that line. Thanks again!

@MinasTyuru I just submitted a change that should help with this issue.  Feel free to reopen if you encounter the segfault again.

Should col_impl get a similar treatment too? If col_ctx could be freed prematurely, then so could col_impl.

Thanks Ayush! I will test this out and see if it works.
Shimin, it looks to me like col_impl is a member of the col_ctx object and therefore does not need to be managed separately (it will be allocated and freed along with col_ctx).

@dubey It seems like the change fixes the col_ctx_ problem, however I'm still experiencing segfaults. I now observe that col_ctx_ is nonzero pointer, however col_ctx_->col_exec is a zero pointer, like so:
(gdb) bt
#0  0x00007fffbf8911a7 in tensorflow::NcclReducer::Run(std::function<void (tensorflow::Status const&)>) (this=0x7ffd9800f360, done=...)
    at external/org_tensorflow/tensorflow/core/kernels/collective_nccl_reducer.cc:185
#1  0x00007fffc83399e4 in tensorflow::BaseCollectiveExecutor::<lambda()>::operator() (__closure=<optimized out>)
    at external/org_tensorflow/tensorflow/core/common_runtime/base_collective_executor.cc:275
#2  std::_Function_handler<void(), tensorflow::BaseCollectiveExecutor::ExecuteAsync(tensorflow::OpKernelContext*, const tensorflow::CollectiveParams&, const string&, tensorflow::StatusCallback)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
    at external/gcc_7_4/usr/include/c++/7/bits/std_function.h:316
#3  0x00007fffbd5425c8 in std::function<void ()>::operator()() const (this=this@entry=0x7ffabcffce60)
    at external/gcc_7_4/usr/include/c++/7/bits/std_function.h:706
#4  0x00007fffc88674de in tensorflow::UnboundedWorkQueue::PooledThreadFunc (this=0x1ed20c40)
    at external/org_tensorflow/tensorflow/core/platform/default/unbounded_work_queue.cc:99
...
(gdb) p col_ctx_
$1 = std::shared_ptr<tensorflow::CollectiveContext> (use count 33194781, weak count -92074895) = {get() = 0x7ffd00555043}
(gdb) p col_params_
$2 = (const tensorflow::CollectiveParams *) 0x7fffc838ca46
     <std::_Function_handler<void(), tensorflow::(anonymous namespace)::ExecutorState::Process(tensorflow::(anonymous namespace)::ExecutorState::TaggedNode, tensorflow::int64)::<lambda()> >::_M_invoke(const std::_Any_data &)>
(gdb) p col_ctx_->col_exec
$3 = (tensorflow::CollectiveExecutor *) 0x0

I think that maybe CollectiveExecutor needs to be a shared pointer as well? And, as Shimin said, possibly col_impl also.

Thanks for the update.  Let me follow up internally.

Shimin implemented the change that he suggested with col_impl:
diff --git a/tensorflow/core/common_runtime/base_collective_executor.cc b/tensorflow/core/common_runtime/base_collective_executor.cc
index 0eebab9cf53..4d95059d018 100644
--- a/tensorflow/core/common_runtime/base_collective_executor.cc
+++ b/tensorflow/core/common_runtime/base_collective_executor.cc
@@ -246,20 +246,20 @@ void BaseCollectiveExecutor::ExecuteAsync(OpKernelContext* ctx,
                           col_params.is_source))
                             ? &ctx->input(0)
                             : nullptr;
-  CollectiveImplementationInterface* col_impl = nullptr;
-  Status status = CreateCollective(col_params, &col_impl);
+  CollectiveImplementationInterface* col_impl_ptr = nullptr;
+  Status status = CreateCollective(col_params, &col_impl_ptr);
   if (!status.ok()) {
     done_safe(status);
-    TF_DCHECK_EQ(nullptr, col_impl);
+    TF_DCHECK_EQ(nullptr, col_impl_ptr);
     return;
   }
+  auto col_impl = std::shared_ptr<CollectiveImplementationInterface>(col_impl_ptr);
   auto col_ctx = std::make_shared<CollectiveContext>(
       this, dev_mgr_, ctx, CtxParams(ctx), col_params, exec_key, step_id_,
       input, output);
   status = col_impl->InitializeCollectiveContext(col_ctx);
   if (!status.ok()) {
     done_safe(status);
-    delete col_impl;
     return;
   }
   // Run on an unbounded work queue that can handle blocking work so as to not
@@ -274,7 +274,6 @@ void BaseCollectiveExecutor::ExecuteAsync(OpKernelContext* ctx,
         profiler::TraceMeLevel::kInfo);
     col_impl->Run([col_impl, col_ctx, done_safe](const Status& s) {
       done_safe(s);
-      delete col_impl;
     });
   });
 }

I'm not sure what the relationship is between col_impl and the col_exec variable that seemed to be null previously, but it seems to fix the segfault. I'm doing some additional testing to be sure and will keep you posted.

Thanks, I was working on a similar change internally, this time with a unit test that can reproduce the issue.  Yes please do keep me posted.

Apologies for the delay, it looks like everything works without segfaulting now.


Add TLS authentication information in devenv readme

What this PR does / why we need it:
This adds instructions to the devenv README for how to set up TLS authentication. This will be useful for testing the changes in https://github.com/grafana/opensearch-datasource/pull/113

I followed the instructions, but after clicking Save & Test in the datasource configuration, I got "No date field named @timestamp found"What worked was:

go to https://localhost:5601/ and generate sample data
Change @timestamp to timestamp in the config editor
as @fridgepoet suggested.


Clear field button still accessible when field is diabled

Describe the bug
When auro-input is disabled you can still click the x in the right corner to clear the field. This renders the field as invalid (if it's a required field) and disabled. Now you are stuck.
To Reproduce

Set field to disabled
Click the x

Expected behavior
Clear button should not be accessible when field is in a disabled state.
Screenshots

Desktop (please complete the following information):

Browser [Firefox and Chrome]

Additional context

This issue has been validated on the Auro doc site. The issue appears to come from the fact that the x appears on hover even if the field is disabled.

Fix is likely adding pointer-events: none to root of component (:host).  We likely need to do this to combobox, datepicker or just update these to use the latest version of auro-input.


Unused (and unclickable) button when retrieving an easylink

There is an unused and unclickable button with label Automatic when an existing easylink is retrieved.

Not a bug. It describes how the URL was created


when you type any id like !hat 24114402 it says attempt to call a nil value

What are the steps that lead to the bug occurring? Or, how frequently does the bug occur?
type any id into a command, every time
What would be the normally expected or desired result?
to equip that id
What is the actual result (the bug)?
an error message saying attemp to call a nil value
What is the impact of this bug?
its just inconvinient
(Any additional context or information eg. in the form of error messages or screenshots.)

It seems that they did a fricky wicky on the latest update.
Many people are having this issue.

This was actually an internal issue with player selectors, and has now been fixed.


chromium: 79.0.3945.130 -> 80.0.3987.87

https://chromereleases.googleblog.com/2020/02/stable-channel-update-for-desktop.html
This update includes 56 security fixes.
CVEs:
CVE-2020-6381 CVE-2020-6382 CVE-2019-18197 CVE-2019-19926 CVE-2020-6385
CVE-2019-19880 CVE-2019-19925 CVE-2020-6387 CVE-2020-6388 CVE-2020-6389
CVE-2020-6390 CVE-2020-6391 CVE-2020-6392 CVE-2020-6393 CVE-2020-6394
CVE-2020-6395 CVE-2020-6396 CVE-2020-6397 CVE-2020-6398 CVE-2020-6399
CVE-2020-6400 CVE-2020-6401 CVE-2020-6402 CVE-2020-6403 CVE-2020-6404
CVE-2020-6405 CVE-2020-6406 CVE-2019-19923 CVE-2020-6408 CVE-2020-6409
CVE-2020-6410 CVE-2020-6411 CVE-2020-6412 CVE-2020-6413 CVE-2020-6414
CVE-2020-6415 CVE-2020-6416 CVE-2020-6417

Status

platform
attribute
status
tester

x86_64
chromium
:heavy_check_mark:
@primeos and @Frostman

x86_64
nixosTests.chromium
:heavy_check_mark:
@primeos

x86_64
google-chrome{,-beta,-dev}
:heavy_check_mark:
@primeos

aarch64
chromium
:heavy_check_mark:
@thefloweringash

Note: The cached build result for chromium (on this branch) is available here: https://primeos.cachix.org/
Note: The timing of this update isn't ideal for me (@primeos), I started the build but the testing most likely has to wait until Thursday evening / Friday (but that shouldn't be a problem anyway).
Update: Will finalize this on Friday.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

I'm using NixOS in headless mode, so, can't test it fully. But nixpkgs-review pr ... worked fine for me and produced 4 binaries: chromium google-chrome google-chrome-beta google-chrome-dev
I've tested each of them with chromium --headless --disable-gpu --screenshot https://nixos.org/ command.
nixpkgs-review pr ... took about 1h on my system (on half cores), so, I can signup for chromium patches testing if such headless test make sense for you folks.

platform
attribute
status
tester

aarch64
chromium
✔
@thefloweringash

aarch64
chromiumBeta
✔
@thefloweringash

aarch64
chromiumDev
WIP
@thefloweringash

@disassembler just wanted to notify you of this since we discussed some concern, but it seems to be handled.

nixpkgs-review pr ... took about 1h on my system (on half cores), so, I can signup for chromium patches testing if such headless test make sense for you folks. @grahamc @primeos

@Frostman Awesome, that would be absolutely great! :)
Can you also run NixOS VM tests on that machine? In that case you could run nixosTests.chromium to automatically test the build. If you can commit to this then I'd like to add you as nixos-unstable tester for chromium on x86_64 in https://github.com/NixOS/nixpkgs/issues/78450.

Final testing was successful, didn't notice any regressions :)

@primeos It was about https://github.com/NixOS/nixpkgs/issues/78450, glad to see things are improving here, especially with your feedback.

@primeos I guess if running nixosTests.chromium it doesn't make sense to do my dumb manual test :) Is that right that it would be enough to run the nixpkgs-review pr xxxxx -p nixosTests.chromium to run the needed tests?

@Frostman yes, running nixpkgs-review pr xxxxx -p nixosTests.chromium should be enough, thanks :)

Potential (minor) regression (but shouldn't be Nixpkgs specific): On my main laptop I had to disable the EFF Privacy Badger Extension (Version 2020.1.13) which prevented all (of the few ones I've tried) pages from loading. But I didn't see any bug reports regarding this yet: https://github.com/EFForg/privacybadger/issues. My other extensions still work without any issues.
Feel free to comment here / open issues if this affects you too (or if someone can confirm this, might be just me).


Add max msg retry count

This will allow you to better configure the maximum amount of retry possible. In cases where the default count is not enough.

5 is more than enough.. for flexibility i don't have any problem with this PR

In rarer cases it reaches the limit, in addition to limiting better handling of the send retry request

up plis


Broken runjobs command on Python 3.4

I was trying to run the runjobs command as the following:
    python manage.py runjobs minutely

When the this error was thrown:
    File "/home/user/env/lib/python3.4/site-packages/django_extensions/management/commands/runjobs.py", line 23, in runjobs
    list.sort()
AttributeError: 'dict_keys' object has no attribute 'sort'

I committed a slightly different version of the patch which should solve this problem as well and fixed the ugly use of the variable named list.
Could you please test this patch and reopen the ticket if it does not work ?
Thanks for the report and patch !

It's all good now thanks @trbs


Fix running pytest with coverage

Pytest and coverage would get confused for an unknown reason presumably
related to installed packages vs. packages in the current directory. Not
installing bloscpack and running pytest with PYTHONPATH=. fixes this
issue.

Coverage increased (+86.1%) to 86.099% when pulling d17d93b84bf59658ce47e73c1daf34c435f9651a on esc:fix_collecting_coverage into ae79b6d90e9cf0becf425fd7bbf3e9aa50816f43 on Blosc:master.

Great, back to 95% coverage, this is cool.


INTL_IDNA_VARIANT_2003 is deprecated

Guzzle version(s) affected: 6.5.3
PHP version: 7.3.16 (hint: php --version)
cURL version: 7.69.1 (hint: php -i | grep cURL)
Description
My Telegram Bot is giving me this error when upgrade from 6.4.0 to 6.5.3:
idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated
in Utils.php line 35
at HandleExceptions->handleError(8192, 'idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', '/home/erich33/vendor/guzzlehttp/guzzle/src/Utils.php', 35, array('uri' => object(Uri), 'options' => 0, 'idnaVariant' => 0))
How to reproduce
When somebody message to my Telegram Bot, I have a script which send to my email the Exceptions, and turns now a hell with this error.
Possible Solution
Downgrade to 6.4?
Something with symfony idn?
Additional context
My actual composer.lock:
{
"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"require": {
"php": "^7.3",
"artesaos/seotools": "^0.17.1",
"binarytorch/larecipe": "^2.2",
"biscolab/laravel-recaptcha": "^4.0",
"facebook/graph-sdk": "^5.7",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.5",
"intervention/image": "^2.5",
"irazasyed/telegram-bot-sdk": "3.1.0",
"laravel-notification-channels/facebook": "^0.1.0",
"laravel-notification-channels/facebook-poster": "^2.0",
"laravel-notification-channels/telegram": "^0.3.0",
"laravel-notification-channels/twitter": "^3.0",
"laravel/framework": "^6.2",
"laravel/passport": "^8.4",
"laravel/socialite": "^4.1",
"laravel/tinker": "^2.2",
"overtrue/laravel-like": "^2.0",
"predis/predis": "^1.1",
"renatomarinho/laravel-page-speed": "^1.8",
"rennokki/befriended": "^3.0",
"rennokki/rating": "^2.0",
"spatie/laravel-permission": "^3.11",
"spatie/laravel-responsecache": "^6.3",
"spatie/laravel-sitemap": "^5.3",
"spatie/schema-org": "^2.2",
"tedivm/fetch": "^0.7.1"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.2",
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^3.0",
"phpunit/phpunit": "^9.0"
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
"sort-packages": true
},
"extra": {
"laravel": {
"dont-discover": []
}
},
"autoload": {
"files": [
"app/Helpers/Helper.php"
],
"psr-4": {
"App\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi",
"@php artisan optimize",
"@php artisan view:clear",
"@php artisan cache:clear",
"@php artisan responsecache:clear"
],
"post-root-package-install": [
"@php -r "file_exists('.env') || copy('.env.example', '.env');""
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
]
}
}

I guess this is happening on this line: https://github.com/guzzle/guzzle/blob/6.5/src/Utils.php#L33.

That constant should be defined, however: https://github.com/symfony/polyfill-intl-idn/blob/master/bootstrap.php#L37.

What extensions do you have?

My actual composer.lock:

My actual composer.lock:

That is not your lock file.

Hi GrahamCampell, I just did a PHP upgrade from 7.3 to 7.4, then do a composer update and everything worked fine. Thanks!
BTW: I suposse INTL_IDNA_VARIANT_UTS46 and INTL_IDNA_VARIANT_2003 are defined on other symfony package. Thanks!

Guzzle should also work on PHP 7.3, so we'd like to know what was going wrong.

Fyi; i'm (was) having the same issue
Guzzle version(s) affected: 6.5.3
PHP version: 7.2.30 (hint: php --version)
cURL version: 7.19.7 (hint: php -i | grep cURL)
I downgraded to 6.5.2 to fix the issue.

Just to clarify, do you have the intl extension installed, or not?

@GrahamCampbell; intl is installed.
extension_loaded('intl'); // -> true

@GrahamCampbell i think it's caused by adding the symfony/polyfill-intl-idn package and/or removing your custom check (https://github.com/guzzle/guzzle/compare/6.5.2...6.5.3#diff-ff73e042e738204c6da009e2ed19f783L243)
My complete error was:
production.ERROR: idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated {"exception":"[object] (ErrorException(code: 0): idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated at /httpdocs/vendor/guzzlehttp/guzzle/src/Utils.php:35)

Because the package is triggering the error:
https://github.com/symfony/polyfill-intl-idn/blob/master/Idn.php#L67
Hope this helps.
If i need to test anything, please let me know!

Because the package is triggering the error:

Odd. That package code should never be run if the extension is loaded. Are you sure it is that line that's running, and not the same line in the C code?

Hmm, you right.
The problem is; it was (and is) working fine when i use Guzzle version 6.5.2 but errors out on version 6.5.3 on: /httpdocs/vendor/guzzlehttp/guzzle/src/Utils.php:35
Maybe it's a server issue ? Do you have any idea ?
When i run the following test script:
<?php

echo "
";

echo "idn_to_ascii function_exists: "; var_dump(function_exists('idn_to_ascii'));
echo "

";

$idnaVariant = defined('INTL_IDNA_VARIANT_UTS46') ? INTL_IDNA_VARIANT_UTS46 : 0;
echo "idnaVariant: "; var_dump($idnaVariant);
echo "

";

echo "PHP_VERSION_ID: "; var_dump(PHP_VERSION_ID);
echo "

";

echo "idn_to_ascii test: "; var_dump(idn_to_ascii('google.com', 0));
echo "

";

echo "
";

i get the following:
idn_to_ascii function_exists: bool(true)
idnaVariant: int(0)
PHP_VERSION_ID: int(70230)
idn_to_ascii test: string(10) "google.com"

(so then it does not throw a error)..

To confirm if the symfony code is being run can you add a var_dump or something before their code would have raised the deprecation warning?

Does https://github.com/guzzle/guzzle/pull/2626 fix your issue?

Having this issue as well guys.
PHP 7.3
Guzzle 6.5.3
intl PHP extension's loaded.
Here's a stack trace because no one's posted one yet. This isn't a hard fix. I'll submit a pull if it wasn't 4am in Canada.
[2020-04-25 06:51:18] production.ERROR: idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated {"exception":"[object] (ErrorException(code: 0): idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated at /home1/shadoxa8/public_html/production-gun-trader/source/vendor/guzzlehttp/guzzle/src/Utils.php:35)
[stacktrace]
#0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8192, 'idn_to_ascii():...', '/home1/shadoxa8...', 35, Array)
#1 /home1/shadoxa8/public_html/production-gun-trader/source/vendor/guzzlehttp/guzzle/src/Utils.php(35): idn_to_ascii('maps.googleapis...', 0)
#2 /home1/shadoxa8/public_html/production-gun-trader/source/vendor/guzzlehttp/guzzle/src/Client.php(220): GuzzleHttp\\Utils::idnUriConvert(Object(GuzzleHttp\\Psr7\\Uri), 0)
#3 /home1/shadoxa8/public_html/production-gun-trader/source/vendor/guzzlehttp/guzzle/src/Client.php(155): GuzzleHttp\\Client->buildUri(Object(GuzzleHttp\\Psr7\\Uri), Array)
#4 /home1/shadoxa8/public_html/production-gun-trader/source/vendor/guzzlehttp/guzzle/src/Client.php(183): GuzzleHttp\\Client->requestAsync('get', '/maps/api/geoco...', Array)
#5 /home1/shadoxa8/public_html/production-gun-trader/source/vendor/guzzlehttp/guzzle/src/Client.php(96): GuzzleHttp\\Client->request('get', '/maps/api/geoco...', Array)
#6 /home1/shadoxa8/public_html/production-gun-trader/source/app/Http/Controllers/PostController.php(408): GuzzleHttp\\Client->__call('get', Array)

I'll submit a pull if it wasn't 4am in Canada.

I have already prepared a PR, as I said. Please try it out and tell me if it fixes your issue.

Does #2626 fix your issue?

I'm not that good with composer; how can i try this out ? (What do i need to require / put in my composer.json?)

Ah, jeeze. I'm so sorry @GrahamCampbell. Chalk that up to being awake until 4am.
This was a production issue, and I had to put the fire out pretty quickly. I ended up downgrading:
PHP 7.3 > 7.2
Guzzle 6.5.3 > 6.5.2
All at once, to fix the bug in the prod environment. I'm back online later. can we link you're PR to this issue? I'd love to get us back on the latest version(s) soon.

The PR is linked to the issue?

Sorry for the delay; @GrahamCampbell I can confirm that this fixes the issue on my end.
(had to setup a project to test this without destroying the production env)

Any idea when it will be merged in ? 😄

Not sure. It needs a review from the Guzzle core, and as much community feedback as possible.

We need to make absolutely sure that the next Guzzle 6.x release works properly, and doesn't break anything else.

Ah, jeeze. I'm so sorry @GrahamCampbell. Chalk that up to being awake until 4am.
This was a production issue, and I had to put the fire out pretty quickly. I ended up downgrading:
PHP 7.3 > 7.2
Guzzle 6.5.3 > 6.5.2
All at once, to fix the bug in the prod environment. I'm back online later. Can we link your PR to this issue? I'd love to get us back on the latest version(s) soon.

had to do the same, fixed the issue for now

@Dahdoul Please try with the patch. It is not useful to know that downgrading fixed it for you, because we have already established that there is a bug. What is only useful know is to know if the proposed fix actually fixes it for you.

@Dahdoul Please try with the patch. It is not useful to know that downgrading fixed it for you, because we have already established that there is a bug. What is only useful know is to know if the proposed fix actually fixes it for you.

already applied the patch and it fixes the issue (PHP 7.3.17). I had to downgrade before just to fix the bug in production env.

local.ERROR: idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated {"exception":"[object] (ErrorException(code: 0): idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated at /home4/drake24/public_html/alpha.sushicode.com/vendor/guzzlehttp/guzzle/src/Utils.php:35)
[stacktrace]
#0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8192, 'idn_to_ascii():...', '/home4/drake24/...', 35, Array)

got the same error
"```
require": {
"php": "^7.2",
"clarification/sparkpost-laravel-driver": "^1.2",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.5.2",
"jgrossi/corcel": "^3.1",
"laravel/framework": "^6.2",
"laravel/tinker": "^2.0",
"vemcogroup/laravel-sparkpost-driver": "^3.0"

@GrahamCampbell sorry. I just applied manually the #2626 patch you made. and it worked

I faced the same issue: on local windows pc php 7.2.30, guzzle 6.5.3 working fine. but same versions on the server throws this above error with exact line numbers. downgrading guzzle 6.5.2 solved the issue onto the server.
what I suspect is intl behaviour on both the side might be different.
intl on local machine:
version | 1.1.0
-- | --
ICU version | 64.2
ICU Data version | 64.2
ICU TZData version | 2019a
ICU Unicode version | 12.1

intl on server:
version | 1.1.0
-- | --
ICU version | 4.2.1

That constant should be defined, however: https://github.com/symfony/polyfill-intl-idn/blob/master/bootstrap.php#L37.

Hello, I've been trying to fix this error too. What should I do this file?

Don't edit any of those files. Does #2626 fix your issue?

@GrahamCampbell I'm kinda stuck applying #2626. Should I edit Utils.php file?

In src/Utils.php I see some additions to the code, do I add these lines?
On Tue, May 5, 2020 at 10:18 PM Graham Campbell<EMAIL_ADDRESS>wrote:

Don't edit any of those files. Does #2626
https://github.com/guzzle/guzzle/pull/2626 fix your issue?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/guzzle/guzzle/issues/2620#issuecomment-624254036, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AID2636ZM25Y7ZUZFPBSJ2LRQBQ7RANCNFSM4MMC5DCA
.

Guzzle version(s) affected: 6.5.3
PHP version:7.3.13
cURL version:7.19.7
ICU version => 4.2.1
ICU TZData version => 2009j
ICU Unicode version => 5.1
update  "symfony/polyfill-intl-idn":"v1.16.0"
An error   IDN conversion failed  occurred

This pull https://github.com/guzzle/guzzle/pull/2626 resolve error

#2626 is merged.

i stll get ame error

@flowser Are you installing the latest dev version? The code has not actually been tagged yet.


64-bit SPIs

64-bit SPIs would dramatically simplify implementations, at least inasmuch as they avoid needing premature key rotations.

That is an interesting point, indeed there is a tradeoff to be made between increasing the header size (which impacts throughput) and rekeying overhead. When a unique SPI is used per connection, the 31-bit space can be exhausted in about a day at a connection rate of about 25K/second, which is entirely possible now and can only be expected to increase over time. On the other hand, periodic key rotation still needs to be supported in order to limit the amount of data encrypted by the same key, so it isn't clear that this would really help simplify implementations.
By the way, this might be a good topic to raise on the PSP discussion group, which has a larger audience than we do here:
https://groups.google.com/g/psp-discuss


[Bug] Got BadProxy on release 1.2.0 when running cli

Pull code and compile

git clone https://github.com/diem/diem.git
git checkout 59d9514   # release 1.2.0
cargo build --release   # build diem node
cargo build --release -p cli   # build cli

Run diem node

./target/release/diem-node --test

Run diem client

./target/release/cli -c TESTING -m /tmp/c978accb1f769871584e0de2f6c6eff7/mint.key -u http://<IP_ADDRESS>:8080 --waypoint 0:51b1864a4a00aec0a525334026c89c3dcdc6c3e92809ef130a96aff191869a49

Got error message:
2021-04-29T03:02:23.692660Z [main] ERROR testsuite/cli/src/client_proxy.rs:1323 Failed to get account from validator, error: Error { inner: Inner { kind: Request, source: Some(BadProxy), json_rpc_error: None } }

Caused by:
    Malformed proxy
2021-04-29T03:02:23.693139Z [main] ERROR testsuite/cli/src/client_proxy.rs:1323 Failed to get account from validator, error: Error { inner: Inner { kind: Request, source: Some(BadProxy), json_rpc_error: None } }

Do you have HTTP_PROXY or HTTPS_PROXY environment variables configured? It looks like ureq might be having some trouble parsing them: https://github.com/algesten/ureq/blob/2f1f9c45aab32cdcf74668473c4ec33e3d16d215/src/proxy.rs#L33

Thanks! Indeed the proxy caused the problem