Can't focus on any data grid item with keyboard navigation

When using keyboard navigation, items list in list view layout mode is completely inaccessible.

@Jaiganeshkumaran I can't reproduce this issue in v1.2.2, what version of Files do you have?

Ok I can access it but unlike File Explorer it doesn't highlight focus so I didn't know

@Jaiganeshkumaran This should be fixed once WinUI creates the new DataGrid control.


dropping elements? or am I doing something wrong?

Weird Problem -
upgraded to Swift 1.2, now when I download a JSON file some of the elements are just missing when sent thru swifty JSON.
For instance:
data =     (
{
"accounts_id" = 1;
"created_at" = "2015-04-13 00:37:22";
id = 1;
maxTime = 0;
name = "workout 1";
rest = 20;
rounds = 3;
"updated_at" = "2015-04-13 00:37:22";
"users_id" = 1;
....
from a NSMutableDIctionary  becomes
"data" : [
{
"rounds" : 3,
"maxTime" : 0,
"id" : 1,
"users_id" : 1,
"created_at" : "2015-04-13 00:37:22",
.....
when returned from swiftyJSON.      I am using the version for xcode 6.3.

operator error.  nothing to see here.  move along.


M3-1704: add test coverage for stackScripts drawer

M3-1704: add test coverage for stackScripts drawer
Description
Simple tests for DrawerContent and StackScriptDrawer components
Type of Change

add tests for DrawerContent component
add tests for StackScriptDrawer component

Coverage increased (+0.08%) to 31.936% when pulling e8c6f814b51bef0f5e2963936f126e47708ffce2 on rulikrulit:feature/M3-1704-tests into e1231c9fcc14ef51577784b25b4607e167127b96 on linode:develop.

@johnwcallahan good point! Fixed


Can I Install Ubuntu MATE on Raspberry Pi 3 B + or not?

Hi,
In the official e-manual of turtlebot3, it states Ubuntu Mate does not correspond to Raspberry Pi 3 B + at present.
Install Linux (Ubuntu MATE)

Install Ubuntu MATE on TurtleBot PC

WARNING: Ubuntu Mate does not correspond to Raspberry Pi 3 B + at present. If you have it, please install Raspbian instead.
However, the ubuntu mate site show it is compatable with Raspberry Pi 3 B + now as shown below:
Ubuntu mate for Rasbbery Pi

My question is can I Install Ubuntu MATE on Raspberry Pi 3 B + or not? If so, you may need to update the e-manual. Cheers

Thank you for letting us know.
We'll run the test and see if there's any available version of Ubuntu Mate with RPi 3B+.

@andrestoga Thank you for sharing the test result.
We'll revise the eManual after the internal test to provide more detail instructions.
Thank you all!

According to our recent test, Ubuntu Mate 18.04 and 20.04 64bit tends to freeze on RPi 3B+ from time to time.
We're currently testing with updated Ubuntu 20.04 that fixes this issue.

@ROBOTIS-Will What's the updated Ubuntu 20.04 version that fixes that issue? I thought it freezes because the RPi 3B+ only has 1GB of RAM....

@andrestoga
Hi.
Even if the RAM was set to 2G, a freeze occurred.
Currently we are testing with the Ubuntu 20.04 server. link
Thank you :)

This issue thread will be closed as there is no recent activity. Please feel free to reopen if needed.

Ubuntu-Mate 20.04.1 32-bit failed to complete boot on the Pi 3B.

@digixmax
We have once tested with Ubuntu Mate 20.04.1 64bit on RPi 3B+ up to SLAM and Navigation, but the thorough test had not been performed.
You might need to allocate 2GB swap space.

I tried and was able to install ubuntu-20.04.2-preinstalled-server-armhf+raspi.img and then added LightDM/Mate desktop to it.
The server build by itself performed decently, but with Mate desktop added became very sluggish to the point of un-usable.


Authentication Cookies

need to use a prefix rather than just the name due to the cookie being split

@gambol99 same here. Please file a Jira (https://issues.jboss.org/browse/KEYCLOAK), in this way we can prioritize stuff for the next release.


Ensuring the development of CM-based automation for MLPerf complies with MLCommons bylaws

Several recent changes from last week disrupted my Collective Mind approach of reusing CM automations and artifacts, rather than duplicating or remixing them across different repositories and forks. Consequently, this also impacted several ongoing projects involving various MLCommons members. While addressing these issues with MLCommons, I outlined a set of tasks to resolve them and ensure the continuation of collaborative development for MLPerf automations.

[ ] avoid creating forks in MLCommons GitHub with stripped CM automations and artifacts, such as those in mlcommons/mlperf-automations or mlcommons/ck/tree/mlperf-inference. These forks have caused numerous issues currently under discussion with MLCommons.  Any such forks or branches involving CM automations must be reviewed and approved via tickets to ensure they do not disrupt or negatively impact other MLCommons members' projects.
[ ] Eliminate above branches and forks and consolidate development back   into the cm4mlops repository, using the mlperf-inference and main branches as before.
[x] restore these files in the mlperf-inference and main branches of cm4mlops that were removed from the parent mlcommons/ck project without any discussion and explanation.
[x] discuss acknowledgments and the truncated history of contributions in this repository with MLCommons
[x] add link to the parent mlcommons/ck project and white paper in the README
[ ] use the stable main branch instead of mlperf-inference and checkouts in the PYPI package to be utilized in other MLCommons repositories. See here
[x] use a stable CM version from PYPI instead of checkouts: see here
[ ] Reevaluate the use of the cm4mlops PyPI package, as it obscures the underlying repository with CM automations for MLPerf. Instead, revert to explicitly using pip install cmind and cm pull repo {url} {branch|checkout} for greater transparency.

@gfursin Can you please point to the section in the MLCommons bylaws which is violated by the creation of a "fork"? Fork by itself does an acknowledgement and endorsement and MLCommons bylaws clearly states the below.
Section 13.3 No Obligation to Endorse
No Member shall, by reason of its Membership or participation in the Association or otherwise,
be obligated to license from the Association, use or endorse any Intellectual Property (as defined
in Section 2.7) developed or endorsed by the Association, or to conform any of its products to
any Guidance Materials developed or adopted by the Association, nor shall any such Member be
precluded from independently licensing, using or endorsing similar intellectual property,
software, specifications or documentation developed by it or by others.

Meanwhile when two people jointly develop a project it is unfair to write a white paper under one person name and publicize it. If anyone does this, no sane person will ever collaborate with him/her. No law matters here.
"I donated CK, CM and CM4MLOps to MLCommons " is mentioned here - AFAIK and what the github history shows - CM and CM4MLOps development started within MLCommons and from the start I was a part. But I don't want to argue over the ownership of an open source project - I'm just saying my reasons for not collaborating on such personal projects where one man decides everything for his publicity.
Also I'm no longer using this repository and thanks for removing my name as the maintainer here. You can fix and maintain this repository as you prefer. If you feel we are violating any laws in repositories we maintain please point to the exact violation. Otherwise we'll see what MLCommons has to say.

@arjunsuresh . What you are stating is false and easy to check via history of commits (in the original repository and not in this one with truncated history) - checking that with MLCommons ...

Sorry - what exactly is false? This file is created by you only and you can see the development history in case you have forgotten as you have already send me claims for the stuffs I have bought with my own money.

We will discuss all of this with MLCommons. In the meantime, I have restored the deleted files and the core functionality necessary for other projects and will consult with MLCommons to decide what to do with this repository, branches and forks.

Sure. We are no longer using this repository as we are not working on any child projects. Below are the suggestions from chatgpt.
When managing an open-source repository, ensuring that forks don't negatively impact the original project involves a combination of proper licensing, governance, and clear communication. Here are steps to manage this effectively:

1. Use an Open Source License
Why:
A well-defined license ensures users know their rights and obligations when forking your repository.
How:

Choose the Right License:

Use a permissive license like MIT or Apache 2.0 to encourage use and attribution.
Use a copyleft license like GPL to require forks to remain open source.

Specify the License Clearly:

Add a LICENSE file to the root of your repository.

Impact:
A proper license gives legal clarity, ensuring forks align with your project’s values.

2. Set Contributor Guidelines
Why:
Forks often occur because contributors find it hard to work within the main repository.
How:

Add a CONTRIBUTING.md file outlining:

Coding standards.
How to submit pull requests.
Branching and issue management policies.

Use templates for issues and pull requests to streamline contributions.

Impact:
This reduces forks caused by communication gaps and encourages collaboration.

3. Build a Strong Governance Model
Why:
A clear governance structure helps maintain control over the direction of the project.
How:

Define decision-making processes in a GOVERNANCE.md file.
Clarify roles (maintainers, contributors, users).
Ensure decisions are transparent (e.g., via public discussions or GitHub issues).

Impact:
A strong governance model ensures contributors trust the process, reducing unnecessary forks.

4. Maintain High-Quality Documentation
Why:
Forks often arise due to unclear goals, vision, or usage instructions.
How:

Include a detailed README.md with:

Project overview.
Usage instructions.
Contribution guidelines.

Maintain a changelog (CHANGELOG.md) to track updates.

Impact:
Good documentation keeps contributors aligned with your vision, reducing fragmented forks.

5. Monitor and Engage With Forks
Why:
Understanding why forks exist helps you address potential issues proactively.
How:

Regularly check GitHub forks:

Use the "Forks" section to view popular forks.
Analyze changes in forks to see if they provide useful improvements.

Engage with maintainers of forks:

Offer collaboration opportunities if their changes align with your vision.

Impact:
Proactive engagement prevents forks from diverging in ways that harm the ecosystem.

6. Trademark or Branding Controls
Why:
Prevent unauthorized use of your project's name or brand in forks.
How:

Use trademark policies for your project name (if applicable).
Require forks to rebrand if they deviate significantly from your project.

Impact:
This ensures forks don’t confuse users or dilute the reputation of your project.

7. Encourage Upstream Contributions
Why:
Fork maintainers might bypass your repository if contributing upstream is difficult.
How:

Foster a welcoming culture for pull requests.
Provide timely reviews and feedback.
Highlight contributors in release notes or documentation.

Impact:
Forks are more likely to contribute improvements back to the original project.

8. Automate Repository Maintenance
Why:
A well-maintained repository is less likely to be forked unnecessarily.
How:

Use tools like Dependabot or Renovate for dependency updates.
Automate CI/CD pipelines to ensure high code quality.
Regularly close stale issues with bots like GitHub Actions.

Impact:
A well-maintained repository signals professionalism, attracting contributors instead of forkers.

9. Be Open to Collaboration
Why:
Community engagement reduces competition between forks and the main project.
How:

Host regular discussions or public meetings with contributors.
Maintain an active presence in community forums or GitHub Discussions.

Impact:
Collaborative practices strengthen the main repository and minimize fragmentation.

10. Mitigate Harmful Forks
Why:
Sometimes, forks can misrepresent or misuse your work.
How:

Report Forks Violating Licenses:

If a fork violates your license, file a DMCA takedown request through GitHub.

Alert the Community:

If a fork introduces harmful code, inform users via announcements or warnings.

Impact:
This protects your project’s integrity and user trust.

Summary
To ensure forks don't negatively impact your open-source repository:

Use a proper open-source license.
Set clear contributor guidelines.
Monitor and engage with forks.
Maintain high-quality documentation and governance.
Proactively encourage collaboration and upstream contributions.

By fostering a welcoming and organized ecosystem, forks are more likely to enhance rather than harm your project. Let me know if you’d like examples for any specific step!

Discussing that with MLCommons...

My assessments have been confirmed, along with a few additional actions:

[ ] Create a CM HISTORY file to document key events and milestones.
[ ] Retain the original cm-mlops repository.
[ ] Include links to the license and copyright files in each automation script.


[enhanced-parts] Analysis Server implementation

This issue tracks all the analysis server work items for enhanced-parts. (Referenced from: https://github.com/dart-lang/sdk/blob/main/pkg/analysis_server/doc/process/new_language_feature.md)

[ ] Call Hierarchy (an IDE feature where you can get a call hierarchy if you
click on a method)
[ ] Closing Labels (an LSP feature allowing the IDE to show lightly grayed out
comments at the end of the last line of a multi-line invocation, to aid
the user in understanding what invocation is closed by a ))
[ ] Code Completion
[ ] Code Folding
[ ] Document Colors (an LSP feature whereby a reference to a color in code can
be associated with a colored swatch and a color picker)
[ ] Hovers
Implemented/override markers (a legacy protocol feature, only available to
IntelliJ and Android Studio)

[ ] Implemented Markers (allows navigation from a base class method to
methods that override it, or from a base class to classes that
extend/implement it)
[ ] Override Markers (allows navigation from a method to the base class
method it overrides, or from a class to the class that it
extends/implements)

[ ] Inlay Hints (an LSP feature allowing extra information to be displayed
using inline hints)
Navigation

[ ] Go to Definition (LSP feature)
[ ] Go to Type Definition (LSP feature)
[ ] Go to Super (LSP feature)
[ ] Legacy protocol (for IntelliJ and Android Studio)

Occurrences

[ ] Legacy protocol (for IntelliJ and Android Studio)
[ ] Document Highlights (LSP feature)

[ ] Organize Imports
Outline

[ ] Flutter Outline
[ ] Legacy protocol, a.k.a. Document Symbols (for IntelliJ and Android
Studio)
[ ] LSP feature

Refactorings and quick assists/fixes (note that in addition to potentially
creating new refactorings and/or quick assists/fixes, part of the work
required to implement a new language feature includes evaluating each existing
refactoring and quick fix/assist to see whether it needs to be improved or
have test cases added to reflect the new feature).

[ ] Legacy refactorings (for IntelliJ and Android Studio)
[ ] LSP rename refactoring (note that LSP has a special protocol for
renames)
[ ] LSP self-describing refactorings
[ ] Quick Assists
[ ] Quick Fixes

Search

[ ] Find References
[ ] Implementations - LSP
[ ] Member Declarations
[ ] Member References
[ ] Top-level Declarations

[ ] Selection Range (an LSP feature allowing a selection to be expanded to
cover the range of an ancestor AST node)
Syntax Highlighting

[ ] Legacy protocol, a.k.a. Semantic Highlights (for IntelliJ and Android
Studio)
[ ] Semantic Tokens (LSP feature)

[ ] Signature Help (an LSP feature that tells the parameters and types needed
for an invocation)
[ ] Snippets
[ ] Sort Members
Type Hierarchy

[ ] Legacy protocol (for IntelliJ and Android Studio)
[ ] LSP feature

[ ] Workspace Symbols (LSP feature)

I think this is a duplicate of https://github.com/dart-lang/sdk/issues/56203. We should probably keep the original because it's probably linked to from the top-level issue.


HBoxContainer result looks different in editor and game

Godot version
v3.4.4.stable.official.419e713a2
System information
Windows 10, GLES2, Intel(R) HD Graphics 2000, latest driver version
Issue description
In the editor, the back button is not right next to the "Options" text.

But in the actual game, it is:

Steps to reproduce

Open the repro project
Verify that the button is not near the text
Open the build and see that it's now near the text

Minimal reproduction project
ReproProject.zip

In the repro project, the icon is also next to the text - and expected to be, the way it's set up.

That's weird, it's also working for me in both projects. The TextureButton left margin isn't saving for some reason (I set it to 40, but it keeps changing to 225) In the debug build however, it changes back to 225. This could be a bug, but more likely I'm doing something wrong tbh

You're using a container here, this is supposed to override/control those properties based on the size flags of children. What you're trying to model (one control centered the other left aligned) requires a different hierarchy of containers

Closing per @Flavelius's comment. This is expected behavior.

Sorry for wasting your time then.


Build-time state can be user or "segment" specific, and it's actually easy to setup

This issue is reporting a bug in the documentation.

Documentation version: v0.3.2
Documentation source: On the website (book)
The user described the issue as follows:

Hi,

I wanted to point out an issue regarding Perseus understanding of static/build-time rendering:
"When you generate state at build-time, you're generating it without knowledge of who will be using it. For instance, you can't generate personalized dashboard pages at build-time, because you don't know yet who your users are."
This is similar to what you could have found in Gatsby or Next.js documentation in the past. Despite being a common take, this however never has been true, counter-example are as simple as statically rendering translated content.
User-specific content is of course usually not something you want to do statically (though it's doable, including personalized dashboards),  however group specific, or what I call "segment-specific" rendering in the marketing sense of "segment", is totally doable and even a good practice.
You can achieve it very simply by adding a URL redirection/rewriting server in front of your page.
I invite you to read my work on "Segmented Rendering" which describes this pattern:
https://www.smashingmagazine.com/2022/07/new-pattern-jamstack-segmented-rendering/
There are also resources at the bottom with more specific takes (the equivalence between this approach and HTTP caching ; how to scale to multiple parameters with the "megaparam").
Hope this will help in your journey!
Feel free to reach me out at<EMAIL_ADDRESS>if you want to discuss the subject further
Best regards

Tribble internal data
dHJpYmJsZS1yZXBvcnRlZCxDLWRvY3MsQy1idWcsQS13ZWJzaXRlLWRvY3M=

This is a really nice pattern, and one I've considered in the past as well, but the problem is that static content is hosted by frameworks in opaque, but accessible, URLs. To do this, you would have to add authentication middleware to block access to certain parts of the .perseus/static/ section of your site. While possible, this is hardly ergonomic as-is, but I'd be very willing to look at a library that would extend the Perseus servers to support this more ergonomically!
Do you have another way around this? I don't see that issue mentioned in your article (which was great by the way!).

Glad you liked it!
In the article I hide the logic in the isPaidUser function, however you are right that it's the hard part, for instance in Next.js the Edge middleware runtime is so limited that you can't establish a TCP connection to a db, so most often you can't check current user state reliably, unless you also use an HTTP-ready serverless database.
However, it's conceptually not much different from redirecting to for an A/B test, or towards the right language, the difference between those use cases only lies on how complicated is the logic that selects your "segment" and how many segments it creates. Either way you indeed need a dispatching middleware.
In an earlier version, this lead me to call this pattern the "unicorn architecture" or "rainbow rendering", as the magic is provided by adding a tiny proxy server, like the horn of the unicorn, and then you can render your site statically in as many colors as you want :)

Understood, right now Perseus doesn't have good support for middleware beyond customising the server used to host the app, but v0.5.x will include this, and I'd be happy to look at something then to make this approach more ergonomic at a framework-level, maybe even with first-class support --- this would certainly be possible by checking a JWT in a cookie or similar, although that limits the auth patterns this could be used with. This will probably be a plugin or otherwise separate crate, but we'll see how the final middleware API ends up looking! I'll leave this open for now.


Replace string references with a dataclass

We had a discussion before about the reference attribute should be like, at the time we decided to keep as just a string. I think we should move it being a dataclass.
I also updated the surface_code.__init__ to expose the primatives defined in the module and the README.md file to explain how to invoke the resource estimation UI.

@mpharrigan ptal


Newly created MaterialPart throws runtime NullPointerException

After registering a new MaterialPart with Material.registerPart, attempting to get the IItemStack with MaterialPart.getItemStack() throws a NullPointerException. The stack trace shows that the call makes it to the getItemStack() method of the appropriate PartType, but then throws the exception. All other methods of the created MaterialPart work as expected.
What I am trying to do is: create new clusters then change their oreDict to ore:oreNAME, create new ores then change their oreDict to ore:oreBlockNAME, and finally add the cluster as the drop from the ore. I can create the clusters/ores and they show up in game as expected, however, I cannot adjust the oreDict or add the drop as I am unable to get the resulting ItemStack after it has been created. It does work when I hardcode the resulting item's resource ID after checking what ID it got in-game and therefore do not use MaterialPart.getItemStack().
Example code:
import crafttweaker.item.IItemStack;
import mods.contenttweaker.Color;
import mods.contenttweaker.Material;
import mods.contenttweaker.MaterialPart;
import mods.contenttweaker.MaterialSystem;

var material = MaterialSystem.getMaterialBuilder().setName("Test").setColor(10261385).build();
var materialPart = material.registerPart("cluster");
var item = materialPart.getItemStack(); <---- this line throws the runtime error

Don't use that in ContentTweaker Scripts. that method is more for ease of use in CraftTweaker scripts.

Is it possible to programmatically get the appropriate IItemStack from a MaterialPart in a ContentTweaker script through another method?

You shouldn't be messing with IItemStacks in COntentTweaker scripts for the most part. Oredict changes and such, should be done in CraftTweaker's script. If you want you can pop into Discord and explain your scripts and such there, and I can help.

In that case, I think I understand what I need to do. I hopped in discord and am waiting on the 10m to type. I'll take another crack at this a little later (when I get a free moment at work XD) and reach out on discord for help.


Pretty printing in babashka

Pretty printing in babashka doesn't work, if I try to print something it ends up using pr-str, so in the log buffer you'll see something like:
{:hello "world", :some "other", :stuff "that's", :pretty "printed"}

Thanks to @borkdude I found that babashka's nrepl server uses clojure.pprint/pprint for some values of :nrepl.middleware.print/print.
https://github.com/babashka/babashka.nrepl/blob/c8c8a766e026d5f87e0968a179dad70e13aa13ee/src/babashka/nrepl/impl/server.clj#L25-L28
Once I added "conjure.internal/pprint" to this list, I still got everything printed in one line. Then I realized babashka also has a custom "right-margin" key for :nrepl.middleware.print/options.
https://github.com/babashka/babashka.nrepl/blob/c8c8a766e026d5f87e0968a179dad70e13aa13ee/src/babashka/nrepl/impl/server.clj#L66-L70
For this I ended up modifying conjure like this:
https://github.com/frankitox/conjure/commit/3dad8c013abedadb1bfa2cd4e125ddb39184200d
But it may make more sense to add a default value to babashka, Clojure's code base uses 72
https://github.com/clojure/clojure/blob/master/src/clj/clojure/pprint/pprint_base.clj#L40-L45

Is there a way to configure conjure without modifying the code? I'm using babashka on a daily basis with large chunks of hashmaps and really missing formatting. It's hard to debug when everything is one-lined.

For this I ended up modifying conjure like this:
https://github.com/frankitox/conjure/commit/3dad8c013abedadb1bfa2cd4e125ddb39184200d

Sadly this link is a 404 now 😭 I'll try and work out what was done, I guess an option was set?

I set the pretty printer to clojure.pprint/pprint and I've set the right-margin to 72 but it doesn't do anything still, I'm on an up to date babashka, I just can't get it to pretty print anything. Is there a magic option to babashka I'm missing? I can't see anything in the docs on it or the source.
We also can't set the pretty printer to clojure.pprint/pprint in JVM Clojure, that throws errors. And we can't set it to the Conjure one in babashka land. So that means I'll have to sniff the type of the REPL (JVM or babashka) and then override the pprint function if I spot babashka, I think. It's a shame these are incompatible, or maybe I'm just missing sometihng.

Just bumped into this problem on Windows environments too that use clojure by installing clj-deps through scoop (it seems that it has babashka as the backend implementation?)

Babashka is not involved in clj-deps.

Hey, @borkdude! I was going to come and ask for your advice on this eventually. Did you happen to have any examples / test scripts you use to enable and check the pretty printing for babashka's nREPL support?
I have a feeling it's working fine, I'm just missing a required parameter. As I mentioned above, I set the printer and a right margin (just in case that's required) and I'm sending the properties that work for JVM nREPL. The list of pretty print functions are hard coded in babashka too I think? Pretty sure that's the conclusion I came to reading the source.
If you have a working example anywhere or in tests I'd love to see it so I can copy it exactly.

Conjure actually auto loads it's own pprint function on connection but I think we can't use that with bb because of the list of pre-approved printers?

Did you happen to have any examples / test scripts you use to enable and check the pretty printing for babashka's nREPL support?

There are some tests here: https://github.com/babashka/babashka.nrepl/blob/c6c3553404f424ff5c591cffe24254f01cc2f92a/test/babashka/nrepl/server_test.clj#L150

Interestingly the preamble Conjure sends was failing on babashka REPLs! Apparently capturing the original ns with (resolve *ns*) then in-ns-ing back to it later makes bb REPLs unhappy. I've replaced it with capturing the symbol form of the current *ns* then giving that symbol to in-ns which works great everywhere.
So my pprint nREPL printer function I was defining was probably never actually getting defined in babashka nREPL environments. Now that's fixed and Conjure's pre-amble definitely makes it across the wire buuuut it still doesn't pretty print. I'm sure this is one step closer to fixing it though!

When I set the pprint function to cider.nrepl.pprint/pprint it works! So let g:conjure#client#clojure#nrepl#eval#print_function = "cider.nrepl.pprint/pprint". So it looks like it's a difference in how the built in CIDER pprint works when compared to the one Conjure injects which is:
(defn pprint [val w opts]
  (apply pp/write val
    (mapcat identity (assoc opts :stream w))))

Conjure injects and uses it's own because we don't always have CIDER available in all nREPL connections. Obviously babashka is providing the CIDER namespaces or at least a shim of them. I'll double check if there's any differences between these functions.

Ah, babashka has a map here
https://github.com/babashka/babashka.nrepl/blob/edd3d613bfb9bf3adabfd0bda5c3f5c6ee85ec20/src/babashka/nrepl/impl/server.clj#L25
That does the lookup from pprint function name to actual function. So we can either pass nothing or the CIDER fn name...
I don't want to change the default to the CIDER name because then pprinting won't work for plain nREPLs. I also don't really want the users to have to swap this value out when they use babashka 🤔 what a predicament! Maybe I set the string to the CIDER namespace one but then I shim it with the Conjure pre-amble if it's not defined? That feels very hacky though and could cause issues in the future.

Alrighty, let me know what you think. I went down the shim route so that should get babashka and JVM Clojure working fine and rely on the built in CIDER pprint function if it's available already. I think this is the best situation, yes I have to shim a known function, but it should mean that every Clojure environment just works...
Uh oh, let me check ClojureScript quickly.

ClojureScript works! Rejoice!
I only tested shadow-cljs but that's the environment I have the most confidence in to do the right thing anyway.

I'm closing this pre-emptively just in case I forget to. Please re-open if it doesn't work for you!

This is amazing! Now the development experience with babashka scripts will be much more pleasant and I won't have to sprinkle (pprint)s in all my (comment)s, thank you!

Sorry for making you live with extremely long lines in babashka land for so long 😭

Thank you Olical, also for pointing out the branch change! Everything worked beautifully!
Leaving here the change in lazy.nvim config, for other lazy people
spec = {

-  "Olical/conjure",

+  {
+    "Olical/conjure",
+    branch = "main",
+  },

}


whisper-dump.py: add --time-format option.

Hi,
This is a simple improvement for those of us who use whisper-dump AND are bad at reading Unix timestamps. Let me know about anything that can be improved.

Coverage remained the same at 92.201% when pulling 711952afc1c780ec034d7f4d6161466ae4b68128 on xavierog:master into aab3951f6a5b1e5a0e4bd96ed6fc288c0d250b18 on graphite-project:master.

Coverage remained the same at 92.201% when pulling 711952afc1c780ec034d7f4d6161466ae4b68128 on xavierog:master into aab3951f6a5b1e5a0e4bd96ed6fc288c0d250b18 on graphite-project:master.

whisper-dump is quite specific tool, usually, it's needed for some metrics export cases. For human readable output, you can use whisper-fetch.  But in general I'm fine with this change, but please fix README too.
I'll take care of a failing test.

Failing test is fixed in #236. Please rebase and document your change README. Thanks!

Duly noted; I will proceed with the changes tomorrow evening.

Coverage remained the same at 92.201% when pulling cd584530c51a7b569919de70749deb439f906729 on xavierog:master into cb9817ca357450e04ee5dc5e729a62cc3fdbaec2 on graphite-project:master.

@deniszh: as you can see, I eventually decided to push things a little further: I added --time-format to whisper-fetch (as a complement to --pretty) then ported both options to whisper-dump. Let me know whether this is still ok.

LGTM
Thanks!


Licenses: Fix acronyms, names and links

Links have not completely been fixed, some are still dead. However, they are pointing to the same ones as in InvenioRDM; this aims to make things compatible with the upcoming integration.
Important: Modify the license enums in the frontend  (variables, add extra licenses) to reflect the changes.

Very nice :)


Add Support for macos

Please add support for macos if you are using the storekit than it will be the same as the ios

I can add support for macos if the author refactor objective c to swift :)

i don't think they have plan to refactor this code to swift

@hyochan any plan to refactor to swift?

@hyochan any plan??

@hyochan any plan??


feat: Use higress as the default gateway class for Gateway API integation

Ⅰ. Describe what this PR did

Change the default gateway class name in istio from istio to higress.
Change the default gateway class controller name in istio from istio.io/gateway-controller to higress.io/gateway-controller.
Add two targets into Makefile so we can build images locally for testing.

Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #555 (b9f8eed) into main (eb2934c) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #555   +/-   ##
=======================================
  Coverage   37.73%   37.73%
=======================================
  Files          64       64
  Lines        9094     9094
=======================================
  Hits         3432     3432
  Misses       5396     5396
  Partials      266      266


esp32-s3 do not support psram

I have tried various methods to use PSRAM, but all have failed. Is PSRAM not supported now?

Duplicate of #455, please see the conversation there.


Remove --no-run-if-empty flag on removing branches that are merged to master

On the tip: Remove branches that have already been merged with master
I tried to run the command as it is and got an error
xargs: illegal option -- -

Running just git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d  worked as it should and running the same command twice (when there are no applicable branches) threw no errors.

Unsubscribe
SENT FROM OUTER SPACE 🚀
-----Original Message-----
From: "hemanth.hm"<EMAIL_ADDRESS>Sent: 6/11/2016 9:43 AM
To: "git-tips/tips"<EMAIL_ADDRESS>Subject: Re: [git-tips/tips] Remove --no-run-if-empty flag on removingbranches that are merged to master (#75)
Merged #75.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@kadikraman have you tried to run it without --no-run-if-empty when you're on the master branch and no other branches exist?
Having said that, apparently --no-run-if-empty is available only with the GNU version of xargs.

Good shout @exalted I hadn't tried that. Thankfully works fine though :)

D-Oh! My bad... I am used to run it with capital D, so instead if you try xargs -n 1 git branch -D it should fail in that case.


Whats a good way to pass data to the page-elements?

Because the vaadin-router dynamically replaces the page-elements shown inside the <main> tag, there is no chance for the app-index to pass some properties down to the page-elements.
Whats the best way to achieve this?

Thanks for your question @Alos! When we want to pass information between pages we usually use a library to manage the state of the application. Examples of those libraries can be redux or apollo if you use GraphQL.
Some time ago we were using redux to manage the state of some apps (in Vaadin you have a good tutorial to configure it, for example) but nowadays we are using a lot Apollo GraphQL through Apollo Elements for Lit and the experience using it is being quite graceful.


Typography in database list

I agree with statement that previous style was using too small font, but current setup makes it look weird, like database metadata titles have bigger font (although they don't) than databases names because they are weighted. Since they are sub list, maybe its better to make them normally weighted. Or put database names in bigger font. Also, maybe currently active databases should be bold.
Issue is here so we can discuss it since its more matter of UX.

Sure. I was not totally fine with this result. But it was already better than the previous one.
What do you think about this attempt?

It uses the same font-size of the children and has a collapse icon.

Yeah this one looks much better. Collapse icon should definitely stay.
Maybe children items should have indention, so it feels more like they are children of item above them. I think its a best practice when it comes to this tree structures. Probably adding left padding would do the trick, so that children items are aligned with first/second letter of parent node.

Cool. I'm gonna try that later today then. I hope finish it today, to release a new version. It's been a while since the last release.

I have included a margin left for the menu. And also changed the color of the metadata titles to have a bit of less attention than the database title.

Great, this looks much better now :+1:


Vertical zooming on bedlike tracks

Description

What was changed in this pull request?

Added support for vertical zooming of BedLike annotations
Also fixes zooming and panning on mobile

Why is it necessary?

So that we can zoom in on regions of tightly clustered annotations

Screengrab:

Fixes #___
Checklist

[x] Set proper GitHub labels (e.g. v1.6+, ignore if you don't know)
[x] Unit tests added or updated
[o] Documentation added or updated
[o] Example(s) added or updated
[o] Update schema.json if there are changes to the viewconf JSON structure format
[x] Screenshot for visual changes (e.g. new tracks or UI changes)
[x] Updated CHANGELOG.md

Can you post a view conf where I can try this? The one in the test can't be easily copied.

It works locally. I did not try on a mobile/touch screen but it looks like that should be fixed as well
@alexander-veit to convert from the more loose js object syntax to the more strict json syntax I usually just copy and paste into one of these web-based json formatting tools https://jsonformatter.curiousconcept.com/ and then paste that output into the higlass view config

Thank you both!
@alexander-veit, here's a viewconf:
http://higlass.io/l/?d=dTfs-Jo4S5KZtzEt2jlJGA

Going to merge for now. Future bug fixes will go in subsequent PRs. Thanks for the reviews!


Update the "Release Checklist" in the Pull Request template

Hello,
I would like to suggest a couple of changes to the Pull Request template.
The release checklist currently has:

[ ] Authors updated in cf-conventions.adoc?
[ ] Next version in cf-conventions.adoc up to date? Versioning inspired by SemVer.
[ ] history.adoc up to date?
[ ] Conformance document up-to-date?

I propose removing two items, changing it to

[ ] Authors updated in cf-conventions.adoc?
[ ] Conformance document up-to-date?

These changes reflect the fact that

The version may or may not have already been incremented, and in any case it is beyond the scope of the PR.
The history entry should include the date when the PR was merged, which is unknown to the proposer. The history should instead be updated by the merger, and in any event the history checked prior to a release.

Perhaps we chould have two checklists - one for the Author and one for the Merger - that might  look like:
Author checklist

[ ] Authors updated in cf-conventions.adoc?
[ ] Conformance document up-to-date?

Merger checklist

[ ] history.adoc up to date?

Thoughts welcome!

@davidhassell you have my support, since we're merging continually and minting releases periodically this makes sense to me.
Rather than removing "history.adoc up to date?" we might consider using "history.adoc updated?" in order to ensure that we note the changes, and then when creating a new release we fill in the date as part of that checklist. That would ensure that the Author at least proposes the new lines in history.adoc.

Sounds good, thanks. How about:
Author checklist

[ ] Authors updated in cf-conventions.adoc?
[ ] Conformance document up-to-date?
[ ] Related issues registered in history.adoc, with placeholders for the dates?

Merger checklist

[ ] Set dates for new history.adoc entries?

@davidhassell the author checklist looks correct for me. From my side I have 1 more question about the merger checklist - does history.adoc get its date updated when merged, or when tagged? My understanding is that we might merge multiple PRs into a tag-ready branch, but then only tag it when we want to make a new release, meaning that the tag would pull in changes from multiple PRs.

Hi @erget,
I don't know. I had thought that we would merge PRs into master at the time of their acceptance, so that future PRs for the same next  release can build on the accepted changes.
I may well have misunderstood things, apologies if so, but in any event, if we say "Set the date when merged into master for new history.adoc entries", are we covered?

Hi @davidhassell as secretary I consider you the oracle of minting releases, so I'm sure you're right. The thought that I had was, if we're merging continuously into master, and then only tagging at certain points on master, then we'd be updating the dates in the history superfluously, no? Which wouldn't be bad, but life is made of tiny problems to solve, so we could perhaps do without and do it as part of a tagging checklist.
It might be easier to chat about it this afternoon when we meet at 2 anyway :)

Hi @erget,
From what you describe, should the dates always be the date of minting a release, rather than the date merging. That could clear things up? I think a quick chat later would be good!
I'd also like to add a merger item for the data model:
Merger checklist

[ ] <something about dates?>
[ ] Data model has been considered in the related issue(s)?

In most cases cases the data model is not impacted, but I think that it would be good to see a comment stating that it has been thought about in the related issue, rather than relying on a default assumption that "no mention = no impact".

Hi @davidhassell, @erget, all - In the current history.doc, the release/version history is hard to scan while the change/issue history is easy (though verbose) to scan. Whether dates are only on releases or on both releases and change/issue, I would like to suggest we move towards a "Release  - " header with all the changes/issues added in that version listed under that header. Something like:

Release 1.x - dd Month year

Issue #nnn: summary text (or title)
Issue #mmm: summary text/title

@ethanrd I agree with that approach. We could group the stuff with headers. In a lot of projects I work on I take inspiration from Keep a Changelog, so my changelogs (or in our case the history file) look like this:

[2.10.0]
Added

Add UMARF plugins to installer constructor and pipelines (#823)
Provided descriptions for OpenAPI specs definitions (#808)
Deploy native to HRIT conda package to EUMETSAT conda repository (#803)
...

Changed

Adapt DTWS dockerfile to execute commands as user (#853)
Temporarily remove support for MTG IRS L1 as format is being updated (#840)
Removing also the processing-dir (if any) when a customisation is deleted by user or administrator (#837)
...

Removed

Removed check_olda_cache option as Data Store input products are now downloaded in temporary processing_dir (#775)

Fixed

Properly parse content disposition as products downloaded via GUI on chrome contain start and trail underscore (#869)
Ensure netcdf-satellite output files can correctly be downloaded from GUI via DTWS (#865)
Fix 50-x service pages configuration (#854)
...

If we want to keep continuity we could add a merge date on each bullet point and a tag date on the release line, that way one wouldn't need the git history to reconstruct when a release was made.

history.adoc has since reformatted somewhat as discussed in this issue 2.5 years ago, but the original proposal to update the "release checklist" hasn't been implemented yet.

Please see https://github.com/cf-convention/cf-conventions/issues/369, which may lead to some changes that might affect what goes in the pull request template.


Encrypt wallet.dat option seems unavailable

I just noticed in the zcash-swing-wallet-ui repo this comment, so my issue can be closed:

Limitation: Wallet encryption has been temporarily disabled in ZCash due to stability problems. A corresponding issue #1552 has been opened by the ZCash developers. Correspondingly wallet encryption has been temporarily disabled in the ZCash Desktop GUI Wallet.


Proper Use Of Plugin In Android

🏗 Enhancement Proposal
NOTE: only Android, I have no idea the different edge cases that need to be covered on IOS
Many people have often, in one form or another, mentioned 2 things

In the first run, when calling "requestPermissions" it returns PermissionStatus.denied when it should instead logically return PermissionStatus.unknown.

You have explained: that there is nothing you can do to improve this given how android functions.

In the first run, when calling "shouldShowRequestPermissionRationale" what is returned is not accurate

Others have explained: that until you first at least call "requestPermissions" first the result may or may not be accurate
Both of the above are just what is mentioned but there are more edge cases to cover and no proper way has been suggested to cover them anywhere on your documentation
Pitch
Since I am getting an app ready for production I have taken the time to code and thoroughly test a solution and I propose that you add this to the documentation so others can have an easier time at using this without having to learn the ins and outs of how your plugin functions
//request contact permission from the user
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';

getContactPermission(
  BuildContext context,
  Function onPermissionGiven,
) async{
  PermissionStatus status = await PermissionHandler().checkPermissionStatus(PermissionGroup.contacts);
  if(status == PermissionStatus.granted) onPermissionGiven();
  else{ //NOTE: we know the negative status is VALID but not WHY
    //It may be negative because
    //1. its the first time this permission is requested
    //  - since by default are permission are denied in andriod
    //2. or because it was actually denied
    //To figure this out we have to do a little extra work

    //NOTE: at the moment "shouldShowRequestPermissionRationale" is not going to be accurate in all cases
    //it becomes accurate in all cases once you atleast request the permission first
    bool firstDontShowRationale = await PermissionHandler().shouldShowRequestPermissionRationale(PermissionGroup.contacts);
    bool secondDontShowRationale;

    //NOTE: the pop up MAY NOT come up in cases where the user has previously told the app to never request the permission again
    Map<PermissionGroup, PermissionStatus> perm = await PermissionHandler().requestPermissions([PermissionGroup.contacts]).then((var p)async{
      secondDontShowRationale = await PermissionHandler().shouldShowRequestPermissionRationale(PermissionGroup.contacts);
      return p;
    });

    //NOTE: in all cases
    //1. approving the permission allways works as expected
    //2. not deciding what to do when being soft requested by closing the app
    //    - keeps the permission in its current state

    //CASES (using "firstDontShowRationale" AND "secondDontShowRationale")
    //  -First Request did bringing up the pop up-
    //1. [false and true] on the absolute first time requesting the permission
    //2. [true and true] after the first soft denial and it continues to be the case until the last soft denial
    //3. [true and false] after the first permanent denial (only happens once)
    //  -First Request did not bringing up the pop up-
    //4. [false and false] after the from then on

    //from the observation above we can determine whether or not the request pop up came up and what to do about it
    bool popUpCameUp = secondDontShowRationale || (firstDontShowRationale && secondDontShowRationale == false);
    bool canSoftRequestAgain = secondDontShowRationale;

    //IF the pop up came up react to the decision of the user
    if(popUpCameUp){
      PermissionStatus status = perm[PermissionGroup.contacts];
      if(status == PermissionStatus.granted) onPermissionGiven();
      else{
        //TODO: IF the you don't need this plugin then you work is done
        //  - you asked and the user rejected your request

        //TODO: ELSE
        //  - continue asking (below is the code for you continuing to ask)

        if(canSoftRequestAgain){ //the pop up came up but the user chose 'deny'
          //if you can soft request again then do by using recursion so you can ask infinitely
          getContactPermission(
            context,
            onPermissionGiven,
          );
        }
        else{ //the pop up came up but the user chose 'dont ask again'
          //since the pop up didn't come up the user must have opted for
          //the app to never ask for this permission again
          //so we must now ask the user to do it manually
          //if they want to use the feature
          showDialog(
            context: context,
            //NOTE: you can set the barrier to non dismissible here
            barrierDismissible: true,
            builder: (BuildContext context) {
              return ExplainedRequest();
            },
          );
        }
      }
    }
    else{ //CASE 3: the pop up didn't come up so its not possible for the status to have changed
      //since the pop up didn't come up the user must have opted for
      //the app to never ask for this permission again
      //so we must now ask the user to do it manually
      //if they want to use the feature
      showDialog(
        context: context,
        //NOTE: you can set the barrier to non dismissible here
        barrierDismissible: true,
        builder: (BuildContext context) {
          return ExplainedRequest();
        },
      );
    }
  }
}

class ExplainedRequest extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      //NOTE: this is also triggered when we press the dismissable barrier
      onWillPop: ()async{
        //NOTE: returning true here will allow the user to pop the pop up
        return true;
      },
      //TODO: here you should
      //TODO: 1. explain to the user why you are requesting the permission and why they should reconsider
      //TODO: 2. tell the user how to given the app the desired permission
      //  - EX: "Enable \"Contacts\" in the \"Permissions\" section of \"App Settings\""
      //  - this is required because the user has told the system to never ask for permission again
      //    so the only way they can grant us permission now... is manually
      //TODO: 3. create a button that calls "PermissionHandler().openAppSettings();"
      //  - so the user doesn't have to manually find this (which is rather hard to find on your own)
      child: Container(),
    );
  }
}

Platforms affected (mark all that apply)

[ ] :iphone: iOS
[X] :robot: Android

@martijn00 I went hard on the comments so any other developers using this can know exactly what is being done and why
I hope this helps many others

I refined things even further
//request contact permission from the user
requestPermission({
   //the SINGLE permission you are requesting
  @required PermissionGroup thePermission,
  //whether or not you are forcing the user to grant you permission
  @required bool forcePermission,
  //what happens when the permission is given
  @required Function onPermissionGiven,
  //what happens when the permission isn't given (denied, or hard denied)
  @required Function onPermissionNotGiven,
  //Function that brings up another 1. Page or 2. Pop Up now that the standard permission request won't come up
  @required Function manualRequest,
}) async{
  //NOTE: we know for a fact that the permission status here the FIRST TIME around IS NOT authorized
  //PermissionStatus status = (await Permission.getPermissionsStatus([PermissionName.Contacts]))[0].permissionStatus;
  PermissionStatus status = await PermissionHandler().checkPermissionStatus(thePermission);
  if(isStatusAuthorized(status)) onPermissionGiven();
  else{ //NOTE: we know the negative status is VALID BUT...
    //NOTE: at the moment "shouldShowRequestPermissionRationale" is not going to be accurate in all cases
    //it becomes accurate in all cases once you atleast request the permission first
    bool firstDontShowRationale = await PermissionHandler().shouldShowRequestPermissionRationale(thePermission);
    bool secondDontShowRationale;

    //request permission
    //NOTE: this MAY just be skipped over in cases where the user has previously told the app to never request the permission again
    Map<PermissionGroup, PermissionStatus> perm = await PermissionHandler().requestPermissions([thePermission]).then((var p)async{
      secondDontShowRationale = await PermissionHandler().shouldShowRequestPermissionRationale(thePermission);
      return p;
    });

    //NOTE: in all cases
    //1. approving the permission allways works as expected
    //2. not deciding what to do when being soft requested by closing the app
    //    - keep the permission in its current state

    //CASES (firstDontShowRationale | secondDontShowRationale)
    //  -First Request did bringing up the pop up-
    //1. [false and true] on the absolute first time requesting the permission
    //2. [true and true] after the first soft denial and it continues to be the case until the last soft denial
    //3. [true and false] after the first permanent denial (only happens once)
    //  -First Request did not bringing up the pop up-
    //4. [false and false] after the from then on

    //from the observation above we can determine whether or not the request pop up came up and what to do about it
    bool popUpCameUp = secondDontShowRationale || (firstDontShowRationale && secondDontShowRationale == false);
    bool canSoftRequestAgain = secondDontShowRationale;

    //if the pop up came up react to the decision of the user
    if(popUpCameUp){
      PermissionStatus status = perm[thePermission];
      if(isStatusAuthorized(status)) onPermissionGiven();
      else{
        //if we are not forcing permission AND we either denied
        //NOTE: denied happens with either SOFT denied or HARD denied
        if(forcePermission == false && status == PermissionStatus.denied){
          //pops back to the page that requested this contact change
          onPermissionNotGiven();
        }
        else{
          //continue asking
          if(canSoftRequestAgain){
            requestPermission(
              thePermission: thePermission,
              forcePermission: forcePermission,
              onPermissionGiven: onPermissionGiven,
              onPermissionNotGiven: onPermissionNotGiven,
              manualRequest: manualRequest,
            );
          }
          else manualRequest();
        }
      }
    } //the pop up didn't come up so its not possible for the status to have changed
    else manualRequest();
  }
}

I agree that shouldShowRequestPermissionRationale needs more documentation, but I don't think that such a complex sample helps very much. A better starting point would be something like the sample shown in the official Android documentation.
Also, why do you mix await and .then() in your code?

@cremor this example is indeed complex but when you remove all the comments it becomes quite breif (ill do so below)
the reason why I await and .then() is because I need to wait for the pop up to either come up
or not come up
It will come up if the user has never actually said "dont pop up again"
it will not if the user has said that
Ideally shouldShowRequestPermissionRationale does this
but because of the limitation it does not
so the work around is the only option
I've tested it extensively
feel free to test it for yourself
here is the simplified code
requestPermission({
  @required PermissionGroup thePermission,
  @required bool forcePermission,
  @required Function onPermissionGiven,
  @required Function onPermissionNotGiven,
  @required Function manualRequest,
}) async{
  PermissionStatus status = await PermissionHandler().checkPermissionStatus(thePermission);
  if(isStatusAuthorized(status)) onPermissionGiven();
  else{
    bool firstDontShowRationale = await PermissionHandler().shouldShowRequestPermissionRationale(thePermission);
    bool secondDontShowRationale;

    //request permission
    //NOTE: this MAY just be skipped over in cases where the user has previously told the app to never request the permission again
    Map<PermissionGroup, PermissionStatus> perm = await PermissionHandler().requestPermissions([thePermission]).then((var p)async{
      secondDontShowRationale = await PermissionHandler().shouldShowRequestPermissionRationale(thePermission);
      return p;
    });

    //if the pop up came up the user may have allowed the permission
    PermissionStatus status = perm[thePermission];
    if(isStatusAuthorized(status)) onPermissionGiven();
    else{
      bool popUpCameUp = secondDontShowRationale || (firstDontShowRationale && secondDontShowRationale == false);
      bool canSoftRequestAgain = secondDontShowRationale;

      //if the pop up came up react to the decision of the user
      if(popUpCameUp){
        //if we are not forcing permission AND they denied us permission
        //NOTE: denied happens with either SOFT denied or HARD denied
        if(forcePermission == false && status == PermissionStatus.denied){
          onPermissionNotGiven();
        }
        else{
          //continue asking
          if(canSoftRequestAgain){
            requestPermission(
              thePermission: thePermission,
              forcePermission: forcePermission,
              onPermissionGiven: onPermissionGiven,
              onPermissionNotGiven: onPermissionNotGiven,
              manualRequest: manualRequest,
            );
          }
          else manualRequest();
        }
      }
      else manualRequest();
    }
  }
}

the reason why I await and .then() is because I need to wait for the pop up to either come up
or not come up
It will come up if the user has never actually said "dont pop up again"
it will not if the user has said that

You mean that the Future returned from shouldShowRequestPermissionRationale never finishes if the user has chosen "don't show again"? That's not intuitive at all and I would consider it a bug.

@cremor nope,
the Future completes without the pop up coming up IF the user has chosen "don't show again"
the Future completes with the pop up coming up IF the user has chosen "deny" or "allow"
in either case, you need to request first to get the actual valid return value of "shouldShowRequestPermissionRationale"
Note how it's possible for it to change without user action (Cases explained below)
The First boolean is firstDontShowRationale
The Second boolean is secondDontShowRationale
either of these being true means -> show the rationale
either of these being false means -> don't show the rationale
CASE1: [false and true] on the absolute first time requesting the permission

first-time function says -> yes show rationale!
when really the user has not yet said "don't show again"
so if you request the pop up it will come up
so ideally the function would instead say -> don't show rationale

This is because of the android limitation that has been mentioned before

& I imagine this is the case because perhaps android wants you to explain to your users why the permission is being requested before you request it
The problem with this is that now we need to do some weird code (like what I have above) to determine whether we really NEED to show rationale
NOTE: how the function is called "SHOULD show rationale" and not "NEED to show rationale"
so I guess technically it works fine... but it's less helpful for the developer
showing the rationale at its core is a design decision but I have no idea why it's being forced on us
after the permission is requested once regularly then the program assumes that the rationale was displayed
its all rather wonky really
but the code I wrote lets people not worry about all that and just get the thing to work

second-time function says -> whatever the user selected on the pop-up

Let me know if you need me to explain the cases below
CASE 2: [true and true] after the first soft denial and it continues to be the case until the last soft denial
CASE 3: [true and false] after the first permanent denial (only happens once)
CASE 4: [false and false] after all other permanent denials

@cremor many updates made above, perhaps your end merits a refresh
but hopefully, I'm getting my point across

where is isStatusAuthorized(status) defined in your example code


subo create runnable flag for directly exposing on Directive #174

Fixes #174

#275 should unblock this

Could you rebase @yashikajotwani12 and let us know if it passes? It might fail due to GITHUB_TOKEN -- not sure.


ZSSRichTextEditorToolbarBold == ZSSRichTextEditorToolbarItalic

ZSSRichTextEditorToolbarBold and ZSSRichTextEditorToolbarItalic are represented by the same bit:
    ZSSRichTextEditorToolbarBold = 1,
    ZSSRichTextEditorToolbarItalic = 1 << 0,

https://github.com/nnhubbard/ZSSRichTextEditor/blob/8235107b2b96b8e8de0235da91516fa1527a5e4d/ZSSRichTextEditor/ZSSRichTextEditor.h#L17
Seems like we're out of bits for an 32 bit integer.
I guess ZSSRichTextEditorToolbarAll and ZSSRichTextEditorToolbarNone should not be represented by a bit, but by the whole integer number. ZSSRichTextEditorToolbarAll would be NSUIntegerMax (or OR the single enums together) and ZSSRichTextEditorToolbarNone would be 0.
Compare to the UIRectEdge enum.
Note that ZSSRichTextEditorToolbarAll and ZSSRichTextEditorToolbarNone would not be able to be ORed anymore, they would need to be directly assigned. Note that this would be more clean, but it would also break backwards compatibility for clients.

@fabb I will have a look into this.


Issues with mod on server-side

Hi, I've recently ran into a couple of problems when running CraftingTweaks on the server side.

in pair with the Crafting Station mod I'm getting a crash when I guess CT is trying to access/create client side config (log is below)
there's a weird behavior with shift clicking items, as soon as I removed CT from server side, the issue was gone. Basically if you split a stack of items in a container and you shift click them back into your inventory, you'll see that the items are not grouped into one stack but instead they cause a visual glitch until you reopen your inv. (note: mouse tweaks is causing a similar bug)

[12Oct2019 23:27:22.141] [modloading-worker-10/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/]: Exception caught during firing event: null
Index: 1
Listeners:
0: NORMAL
1: net.minecraftforge.eventbus.EventBus$$Lambda$2659/911685221@2cd169bd
java.lang.NullPointerException
at net.blay09.mods.craftingtweaks.CraftingTweaksConfig.addModSupportOption(CraftingTweaksConfig.java:118)
at net.blay09.mods.craftingtweaks.CraftingTweaksProviderManager.registerProvider(CraftingTweaksProviderManager.java:26)
at net.blay09.mods.craftingtweaks.CraftingTweaks.lambda$processInterMod$1(CraftingTweaks.java:154)
at net.minecraftforge.fml.InterModComms$QueueFilteringSpliterator.tryAdvance(InterModComms.java:171)
at java.util.Spliterator.forEachRemaining(Spliterator.java:326)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at net.blay09.mods.craftingtweaks.CraftingTweaks.processInterMod(CraftingTweaks.java:55)
at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:212)
at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:204)
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258)
at net.minecraftforge.fml.javafmlmod.FMLModContainer.fireEvent(FMLModContainer.java:106)
at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65)
at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65)
at net.minecraftforge.fml.ModContainer.transitionState(ModContainer.java:112)
at net.minecraftforge.fml.ModList.lambda$null$10(ModList.java:134)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Can't reproduce the second part with only Crafting Tweaks installed.

Thank you for the quick update, the second part was caused by a datapack... my bad, I forgot to remove the datapacks folder


cherry-pick-MM-51032

cherry pick (#12306)

Summary

Ticket Link

Related Pull Requests

Has server changes (please link here)
Has mobile changes (please link here)

Screenshots

Release Note

NONE

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: 267cecd71392ec47e0165483de0456675d128f82


Update index.md

link to the official website

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Link to the official website

Hi,
Thanks for this pull request (PR).
Unfortunately, we are marking this PR invalid for hacktoberfest. We believe it does not follow the recommended guidelines:

Quality Standards
In line with Hacktoberfest value #2 (Quantity is fun, Quality is key), we have provided examples of the quality standards we encourage. This applies mainly to beginners.

PRs that are automated e.g. scripted opening PRs to remove whitespace / optimize images.
PRs that are disruptive e.g. taking someone else's branch/commits and making a PR.
PRs that are regarded by a project maintainer as a hindrance vs. helping.
Something that's clearly an attempt to simply +1 your PR count for October.

Learn more at https://hacktoberfest.digitalocean.com/details


Added Query iterator method Continuation

Initial PR https://github.com/milvus-io/milvus-sdk-csharp/pull/80
Here is comments fix and System.Text.Json package update because of compile errors (warning as errors )

Finally, can you please point to the corresponding Python code which I assume this is based on?

Here it is https://github.com/milvus-io/pymilvus/blob/6625af7fd0bfdf75fd596e7a9a871528cb539ef7/pymilvus/orm/iterator.py

Tests added

Seems handled all the comments from previous PR.

What is strange that my local unit tests run is successful

It seems like there's a race condition error because I added the first tests for string keys.
Do you want me to remove the tests for string key schemas?

Thanks - but note that there are still test failures.
I'll try to review again soon, though note I'll be away for the coming week, so it will likely take a bit of time. You'll have to be patient.

Thanks - but note that there are still test failures.
I'll try to review again soon, though note I'll be away for the coming week, so it will likely take a bit of time. You'll have to be patient.

Test run now successful. Am I missed some comments? Or we finished so far?

Thanks, I'm going to merge this. I'll likely do another small pass next week with some cleanup/stuff before releasing.

@roji Thank you!

@roji Hi! When release is planned? Still old version at NuGet.org


[#158386152] Add missing datadog notifications

What
It seems we forgot to add the email notification for many alerts and we didn't get emails for alerts which should've been investigated, like the daily increase in the gorouter latency caused by a Verify perf test.
I didn't enable the email notifications for the DNS response time monitor as we know this monitor alerts a lot, so it would cause a lot of noise.
Also I removed the escalation_message field from the Datadog monitors. This field is only needed if we enable renotify_interval, but we don't use it (except for 2 Compose monitors).
How to review

Code review

Deploy the Datadog monitors from this branch and check if they deploy cleanly (You can speed up review if you manually enable Datadog only for the datadog-terraform-apply in the pipeline)

Who can review
Not me.

I've done a quick code review but not deployed this, because Andras had already done so and it would waste time in my opinion.


PYIC-1511 Updates to the dev env deployment script

Proposed changes
What changed
Updates to the dev env deployment script
Further updates to script, fixed all remaining actual issues
modified:   utils/README.md
modified:   utils/deploy_to_dev_env.sh

Why did it change
This is just some quality of life improvements to the deployment shell script.

Issue tracking

PYIC-1511

Checklists
Environment variables or secrets

[ ] No environment variables or secrets were added or changed

[ ] Documented in the README
[ ] Added to deployment repository
[ ] Added to local startup repository

Other considerations

[ ] Update README with any new instructions or tasks

This was originally pushed up under: https://github.com/alphagov/di-ipv-core-front/pull/274
This is basically the same thing with more cleanups, but assigned to a proper ticket for tracking purposes.


AttributeError: 'AllError' object has no attribute 'message'

This follows up #142 -- using pep257 tool from master branch, a new error is revealed:
Traceback (most recent call last):
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/prospector/tools/pep257/__init__.py", line 42, in run
    code_file,
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/pep257.py", line 1319, in check_source
    module = parse(StringIO(source), filename)
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/pep257.py", line 265, in __call__
    return self.parse_module()
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/pep257.py", line 415, in parse_module
    children = list(self.parse_definitions(Module, all=True))
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/pep257.py", line 349, in parse_definitions
    self.parse_all()
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/pep257.py", line 399, in parse_all
    self.current.kind)
pep257.AllError: Unexpected token kind in  __all__: tk.NAME. That means pep257 cannot decide which definitions are public. Variable __all__ should be present at most once in each file, in form `__all__ = ('a_public_function', 'APublicClass', ...)`. More info on __all__: http://stackoverflow.com/q/44834/.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/docker/Code/telnetlib3/.tox/sa/bin/prospector", line 11, in <module>
    sys.exit(main())
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/prospector/run.py", line 143, in main
    prospector.execute()
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/prospector/run.py", line 52, in execute
    messages += tool.run(found_files)
  File "/Users/docker/Code/telnetlib3/.tox/sa/lib/python3.4/site-packages/prospector/tools/pep257/__init__.py", line 72, in run
    message=exc.message,
AttributeError: 'AllError' object has no attribute 'message'

will move to prospector project


Added --header option

Currently all output has the // Generated by LiveScript <version> header. This change leaves things as-is for existing projects, but if you set header to false in options, then it will suppress said header.
//...
livescript: {
  options: {
    header: false;
  }
}
//...

Isn't this already the case? If you set header: false in your initConfig, it will get set with this.options?

I submitted the patch because I was unable to get it working. Let me revert my local changes and see...

Well... I might be doing it wrong, but here's the results of my test.
grunt.initConfig {
	watch:
		livescript_public:
			files: ['dev/ls/*.ls']
			tasks: 'newer:livescript:public'
	livescript:
		options:
			header: false # <-- This doesn't work without the change
		public:
			expand: true
			cwd   : 'dev/ls'
			src   : '*.ls'
			dest  : 'public/js/'
			ext   : '.js'
}

I'll totes accept the patch to at least have it listed and publish an update. I really thought Grunt would accept that. Anyway, thanks for taking the time to look a bit further!

Published as 0.5.4


Schema queries with start/stop arguments (copy/pasted directly from documentation) result in error

The start/stop arguments for schema exploration don't work, making it difficult or impossible to explore the schema for anything but the recent past (i.e., the default query time period).
Steps to reproduce:
List the minimal actions needed to reproduce the behavior.

Start a fresh/clean InfluxDB instance v2.1.1 and set it up with a single organization and a bucket called example-bucket.
Write a trivial amount of data to establish a measurement with a few tag/field values:

Example line protocol file influx_import.txt:
example-measurement,make=Ferrari,model=Testarossa speed=10.243,rpm=2300<PHONE_NUMBER>000000000

Import via CLI:
influx write --org-id <org_id> --bucket-id <bucket_id> --format lp -f influx_import.txt

Execute any of the following queries via the CLI query command, all of which were copy/pasted directly from documentation:

import "influxdata/influxdb/schema"

schema.tagKeys(bucket: "example-bucket", start: -90d, stop: -60d)

schema.fieldKeys(bucket: "example-bucket", start: -90d, stop: -60d)

schema.measurementTagKeys(bucket: "example-bucket", measurement: "example-measurement", start: -90d, stop: -60d)

schema.measurementFieldKeys(bucket: "example-bucket",  measurement: "example-measurement", start: -90d, stop: -60d)

schema.tagValues(bucket: "example-bucket", tag: "speed", start: -90d, stop: -60d)

schema.measurementTagValues(
    bucket: "example-bucket",
    measurement: "example-measurement",
    tag: "speed",
    start: -90d,
    stop: -60d,
)

Expected behavior:
Query should return without error consistent with documentation found at:
tagKeys
fieldKeys
measurementFieldKeys
measurementTagKeys
tagValues
measurementTagValues
Actual behavior:
The following errors are returned:
> influx query --org-id aa4ab8f71f81b363 -f influx_query_tagKeys.txt
Error: failed to execute query: 400 Bad Request: error @3:1-3:66: found unexpected argument stop

> influx query --org-id aa4ab8f71f81b363 -f influx_query_fieldKeys.txt
Error: failed to execute query: 400 Bad Request: error @3:1-3:68: found unexpected argument stop

> influx query --org-id aa4ab8f71f81b363 -f influx_query_measurementTagKeys.txt
Error: failed to execute query: 400 Bad Request: error @3:1-3:98: found unexpected argument start

> influx query --org-id aa4ab8f71f81b363 -f influx_query_measurementFieldKeys.txt
Error: failed to execute query: 400 Bad Request: error @3:1-3:101: found unexpected argument stop

> influx query --org-id aa4ab8f71f81b363 -f influx_query_tagValues.txt
Error: failed to execute query: 400 Bad Request: error @3:1-3:82: found unexpected argument stop

> influx query --org-id aa4ab8f71f81b363 -f influx_query_measurementFieldKeys.txt
Error: failed to execute query: 400 Bad Request: error @3:1-3:101: found unexpected argument stop

Additionally, for those queries where a start argument doesn't immediately result in error, if you try to supply an absolute time, you will receive error @2:1-2:110: expected duration but found time (argument start). The document implies that you should be able to supply an absolute time:

Relative start times are defined using negative durations. Negative durations are relative to now. Absolute start times are defined using time values.

Environment info:

System info: Windows 10
InfluxDB version: InfluxDB 2.1.1 (git: 657e1839de) build_date: 2021-11-09T03:03:48Z

Config:
No non-default config.

Ah great, thanks for the quick resolution @sanderson!


Add keeweb

Just port my KeeWeb package to coreteampackage.
Description

Motivation and Context

How Has this Been Tested?

Windows 7 SP1
AppVeyor WMF 5 image. However, as per Rob's request we removed the forcing of the TLS version in our chocolateyInstall.ps1. This change might make the build fail (the test of the package install process).

Screenshot (if appropriate, usually isn't needed):
N/A
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Migrated package (a package has been migrated from another repository)

Checklist:

[x] My code follows the code style of this repository.
[ ] My change requires a change to documentation (this usually means the notes in the description of a package).
[ ] I have updated the documentation accordingly (this usually means the notes in the description of a package).
[x] All files are up to date with the latest Contributing Guidelines
[x] The added/modified package passed install/uninstall in the chocolatey test environment.
[x] The changes only affect a single package (not including meta package).

Original Location

Original Repository
[x] The migration guidelines have been followed

Ok I updated the package according to the changes you requested.

It requires some reafactoring

Move legal stuff to legal folder, add  this folder in nuspec
Your choco installer doesn't need to decided on x64/x32. Depend on latest choco and use File/File64 parameters (and remove readme note about this since its basic choco behavior).

After that this is read 4 merge.
Also,  your get_latest can be significantly reduced; you don't need to set checksums when using Get-RemtoeFiles, it will do that for you. This is not the same since comparing to what you did now - hash is calculated from the file wile you take from the site. I do not requrie you to change this but if this was not your original intention you could go this route too.

@majkinetor Your choco installer doesn't need to decide on x64/x32 manually this is what does QBittorrent thought:
https://github.com/chocolatey/chocolatey-coreteampackages/blob/master/automatic/qbittorrent/tools/chocolateyinstall.ps1#L6

That package was created back in time when choco didn't support this.
Examples:
https://github.com/chocolatey/chocolatey-coreteampackages/blob/0259c93ffc63f34cc48861bbbfa6e4d04bba70f1/automatic/codelite/tools/chocolateyInstall.ps1
https://github.com/chocolatey/chocolatey-coreteampackages/blob/0b755454aab4e6bb5591a502fe76de7972f5159f/automatic/nomacs/tools/chocolateyInstall.ps1

:x: Package verification failed, please review the Appveyor Logs and the provided Artifacts before requesting a human reviewer to take a look.

:white_check_mark: Package verification completed without issues. PR is now pending human review

:white_check_mark: Package verification completed without issues. PR is now pending human review

:x: Package verification failed, please review the Appveyor Logs and the provided Artifacts before requesting a human reviewer to take a look.

:x: Package verification failed, please review the Appveyor Logs and the provided Artifacts before requesting a human reviewer to take a look.

:white_check_mark: Package verification completed without issues. PR is now pending human review

And yes, wrt. the hashes, I'm aware Get-RemoteFiles already does such a job, but indeed, like you understood, I'm relying on upstream's hashes rather than the ones generated automatically :)

FYI, AU can still check it out for you:

From: AU README.md
If the ChecksumXX hash key is present, the AU will change to checksum verification mode - it will download the installer and verify that its checksum matches the one provided. If the key is not present, the AU will calculate hash with the given ChecksumTypeXX algorithm.

If the ChecksumXX hash key is present, the AU will change to checksum verification mode - it will download the installer and verify that its checksum matches the one provided. If the key is not present, the AU will calculate hash with the given ChecksumTypeXX algorithm.

@majkinetor So do I need to change anything then?

This looks OK (just change that one line).
Thanks for your patience. We do this kind of thing on purpose, so your next package wont require so much assistence.

@majkinetor So do I need to change anything then?

In theory, this can make invalid package as checksum can change during download etc. But probability is very low and perhaps this is how it should be.
Looking forward to MM package.

:white_check_mark: Package verification completed without issues. PR is now pending human review

@majkinetor I'm already set as maintainer of KeeWeb and chocolatey has already been set as maintainer as well :)
And btw, I already have write commit rights to this core team packages repo :) But, right now, haveing a second admin helping me in reviewing things is great. Thanks!


try() to generate output.ses_smtp_password_v4

In module upgrades, I'm seeing errors like this:
Error: Invalid function argument

on .terraform/modules/user/outputs.tf line 29, in output "ses_smtp_password_v4":
29:   value       = join("", aws_iam_access_key.default.*.ses_smtp_password_v4)
    |----------------
    | aws_iam_access_key.default is tuple with 1 element

Invalid value for "lists" parameter: element 0 is null; cannot concatenate
null values.

This change wraps the join() with a try(..., null), causing null
to be returned as a fallback on error.

It is very weird... all outputs in this module use construction join("", something), but you've got error only in one place. I suppose that need to bump version of aws provider and it'll fix issue permamently
https://github.com/cloudposse/terraform-aws-iam-system-user/blob/master/versions.tf#L5

I seem to be hitting this very same issue.
In more details:

I am using cloudposse/terraform-aws-s3-bucket which has a dependency to cloudposse/terraform-aws-iam-s3-user which has dependency to this module.
I have something like this in my provider configuration (so it should be quite new):

provider "aws" {
  version = "~> 3.7.0"
  region = var.region
  profile = var.profile
  shared_credentials_file = var.shared_credentials_file
}

terraform is 0.13.3
interesting to note that this happens only on upgrade, because creating a new s3 bucket doesn't introduce this error.

I think I have managed to identify the issue and resolve it.
In the older module, we can find from state file something like:
{
  "module": "module.s3_bucket.module.s3_user.module.s3_user",
  "mode": "managed",
  "type": "aws_iam_access_key",
  "name": "default",
  "provider": "provider[\"registry.terraform.io/-/aws\"]",
  "instances": [
    {
      "index_key": 0,
      "schema_version": 0,
      "attributes_flat": {
        "id": "someid",
        "secret": "somesecret",
        "ses_smtp_password": "somesecret",
        "status": "Active",
        "user": "user"
      }
    }
  ]
}

In the newer module, we can find something like:
{
  "module": "module.s3_bucket.module.s3_user.module.s3_user",
  "mode": "managed",
  "type": "aws_iam_access_key",
  "name": "default",
  "provider": "provider[\"registry.terraform.io/-/aws\"]",
  "instances": [
    {
      "index_key": 0,
      "schema_version": 0,
      "attributes_flat": {
        "id": "someid",
        "secret": "somesecret",
        "ses_smtp_password_v4": "somesecret",
        "status": "Active",
        "user": "user"
      }
    }
  ]
}

As you can see the key named ses_smtp_password has changed to ses_smtp_password_v4.
After modifying key name, I managed to successfully upgrade the module and its state.
Workflow is as follows:

pull the state with terraform state pull > state.out.
modify state.out file as described above.
push state with terraform state push -force state.out.
upgrade module.


Incorrect highlighting of active editor tab - OSX, dark mode

VSCode Version: 1.46.1
Commit: cd9ea6488829f560dc949a8b2fb789f3cdc05f5d
Date: 2020-06-17T21:17:14.222Z
Electron: 7.3.1
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.5.0
OS Version: macOS 10.15.5

Steps to Reproduce:

Have OS set to dark mode
Open multiple editor tabs

Does this issue occur when all extensions are disabled?: yes
The active editor tab has a black background, and the inactive ones are dark gray.  However, in Safari (and terminal), the inactive tabs have black background and the active one has a dark gray background.
VS Code;

Safari:

This can be changed via themes and settings. We do not detect macOS dark mode to update the colors.


snowsql fails with missing libcrypto library

Describe the bug
snowsql fails with an error that a dependency is missing
Steps To Reproduce
Steps to reproduce the behavior:

allow unfree packages: export NIXPKGS_ALLOW_UNFREE=1
run: nix run nixpkgs#snowsql --impure -- --accountname unknown --username alice <<<"select current_user()"
supply any text when prompted to enter a password

Expected behavior
The command should either succeed when supplied with valid parameters or end with an error message to the effect that the parameters aren't valid.
Screenshots
The following error is not one of the expected error:
The library libcrypto could not be found
If the error message is unclear, enable logging using -o log_level=DEBUG and see the log to find out the cause. Contact support for further help.

Additional context
snowsql runs without the above error when binutils is also installed.
snowsql is likely written in Python using snowflake-connector-python which had a known bug as described in #176917 .
Additional reference: https://github.com/dbt-labs/dbt-core/issues/3366#issuecomment-849764321
Notify maintainers

@andehen
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.0.3, NixOS, 22.11 (Raccoon), 22.11.20221025.f994293`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.11.0`
 - channels(padhia): `"home-manager"`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Thanks for reporting this! I'll take a look at it when I have time.

Fixed by #217234

Unfortunately, this bug isn't fixed yet. I still get the same error:
~❯ export NIXPKGS_ALLOW_UNFREE=1                                                                                ~took 13s ❯
~❯ nix run nixpkgs#snowsql --impure -- --accountname unknown --username alice <<<"select current_user()"                                                                                ~❯
Password:
The library libcrypto could not be found
If the error message is unclear, enable logging using -o log_level=DEBUG and see the log to find out the cause. Contact support for further help.
Goodbye!

If anyone else runs into this problem, I have this flake that seems to have fixed this issue for me.


Skipping a flaky test

Signed-off-by: Matthias Wessendorf<EMAIL_ADDRESS>Fixes #

Proposed Changes

skip a flaky test, to reduce noise

Release Note

Docs

I found this issue: https://github.com/knative-sandbox/eventing-kafka/issues/218   from @pierDipi
I'd like to skip the test for now @travis-minke-sap

Oh, that's interesting - we weren't aware it was flaky.  Sounds good to skip it for now.  Thanks for creating the bug (#218) - we will look into fixing/re-enabling!
/lgtm


Web Server is broken, due to TLC, and cannot be fixed, due to JDK hard-coding new Thread(null, dispatcher, "HTTP-Dispatcher", 0, false)

Expected VS Actual Behavior
https://docs.enola.dev/use/server/ should work, and used to, but is broken since I had introduced TLC & Co.
Behavior
java.lang.IllegalStateException: Missing TLC.open() in call chain, can't get: interface dev.enola.common.io.iri.namespace.NamespaceConverter
	at dev.enola.common.context.TLC.context(TLC.java:89)
	at dev.enola.common.context.TLC.get(TLC.java:77)
	at dev.enola.common.io.iri.namespace.NamespaceConverter$1.toCURIE(NamespaceConverter.java:42)
	at dev.enola.thing.metadata.ThingMetadataProvider.get(ThingMetadataProvider.java:89)
	at dev.enola.thing.metadata.ThingMetadataProvider.get(ThingMetadataProvider.java:71)
	at dev.enola.web.ThingUI.link(ThingUI.java:101)
	at dev.enola.web.ThingUI.table(ThingUI.java:80)
	at dev.enola.web.ThingUI.html(ThingUI.java:51)
	at dev.enola.web.UI.getEntityHTML(UI.java:106)
	at dev.enola.web.UI.getHTML(UI.java:94)
	at dev.enola.web.UI.get(UI.java:82)
	at dev.enola.web.SunServer$Wrapper.handle(SunServer.java:92)
	at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98)
	at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
	at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:101)
	at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:871)
	at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98)
	at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:847)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Steps to Reproduce the Problem

./enola -vvvvvv server --model docs/use/library/model.yaml --httpPort=8080
Open http://[::]:8080/ui/enola:/
💥

I've debugged this, and fixed as much as I could with in #848 ... but, as detailed there, I "cannot" fix this, with code as-is:
Because of this! That "hard-coded" new Thread(null, dispatcher, "HTTP-Dispatcher", 0, false) in the (package private) sun.net.httpserver.ServerImpl, which is used by the (public) com.sun.net.httpserver.HttpServer, which ignores (!) its setExecutor() (for the HTTP-Dispatcher thread, uses it only for something else) makes it basically impossibly to use that for anything with fancy ThreadLocal fun?
I think I probably have only 2 choice here:
(a) ask some friends how one reports an issue about this on bugs.openjdk.org, and then wait a few years... ⏳
(b) ditch the use of com.sun.net.httpserver.HttpServer and switch to good ol' Jetty, or whatever else is fancy nowadays.

(b) ditch the use of com.sun.net.httpserver.HttpServer and switch to good ol' Jetty, or whatever else is fancy nowadays.

Actually, because of the existing gRPC dependency, which anyway pulls Netty, using it as an HTTP Server is probably the way to go, and would avoid pulling in more dependencies into this project. According to Baeldung, and a netty/example this seems quite feasible, actually.

A completely different take on this could be to let TLC have a static "escape hatch"... ugly! But perhaps OK short-term, for?

(a) ask some friends how one reports an issue about this on bugs.openjdk.org, and then wait a few years... ⏳

==> https://github.com/vorburger/vorburger.ch-Notes/blob/develop/java/openjdk-jira.md


support MultiBoxPrior

@zhreshold
Does NNVM MXNET frontend support MultiBoxPrior?
I got the following error when importing mobilenet_ssd pretrained model from
https://github.com/zhreshold/mxnet-ssd/releases/download/v0.7-alpha/mobilenet-ssd-512.zip
NotImplementedError: Operator: _contrib_MultiBoxPrior is not supported in nnvm
Thanks,

No, it's not currently supported in nnvm

Do you have a plan to support it? With it, we can test object detection performance using NNVM.
Thanks,

@zhreshold
Any  update on this operator support?
If you are still busy, can you provide  a guidance how to implement it and I can try it myself?
Thanks,

I am blocked by other stuffs recently, so you are very welcome to try it youself first.
Basically these operators are quite simple and light weight in computation. You can refer to contrib/cblas for wiring external functions.

check out https://github.com/dmlc/tvm/issues/908

Let us move the discussion to  dmlc/tvm#908 to minimize the number of issues


Linux (Gnome) paste inserts unicode-escaped text

ggqc for 公共汽车

Also letter v gets stuck after Ctrl+V


Noone except Admins can use TrainCarts

BkCommonLib version: latest
TrainCarts version: latest
Spigot version: => PaperMC latest (1.13.2)

Problem or bug: noone except user with admin group are able to place and interact with all the features traincarts provides. i am using UltraPermission - moreover, i didn't find any permissions i have to set up for several groups.
also the wiki didn't tell me how to set up permissions.
what i have to do?

Change permissions in the permission file

ah, ok. what i have to enter there? op = admin? default = everyone?
i have 4 different groups: admin, vip, member, guest
only member++ should be able to use traincarts. guests aren't allow to do anything.

Sorry it took so long, I believe just entering the group/rank name would work in there.


Changes to allow for flexible rsync directory

-rsync directory was hardcoded previously and did not reflect the default /vagrant rsync directory

Thanks @danielin917


Replace MRE with call to Sleep on mincore

Use the system Sleep API instead of a static WaitHandle. The current
MRE ends up calling WaitForMultipleObjectsEx after about 8 levels of
abstraction. An additional benefit is the removal of Interop.mincore
needing a static class constructor.

It would be nice to get it done properly to match the corefx interop style - https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/interop-guidelines.md . It will also fix the build break on non-Windows OSes.
@kouvel Do you happen to have Sleep implemented as part of the Unix threading support already?

It's only partially implemented on Unix at the moment.
It looks like src\System.Private.Interop\src\Shared\Interop.Manual.cs uses the same implementation as well, should that also be changed?

Also I'm curious the reason for using Yield for Sleep(0) instead of calling Sleep? From my reading, they each have different issues when used in spin loops and ultimately a spin loop would have to Sleep(1). Based on my understanding, Sleep(0) has the issue where it does not yield to lower priority threads, and SwitchToThread and sched_yield have the issue where they only yield to threads that are ready to run on the current processor, not on other processors.

On second thought, it looks like Sleep(0) was changed to yield to threads of any priority since Windows Server 2003:
https://msdn.microsoft.com/en-us/library/ms686298(VS.85).aspx
So maybe calling Sleep(0) is better than calling SwitchToThread?

Regarding priority, the link says "of equal priority" in the special note for Windows XP, but the general description says any thread:

A value of zero causes the thread to relinquish the remainder of its time slice to any other thread that is ready to run.

Windows XP:  A value of zero causes the thread to relinquish the remainder of its time slice to any other thread of equal priority that is ready to run. ... This behavior changed starting with Windows Server 2003.

I don't want to leave an open PR for weeks on a trivial change. Will re-open once threading on Unix is more fleshed out.