Unsolicited critique

I have been digging around the source code a little bit and seeing some room for improvement. The general direction of the project is good but I think things might be smoother with a nudge in the right direction.
Larger items
Language choice
The project's goal is to be a CLI clone of Sublime Text and everyone talks to Sublime Text via it's Python plugin system. Great choice with regard to Python :+1:
File architecture
It's usually not the best idea to keep most files in the root project folder.  In Python projects, people usually relocate them into a folder with the project's name:

suplemon/ - Git repo folder

suplemon/ - Container for all code related project files

main.py - Starting point for our application
linelight/ - Syntax highlighting files
...

CLI invocation
The current method of starting suplemon is great for a proof of concept but doesn't allow for a lot of flexibility with CLI arguments (e.g. handling --version).
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/main.py#L446-L458
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/main.py#L488-L493
I suggest creating a bin/ folder and a suplemon.py script there. From this point, there are 2 approaches I have seen:

Use argparse and perform all logic for interpretting arguments/setting up a config here

import argparse

parser = argparse.ArgumentParser(...)

Create a suplemon/cli.py next to main.py which exposes a function cli() to parse arguments

# Inside `cli.py`
import argparse

def cli():
    parser = argparse.ArgumentParser(...)

# Inside `bin/suplemon.py`
from cli import cli
cli()

In both cases, we:

Interpret CLI arguments and initialize App() with our customized configuration (i.e. App(config))
If there were any files requested, invoke appropriate commands on App() to load them up

Pythonic anti-patterns
Using import * is a very big bad Pythonic anti-pattern. It makes it harder to find out where a function comes from which slows down new contributors. Please consider removing those =/
Linting/tests
There is no linting/tests. For new contributors, a lack of tests is a deterent because there is no way to verify they haven't broken anything.
As for linting, it saves a ton of time on PRs for people missing docstrings/using incorrect quotes. Additionally, it makes the project feel consistent which means code can be shifted around more easily. I recommend using flake8 and flake8-quotes; it's not overwhelming with its linting and has a nice extension system.
https://pypi.python.org/pypi/flake8
https://github.com/zheller/flake8-quotes
Command consistency with Sublime Text
A good amount of commands are consistent with Sublime Text. This is great because it makes the APIs/plugins easier to reuse between the systems. However, there are a few that are straying (e.g. prev_file vs prev_view):
https://github.com/randy3k/sublime-default/blob/5c296d63820968a1fe1e0c9a54cb0a2cd7c65595/Default (Linux).sublime-keymap#L90-L91
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/main.py#L48-L49
Additionally, for things like scrolling we can input custom arguments to the commands (actually keyword arguments/kwargs):
https://github.com/randy3k/sublime-default/blob/5c296d63820968a1fe1e0c9a54cb0a2cd7c65595/Default (Linux).sublime-keymap#L87-L88
Shortcut consistency with Sublime Text
We already discussed this in #49 but to reiterate, it would be nice to be as close to Sublime Text to make switching contexts easier.
https://github.com/randy3k/sublime-default/blob/5c296d63820968a1fe1e0c9a54cb0a2cd7c65595/Default (Linux).sublime-keymap
Breakdown App
main.py has grown quite large. We should consider breaking out the sections into classes that mixin or are modules themselves.
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/main.py
Use Python logging library
While generating a custom logger works, it isn't as practical/error proof as Python's built in logger. We should consider using the logging module instead.
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/logger.py
https://docs.python.org/3.4/library/logging.html
Configuration management
Use a ~/.config/suplemon/ folder for multiple files over a single file at ~/.suplemon-config.json. There are a few reasons for this:

Not compatible with Sublime Text
Combined files become larger which makes it harder to search through as a user
People hate more files in their ~ folder (hence ~/.config)

As for where we keep the defaults, I suggest removing them from config and storing them as .json files along side in a suplemon/config/ folder. This will keep the paradigms consistent between ~/.config/ and suplemon itself.
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/config.py#L17-L45
Small items
app.log method
Both redefining logger methods on app and passing in log_type as a parameter are unnecessary conventions. Python's logging library has multiple methods for each different level (e.g. logger.info, logger.debug). We should move the logging and pick up those methods for free. Additionally, redefining the methods on app is impractical and leads to redundant code:
app.logger.info("Hello World!")

Always use interpolation or .format
Python has built in suport for making concatenated strings presentable via interpolation. We should stop using concatenation and move to interpolation as it's more Pythonic:
self.logger.log("Looking for command '{cmd}'".format(cmd=cmd), LOG_INFO)

https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/main.py#L296-L298
Coding consistency
You are always using always using double quotes for strings. That is great to see as it leads to the project feeling more consistent as a whole :+1:
Most functions have docstrings which is great. One note on this, you might want to consider using Sphinx notation for documenting parameters/return values as well:
http://sphinx-doc.org/domains.html#info-field-lists
Inconsistent spacing sometimes
You are pretty good with your spacing being consistent (e.g. spaces before/after +, ==). However, there were a few spots that didn't have consistency. Typically a linter will catch this.
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/main.py#L296
self.logger.log("Looking for command '" + cmd +"'", LOG_INFO)
# should be
self.logger.log("Looking for command '" + cmd + "'", LOG_INFO)

https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/modules.py#L43
self.log("Loading: "+str(item), LOG_INFO)
# should be
self.log("Loading: " + str(item), LOG_INFO)

https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/modules.py#L65
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/modules.py#L69
Use key bindings from app for legend
The show_legend command isn't using the key bindings from app/config. This could lead to inconsistencies later on.
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/ui.py#L308-L324
Syntax highlighting
Our current syntax highlighter is pretty naive (e.g. doesn't handle lines with multiple commands well). We should consider using a more fully fledged one like pygments with a custom formatter:
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/linelight/js.py
http://pygments.org/docs/formatters/
Key bindings
Our current key bindings like kNXT5 are cryptic. We should aim for a setup closer to Sublime Text (e.g. ctrl+pageup)
https://github.com/richrd/suplemon/blob/915c0c0485dcae795c577f2e57329c5031d5c8d1/config.py#L38
https://github.com/randy3k/sublime-default/blob/5c296d63820968a1fe1e0c9a54cb0a2cd7c65595/Default (Linux).sublime-keymap#L91

Thanks very much for your input! I really appreciate your attention to detail and will to help :).
Some suggestions are already planned, like pygments, proper key legend, file architecture and linting/tests. Many others I haven't thought about much and I'll definitely pay attention to your points in the future. I'm also open to PRs if you happen to feel like doing one.
Thanks again, I'll come back to this later :+1:

There are a few low hanging fruit that jump out at me:

Removing all import *

However, this is easiest done when linting is in place as linters complain about unreferenced variables being called.

But linting choices usually are up to the repo owner so I don't want to step on your toes here

Relocating CLI logic
Adding in tests

This again falls under repo owner decisions. Everyone has framework preferences and I want to respect those. Once those are decided, I wouldn't mind contributing a few tests.

Since CLI logic is the simplest for now. I will perform the abstraction for that (PR should be open in a bit).

As a heads up, I am transitioning from ST2 to ST3 and uncovering new nicities. I 1-up'd the randy3k/sublime-default repo and began hosting a mirror of Sublime's packaged internals.
https://github.com/twolfson/sublime-files/tree/3083.0.0
The part that I think might be interesting to you is Sublime Text builds a sublime_api which is there all commands live:
https://github.com/twolfson/sublime-files/blob/3083.0.0/sublime.py#L1
After that, there is sublime.py which wraps it as well as sublime_plugin.py. Inside of sublime.py, they define things like Window, Sheet, and View. I am sure that architecturally if you align with their API, then things should be relatively smooth and you might get things for free like reuse of Region.
https://github.com/twolfson/sublime-files/blob/3083.0.0/sublime.py#L423-L501

Thanks (and sorry for the slow response)!
I'll definitely look into the sublime api and try to implement the same in suplemon. But for now, I'm working on linting. I actually began using flake8 since it was simple. I also added flake8 integration to suplemon via a new module so It'll be more fun to use :) . You can check it out in the linting branch if you like.
I'll definitely come back to the other points later, when I have time :+1:

Ah, nice. The branch is shaping up nicely and congrats on staying active with this project for so long =)
There seem to be a lot of changes and I know from experience that linting by hand can be tedious. If you ever get tired, try using a tool like autoflake or autopep8. Be sure to commit before using them.
Then, you can review/stage changes via git add -p.
https://github.com/myint/autoflake
https://github.com/hhatto/autopep8
In the branch, one thing I noticed that's not so Pythonic is this msg concatenation:
msg = "Running Suplemon with Python "+ver
msg += " which isn't officialy supported. "
msg += "Please use Python 3.3 or higher."
self.log(msg, LOG_WARNING)

Python supports non-variable string concatenation within a parameter without a need for extra pluses:
self.log("Running Suplemon with Python " + ver +
         " which isn't officialy supported. "
         "Please use Python 3.3 or higher.", LOG_WARNING)

If we use the .format as mentioned earlier, we get something even cleaner:
self.log("Running Suplemon with Python {version} which isn't officialy supported. "
         "Please use Python 3.3 or higher.".format(version=ver), LOG_WARNING)

Another site I recently re-discovered with an overwhelming amount of .format examples is: http://pyformat.info/

Just a quick update, mainly for myself to keep track of progress on this issue. And thanks again for the tips and support :)

[X] File architecture: Code is now better organized in the suplemon subfolder
[X] CLI invocation: Done, thanks @twolfson :+1:
[X] Pythonic anti-patterns: Cleaned up wildcard imports.
[X] Linting: Now using integrated flake8 linting for Suplemon. Inconsistent spaces etc taken care of.
[X] Use Python logging lib: Done, its great!
[X] Use .format: Mostly transitioned to it now. It's great too.
[ ] Sphinx docstrings: Sphinx notation is in progress.
[ ] Config: Half done, config file has been moved, but defaults haven't been extracted into it's own file.
[ ] Tests: Haven't got to these yet. Need to figure out best practices for testing and choose testing framework (unittest?)
[ ] Command consistency with ST3: Will be implemented as consistently as possible
[ ] Breakdown App: Comming soon
[ ] Key bindings: Fixed legend and sublime style bindings commin soon
[ ] Syntax highlighting: Pygments is comming later, but I got a nice PR for word based syntax highlighting with TextMate config support. Thanks @Jimx- :+1:  It'll probably be implemented (at least partially) before pygments.

I'll definately keep working on this project for as long as I think there's room for improvement.. Probably forever, I hope ;)

Additionally, now that you have flake8 linting the repo. You can add Travis CI and add linting to your test suite. It will give you pass/fail status on incoming PRs and allow you to put a badge on your README.
If you want to add Windows testing as well, there is Appveyor for that.
Here's an older gist I wrote on getting Travis CI enabled for a repo:
https://gist.github.com/twolfson/8443953
And a badge that you can include in your README (note the branch flag) -- This can be accessed by clicking on the badge on a Travis CI page.
[![Build Status](https://travis-ci.org/richrd/suplemon.svg?branch=master)](https://travis-ci.org/richrd/suplemon)

Thanks! I've now had Travis CI enabled for a while. It's pretty damn nice!
What Python test system would you recommend? I'm somewhat new to tests. I've only been developing personal projects in Python and haven't used tests before.

Sorry for the slow reply. I am not fully satisfied with the Python testing ecosystem; I prefer an RSpec/Mocha like BDD testing interface but haven't found an actively maintained one.
That being said, I typically use nose for my testing which is more TDD oriented. Although, I have been told on multiple counts that pytest is generally better and serves the same purpose.
https://nose.readthedocs.org/en/latest/
http://pytest.org/latest/

Hi again!
Lately I've been a bit inactive with development and have been pondering the future direction of Suplemon. I feel there are many areas that need improvement and that major core changes are needed. Some of the issues I've been thinking about are #55, #57, #61, #100, #95.
Some other points (tried to roughly order by priority or 'severity'):

[ ] Input handling and rendering need to be separated more
[ ] The functionality and UI should be separated more
[ ] Testing would be easier with mentioned separation
[ ] Should support selections AKA regions
[ ] Should be closer to SublimeText API
[ ] Would be nice to have split screen functionality
[ ] I want a sidebar for showing and navigating a directory tree
[ ] Proper status bars with item order
[ ] Fix the static key legend
[ ] The input prompts should have the same input functions as the editor has
[ ] Other stuff that I didn't think of yet

After all this thinking I'm beginning to feel that I should refactor Suplemon entirely. Of course lots of code would be reused but it's still lots of work.
What do you think about this? Any point in doing an overhaul or would it be smarter to take a gradual approach to pushing Suplemon in the right direction?

Heh, you still look pretty active to me =)
As with any hard decision, this is nuanced. On one hand, throwing everything out and starting over gives you a clean slate and chance for new architecture with no legacy. On the other hand, it destabilizes the entire project and formerly patched bugs can easily pop up again (which is exhausting).
In my experience, it's typically better to refactor one part at a time; you see more progress instead of a giant wall. It's even better if you write tests before that part is refactored so no bugs reappear during the refactor (but for that you need API stability or overarching tests which don't sweat the lower level details).
 It's probably best to try throwing it out and starting over.

If you want advice on the architecture itself, what are your complaints and thoughts on "Input handling and rendering need to be separated more"?

Wow, almost half a year before coming back to this :/
Anyway I can't thank you enough for the help and push in the right direction you gave me (I really learnt a lot). Progress has been good, but many things remain unadressed. I created separate issues for things that aren't done yet. For the record the unadressed issues are: #55 #100 #144 #145 #145 . I hope I didn't miss anything. Please let me know if I did.
I'll close this for now. I'll continue work in the separate issues.

I've decided not to do any complete overhauls, and instead take a steady approach to refactoring parts of Suplemon at a time.
For the next major push I'll need more planning on the architecture. I created issue #161 for that and would appreciate advice. However I'm not that concerned on the input handling and rendering after all currently. The other stuff like regions intimidate me more to be honest.


Double inserting products

Hi, thanks for great sample.
There is one issue in WoodminSyncAdapter.java. Sometimes, it will insert same product twice into database.
I have changed the database Column_ID to be unique and set the database flag to something like this
long _id = db.insertWithOnConflict(WoodminContract.ProductEntry.TABLE_NAME,null,contentValues,SQLiteDatabase.CONFLICT_REPLACE);
But it still couldn't solve the problem. My guess is that there is probably a race condition in sync adapter. Any suggestion? Thanks.

Awesome, Could you please confirm if that id is not duplicated on the Woocommerce API?

I can confirm that API is correct. No duplication.
Double insertion occurs when race condition happens. You can try it out with your own API. Do a few runs and you will see.
For now, the issue seems to be solved after I added synchronized in methods like below.
private synchronized void synchronizeProducts(final Woocommerce woocommerceApi, final Context context) { .. }
If you have a better fix, do let me know. Thanks Benn.

Sure no problem, give me a week to take a look.
Thanks...


FIX: mov-cli current version doesnt work

I Forgot that i moved version.py file and so currently mov-cli doesnt work

By the way maybe you forgot but check #26

I haven't forgotten about that..

So what is currently broken?

it doesn't install

Does mov-cli doesnt install in general or the update?

By the way if you want you can add me on discord and we can talk about in dms and on discord its easier to reach to me because i only check github when getting a mail and i dont check mails alot so here: Ananas#1149

Sure, I'd also recommend you join the ani-cli server since you can also find other contributors there

How about a Discord Server for mov-cli and what is now broken the update function or that mov-cli doesn´t install?

We'll mov-cli doesn't install at all

so my version of mov-cli does install and work but the check function just says there is a update everytime but nothing more

Rip

?


Referrer-Policy header

Add support for the header, as well as the new directives. Also have a look at the content attribute.

Released.


Add support for fallback search paths for Target frameworks

When running on Mono, target frameworks are searched for in
$mono_prefix/lib/mono/xbuild-frameworks, which becomes
/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild-frameworks.
This works, but has a problem when upgrading the Mono.framework package:
a new /Library/Frameworks/Mono.framework/Versions/@VERSION@ directory
is created, so anything installed into the previous directory will be
"lost" (For example, installed by Xamarin.Android). The file is still there, but msbuild
will no longer find it.
To address this upgrade scenario, we can add a fallback path:
/Library/Frameworks/Mono.framework/External/xbuild-frameworks
This location is not within a versioned framework directory, and thus files
installed into it will survive Mono.framework package upgrades.
Implementation:
We add a new $(TargetFrameworkFallbackSearchPaths) property which
can have the list of fallback search paths and gets used by the GetReferenceAssemblyPaths.
For Mono/OSX case, we point that to /Library/Frameworks/Mono.framework/External/xbuild-frameworks
So, effectively, target frameworks are looked up, in order:

$(TargetFrameworkRootPath) or the default location, if
$(TargetFrameworkRootPath) is ''

If not found in (1), then try to find it in the fallback search
paths specified in $(TargetFrameworkFallbackSearchPaths)

Fallback search paths also allow overriding the fallback paths to test local in-tree builds of
custom target frameworks. Simply changing $(TargetFrameworkRootPath) would
mean that the in-tree builds of the custom frameworks would work but the
default (.net) ones would not be found!

This effectively revives the older PR #1389.
Andy had commented https://github.com/Microsoft/msbuild/pull/1389#issuecomment-270253519 .
To answer his main point:
1. I prefer not to have fallback. It seems un-natural here. You're passing in a string that says look exactly here, but if that fails go ahead and look in all these other places too. It seems cleaner to just drop the fallback and pass in a list of places to look. Ideally typed as a list and if you pass in a string (legacy purposes) it would just pass that along as new List<string> { singlePath } to the new method that does the search that only takes a list.

The targetFrameworkRootPath argument is deliberately kept separate from the fallback paths. The reason (from
the commit message):

    - The reason for using a `targetFrameworkRootPath` parameter separate from
    the `targetFrameworkFallbackSearchPaths` is that we need to
    automatically fallback to a default path, which is being determined in
    code (`FrameworkLocationHelper.programFilesReferenceAssemblyLocation`).

    - Also, the parameter `targetFrameworkRootPath` roughly corresponds to the
    `$(TargetFrameworkRootPath)` property and changing that to have multiple
    paths would change it's meaning.

Also, this behavior would be consistent with what we have for MSBuildExtensionsPath,
which is to have the lookup order as (from PR description)
... target frameworks are looked up, in order:

1.  $(TargetFrameworkRootPath) or the default location, if
     $(TargetFrameworkRootPath) is ''

2.  If not found in (1), then try to find it in the fallback search
     paths specified in $(TargetFrameworkFallbackSearchPaths)

Thanks for the review! Updated to address review comments.

Only thing left is that file. Per the conversation today can we remove it altogether?

Done!

@radical Looks like a small conflict that needs to be fixed :(

Updated.

@dotnet-bot test Windows_NT Build for CoreCLR please
@dotnet-bot test Windows_NT Build for Full please

Will this go into vs15.8 ?

nvm, https://github.com/Microsoft/msbuild/pull/3424 answers my question :)


Bug: new line character does not have any effect on editor

Ideally when I put some empty lines in the editor, I want the empty lines to be shown in the preview.
Specifically speaking, I'm converting state to markdown, saving it in database and then when I try to load it, the new lines (blank lines) that  I had created would not appear.
Lexical version: 0.4.1
Steps To Reproduce

Go this codesandbox
type something and then leave some empty lines and then type again something
You'll see that the bottom editor doesn't show those spaces

Link to code example: https://codesandbox.io/s/many-lexical-autofocus-bfqtmu?file=/package.json:226-231

The current behavior
Empty lines won't show up
The expected behavior
Empty lines should show up

Looks like an issue related to markdown? Also, please could you try updating Lexical to the latest version?

Duplicate of #4271


Optimize page displaying when there are many elements in the list

@ershovaelena ticket is unclear. No problem, no soultion is specified.


Performance enhancement

Use quicker StringBuilder instead of StringBuffer for local (and, hence, thread-safe by origin) variables
Remove unnecessary synchronized sections from environmentSubstitute()

In the absence of test cases and proof that it wouldn't regress PDI-4587, closing this PR.


Consider updating relative flammability to avg. fires per century?

Convert relative flammability to "Average fires per century across all replicates" which is usually mapped as a change in fires per century rather than an absolute value. We should have some more details on this processing buried in an email thread somewhere.

@charparr @cstephen I think that after our meeting this Weds, with approval from Nancy / Jeremy we can close this ticket because we're using %s now?

Yeah agreed!


Extract more certificate-extensions for validation

Description
Prerequisite for kyverno/kyverno#3216
In the signature package there are functions to extract the issuer (CertIssuerExtension) and subject (CertSubject) from a generated certificate. In sigstore/fulcio#306 I implemented several extensions (https://github.com/sigstore/fulcio/blob/main/docs/oid-info.md) extracted from GitHub OIDC claims.
I suggest to add the ability to read those extensions too with additional functions (or a generic function which receives the name as parameter) to make it possible for kyverno to validate this values too with a policy.
I would be happy to make a PR for that if desired. 😉

Hi @ckotzbauer - this will be great to have!
I like the idea of having a generic function, to allow for future custom claims.  Is there an available map of names to extension IDs, or would this need to be defined? Instead of the clients asking for each claim, may be best to return the entire list with names, so they can be used to display in the cosign verify output and in policy checks.

I don't think that there's a mapping for names to extension-IDs yet, but I'm not sure.
I think working with lists here would be great, this would be a generic approach and could be used in other places.

This sounds good to me! @nsmith5 had a proposal to add more things to the certs as well.

Hi @ckotzbauer - are you planning a PR for this? If not, I can take a look at proposing the changes.

I can take a look at the weekend.


Build fixes

A couple of minor cmake issues I found when building on Linux

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

This is a strange one because the problem fixed by the second change (to tests/layers/CMakeLists.txt) only shows up when NOT using make -j (non-parallel) build.

Closing without CLA, since these are just build fixes.
Thanks!


image-utils

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug, a feature request, or a significant problem with documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary):
TensorFlow version (use command below):
Python version:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with:
python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

@sushil579 It looks like you haven't used a template to create this issue. Please resubmit your issue using a template from here. We ask users to use the template because it reduces overall time to resolve a new issue by avoiding extra communication to get to the root of the issue. We will close this issue in lieu of the new one you will create from the template. Thank you for your cooperation.

@sushil579 Kindly update as per the above comment.

@sushil579
Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Captains & admins should be able to more efficiently moderate "spam" reviews

Related to the recent incident with a certain Russian mapper who went out of his way to get him & his friend group to downvote both competitor maps to bring their own up, as well as downvote the maps of people who disagree with.
I'll be honest, I get your idea of leaving the site open to all kinds of reviews & the freedom to let people post their thoughts as you pointed out in the osu! Project Loved Discord server, but at the same time I disagree with the policy on the basis that this stance actively encourages negative behavior, as vote brigading (both positive and negative) essentially goes uncontrolled, which is not how things should be. Encouraging this kind of behavior entirely defeats the point of the website.
Even if it's hard to verify vote brigading at times, stuff like insulting the mapper in the reviews and leaving it in the description of it should not be permissible. Ground rules of "don't be a dick" SHOULD apply to conduct on the website.
My proposal:
Let captains & any admins marked on the site be allowed to delete reviews. There should also be a report button on reviews to report offensive content.

as the site operator I'm not interested in making moderation judgements (basically what I already said on discord)
as someone with project loved's interests in mind I think I just don't agree with this definition of "spam". leaving negative comments toward maps or mappers on loved.sh is a reflection of how some will choose to use the polls on osu.ppy.sh as well, and I don't think any voter should be required to have some deeper or more noble reason for their vote or comment. imo doesn't defeat the point of the website at all, the goal here is no more than to gather some ppl's thoughts on the maps. I would consider something "spam" and worthy of removal if it contributed literally nothing to that end ig, but that's not really the topic here
as the dev I'm mostly interested in keeping things simple.
i dont see myself changing my mind about this one so I'm gonna close. for this particular issue I feel I have a lot more personal responsibility for the outcome, rather than the whole of ppl working on loved, so that's why I'm more okay with thinking "my site my rules" kind of thing.

reconsidering this I'm not really down to delete anything as explained above but I can probs add some way for captains to mark a review as "potentially offensive" or whatever to hide it by default, so each person using the site can choose if they wanna see it

that's probably fair to "hide" if I added this https://github.com/cl8n/project-loved-web/issues/197#issuecomment-1666043038
but in general I'm still just not concerned about this type of comment... to me all they're doing is making a fool of themselves and the nature of limited options to interact on this site means that it can't really be harmful beyond the scope of that review. I also don't think it's accurate to say this is "encouraged", the review system makes starting back-and-forths pretty difficult on purpose and this type of comment is an extreme minority. keeping reviews interesting& productive is important but I just don't see an issue here that warrants the dev time and additional oversight


Question - is the cache reliable?

Hi, quick question, can't seem to find clear documentation anywhere.
I want to employ the cache to ensure that images are available offline, can I rely on the cache with certain settings/cache control headers to keep the images indefinitely? Or should I make my own disk cache?
ALSO, is it possible to access the cached images by name/url on the file system?
Thanks.

cc @DylanVann


Middle mouse click autoscroll problem - Server 2008 R2

When clicking on the mouse wheel in a 2008 R2 RDP sessoin,  autoscroll is activated in Chrome and Excel as expected.  Although it's not possible to release the scroll, or control the speed.      In Chrome control is released once the web page scrolls to the end,  this autoscrolls at the slowest imaginable speed so this can take a while.
Workaround disable mouse button 2 with XInput command before launching session.
Server 2012 is not affected.    All the usual methods of turning off caches,  async-update and async-sync or not effective.

Closing due to lack of information.


ACS AEM COMMONS not loading custom class through class loaded for Report builder

Required Information

[ ] AEM Version, including Service Packs, Cumulative Fix Packs, etc: 6.5.9
[ ] ACS AEM Commons Version: 4.9.0
[ ] Reproducible on Latest? yes

Expected Behavior
Whenever I try to create a custom query report executor for extending report builder, The custom class must be loaded
Actual Behavior
ACS Commons throws Class not found exception
Caused by: com.adobe.acs.commons.reports.api.ReportException: Unable to find class for com.adobe.acs.commons.reports.models.CustomQueryReportExecutor
at com.adobe.acs.commons.reports.internal.ReportExecutorProvider.getReportExecutor(ReportExecutorProvider.java:52) [com.adobe.acs.acs-aem-commons-bundle:4.9.0]
at com.adobe.acs.commons.reports.internal.ReportCSVExportServlet.updateCSV(ReportCSVExportServlet.java:148) [com.adobe.acs.acs-aem-commons-bundle:4.9.0]
at com.adobe.acs.commons.reports.internal.ReportCSVExportServlet.doGet(ReportCSVExportServlet.java:100) [com.adobe.acs.acs-aem-commons-bundle:4.9.0]
... 139 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.adobe.acs.commons.reports.models.CustomQueryReportExecutor
at org.apache.sling.commons.classloader.impl.ClassLoaderFacade.loadClass(ClassLoaderFacade.java:158) [org.apache.sling.commons.classloader:1.4.2]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at com.adobe.acs.commons.reports.internal.ReportExecutorProvider.getReportExecutor(ReportExecutorProvider.java:50) [com.adobe.acs.acs-aem-commons-bundle:4.9.0]
... 141 common frames omitted
Steps to Reproduce
Create a custom class implementing QueryExecutor interface and update the query config. When we try to download the report . It throws this error

@klcodanr any idea? IIRC this uses Sling's Dynamic Class loader?

Hey @klcodanr , Yes it's happening in 6.5 with SP9.  Yes I tried exporting the package from bundle as well. It didn't help

Hello @klcodanr  , any update on this? Thanks

Hi @rakshithsirigeri Sorry I've not yet had a chance to do an investigation on this. I've cloned this bug into our internal issue tracker and added it to my work this sprint.

I was unable to reproduce the issue @rakshithsirigeri, but I have a theory of what's going on. Did you create your CustomReportExecutor in the package com.adobe.acs.commons.reports.models?
That package is already published by ACS AEM Commons so I suspect that OSGi is trying to look for your class within the ACS AEM Commons bundle rather than resolving it from your bundle. The solution is to change the package for your CustomReportExecutor to not be an Adobe-defined package, e.g. com.mycustomer.core.reports.CustomReportExecutor
Let me know if this resolves the issue.

Any further questions / follow up @rakshithsirigeri ?


Error in logs

I am getting the below error that is constantly being added to the logs. Anyone know what it is? Let me know if you require any other info
Logger: homeassistant
Source: components/sensor/__init__.py:585
First occurred: 17:20:34 (7600 occurrences)
Last logged: 22:23:34

Error doing job: Exception in callback Entity.async_write_ha_state()
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 581, in state
    numerical_value = int(value)
                      ^^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'fail'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 590, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 654, in _async_write_ha_state
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 596, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 585, in state
    raise ValueError(
ValueError: Sensor sensor.dyson_fan_pm_2_5 has device class 'pm25', state class 'measurement' unit 'µg/m³' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'fail' (<class 'str'>)

Interesting! So it's basically saying "Hey, I expected you to give me a number for PM2.5, but you're just giving me the word 'fail' which isn't a number!"
I'm curious why that's happening here. I've never seen a fail value. Can you share the model of the device you're using? If you use the Dyson mobile app does it show a PM2.5 value for your device in the app?

I have just reset my entire HA setup along with my Dyson fan to rule out any issue with my setup however I still see these errors... all be it less frequent.
When it was previously reporting the errors, in the case above 7600 times, the 'Continuous Monitoring' option was turned off. Turning this on has certainly helped lower the number of times these errors show however I still see them on my logs... now averaging about  10 per 24 hour period.
I am using the DYSON PURE COOL. I can see the PM2.5 value in the app.

Hello - I'm getting a similar error with Dyson Pure Hot+Cool for temperature and humidity etc
This was also mentioned as an issue in the original ha-dyson: https://github.com/shenxn/ha-dyson/issues/187
Let me know if you need more info - happy to help.
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 581, in state
    numerical_value = int(value)
                      ^^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'off'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 471, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 749, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 850, in add_to_platform_finish
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 590, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 654, in _async_write_ha_state
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 596, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 585, in state
    raise ValueError(
ValueError: Sensor sensor.pure_hot_cool_link_humidity has device class 'humidity', state class 'measurement' unit '%' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'off' (<class 'str'>)

@gerardsyd yours is more along the lines of #16 since it's off instead of fail. Still, I'll work on getting #27 merged as it should hopefully help both of these issues.

Thanks for your help @dotvezz. Any idea when this will be merged? Seeing the errors on the logs fairly consistently.

Hey @RefineryX! I got swamped in life/work/stuff the past few weeks and there were some issues discovered when testing #27 sadly. I've got time tonight, and a dev branch of other minor improvements, so I'll try to get it pushed tonight.

@RefineryX A day later than promised, but I just released v0.21.0 which I'm hoping addresses this! Let me know if you have any issues.

I have a Pure Cool Link Desk, v0.21.0  update fixed the issue! Thank you!

@dotvezz Thanks a million! I really appreciate that. Now running v0.21.0 - will report back findings in the next few days. Hopefully fixed and will then close this issue.

Works! Thanks again @dotvezz


[ALLUXIO-2112] Refactor property setting in HadoopUtils.java

ALLUXIO-2112
Guys, refactored according to my knowledge, please help review it, any issue notice me, thanks.

Can one of the admins verify this patch?

ok to test

Jenkins, add to whitelist

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10913/
Test PASSed.

Thanks for the refactoring @MichaelPhantom! I've left a few comments in the code

@aaudiber thank you so much for the detail comments, last commit removed final decorator on local variables, renamed method names and added java document accordingly.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10928/
Test PASSed.

Merged build finished. Test PASSed.

@MichaelPhantom I left one last minor comment, otherwise looks good to me!

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10929/
Test PASSed.

@aaudiber the latest commit removed the final decorators as commented, thanks.

LGTM, thanks for the iterations


Could I change the system fields (id)

I am building a blog, and I use pocketbase the problem comes when I want to get one post, I need the URL parameter to be a slug instead of the id, now I can't get the post using getOne since it requires the id. Can the id be changed to the slug instead?

No, the id once set can't be changed.
You can create instead a custom unique text field slug and use the getFirstListItem() to query it, eg. something like:
const record = await pb.collection('example').getFirstListItem(`slug="${slug}"`);

Now it works, thanks a lot


Request (need testing): use DevContainer's wayland socket feature

What's going on?
With the default settings in fedora38 (wayland), the x11 passthrough didn't work due to privilege issues.
After fiddling a while, I found this config in vscode (defualt true, see https://github.com/microsoft/vscode-remote-release/issues/550):
{
    "dev.containers.mountWaylandSocket": true
}

It turns out that newer versions don't need to set X11 or wayland sockets manually.
After removing the following lines, the wayland passthrough did work properly:
https://github.com/athackst/vscode_ros2_workspace/blob/ce2f256e13486afa5d9d84cda9994dcf0848a6c3/.devcontainer/devcontainer.json#L15-L16
https://github.com/athackst/vscode_ros2_workspace/blob/ce2f256e13486afa5d9d84cda9994dcf0848a6c3/.devcontainer/devcontainer.json#L20-L24
What needs your help? (What I couldn't test)

[ ] Does this work with audio, under wayland?
[ ] Does this work with WSL?
[ ] Does this work with X11 (Does anyone still uses X11 based DEs, anyways?)

After further testing, it turns out the Qt binaries shipped with humble doesn't support wayland, so we still need X11 passthrough.

I've come up with another solution that works nicely on fedora, credit goes to osrf/rocker and this post:
{
    "runArgs": [
        "--volume=/tmp/.${devcontainerId}.xauth:/tmp/.Xauthority"
    ],
    "containerEnv": [
        "XAUTHORITY": "/tmp/.Xauthority"
    ],
    "initializeCommand": "if [ ! -f /tmp/.${devcontainerId}.xauth ]; then touch /tmp/.${devcontainerId}.xauth; fi && xauth nlist :0 | sed -e 's/^..../ffff/' | xauth -f /tmp/.${devcontainerId}.xauth nmerge -",
}

Since this has gone out of the original issue's scope, I'll close and create a new one.


When showTabsInTitlebar is true and alwaysShowTabs is false, titlebar is not displayed

[Enter feedback here]

When it's set to false and showTabsInTitlebar is set to true, tabs are always displayed underneath the title bar.

But title bar is not displayed when I finished above operation. Is this an inaccurate description of the document? Or a bug for terminal?
My terminal version: 1.6.10571.0

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2b561158-310e-1158-7b6d-859c3ec107a8
Version Independent ID: 7df17a2d-a108-ef6f-fc93-9f2c6100dc7a
Content: Windows Terminal Appearance Settings
Content Source: TerminalDocs/customize-settings/appearance.md
Product: dev-environment
Technology: windows-terminal
GitHub Login: @cinnamon-msft
Microsoft Alias: cinnamon

You're right, that section is needlessly confusing. It should be something like:

When this is set to true, tabs are always displayed. When it's set to false and showTabsInTitlebar is set to false, tabs are always displayed underneath the title bar. When this is set to false and showTabsInTitlebar is set to false, tabs only appear after more than one tab exists. Note that this setting has no effect when showTabsInTitlebar is true


Clarify description of the log-profile container option

The docs at https://docs.daml.com/canton/usermanual/monitoring.html#logging say:

--log-profile=container ...turns off flat file logging
to avoid storage leaks due to log files within a container.

The wording, "turns off flat file logging" is ambiguous, since it could be interpreted as turning off logging to files. However, that is not the case. You can confirm with the following:
docker run --rm -it --volume ./log:/home/nonroot/log digitalasset-docker.jfrog.io/canton-enterprise:2.8.3 --no-tty -C canton.participants.participant1.ledger-api.address=<IP_ADDRESS> -C canton.participants.participant1.ledger-api.port=5011 --log-profile container

exit()

more log/canton.log

This PR updates the docs to clarify the actual behavior.

@wallacekelly-da Took the freedom of rebasing and pushing against this branch. I'll also merge it. Please shout if you disagree


bug: WalletConnect Attestation Error

Is there an existing issue for this?

[X] I have searched the existing issues

Package Version
0.12.13
Current Behavior
Developer console shows 422 errors from walletconnect:

You can repro here: https://wagmi.sh/examples/connect-wallet
Expected Behavior
No response
Steps To Reproduce
No response
Link to Minimal Reproducible Example (StackBlitz, CodeSandbox, GitHub repo etc.)
No response
Anything else?
No response

This seems to be coming from the MetaMask browser extension, not wagmi. Might be worth opening an issue on the MetaMask repo?


ipywidgets clears only first widget, not the others

I am using ipywidgets 4.0 with Jupyter 1.0 (IPython 4.0) in Anaconda 64-bits v4.0 (Python 2.7).
When multiple widgets are displayed, if the user starts the cell again, the widgets seem to be completely cleared and replaced by the new instances. However, if the user saves the notebook, then reopens it (eg, by refreshing the page), the old widgets that should have been cleared reappear (except the first one for each cell execution). This is because ipywidgets cleans up the first widget from the log, but not the subsequent ones.
Code to reproduce the issue:
import ipywidgets
from ipywidgets import IntProgress
from IPython.display import display
from time import sleep
p = IntProgress(min=0, max=100, description="First bar is deleted")
p2 = IntProgress(min=0, max=100, description="Second bar always stays")
display(p)
display(p2)
p.bar_style = 'info'
for i in xrange(100):
    p.value = p.value + 1
    p2.value = p2.value + 1
    sleep(0.01)

Here is a demonstration of the issue (note that it doesn't matter if the cell execution completes or if it is stopped by user, in both cases the widgets will reappear):

I'm not sure I understand the problem... I am able to reproduce the 4 progress bars after a refresh vs. the expected 2.

@gnestor All "second bar"s before "first bar"  should not reappear after the refresh, as they should have been deleted/cleared when user restarted the cell.

Steps to reproduce the issue using the code above:

Execute cell with the above code.
Restart the cell.
Repeat 1 and 2 several times. At this point there is nothing abnormal.
Refresh the page. Now you should see deleted "second bar"s reappearing, thus mangling the output of the last run with widgets of previous runs.

And sorry i should have posted the steps before, i don't know why I didn't.

I'm still unsure what you mean by "restart the cell." Do you mean "clear the cell's output" or "restart the kernel"?

Here's what I see (on master) when I run the example code and refresh the page:

Sorry for the loose terminology, "restart the cell" means "re-execute the cell", so just execute it again several times (you don't need to clear the output). This is not really necessary to display the issue, executing it once as you did already produces the bug, but executing it several times will multiply the bug (there will be as many "buggy" widgets as the number of time you executed the cell).
In your gif, I can see that "Second bar" is displayed first (at the top of "First bar"), which is the opposite of my example ("First bar" is displayed first and "Second bar" second). The same bug happens: the first displayed widget is cleared, but all subsequent widgets are not, so in your case "Second bar" is deleted but not "First bar".
My example code should display "First bar" first, so I don't know why it's the other way around when you executed it, but anyway the same bug happens.
What is expected: when refreshing the page, only the widgets of the last run should appear, so we should only see one "First bar" and one "Second bar", because the other ones should have been deleted by IPython when re-executing the cell.

@SylvainCorlay Do you have any idea where this bug may be lurking? The notebook is reloaded and output for the cell in question contains a bunch of ghost widgets that weren't displayed before reloading. On first thought, it sounds like there must be something odd going on with the cell's output in the notebook file:
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget": "a5257d42728f4ed6b2e65d38e377fc50"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget": "f34a188694174b6faad558f45c0b1294"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
  }
 ],

The output looks fine. However, the metadata.widgets.state contains 6 entries which equals the number of ghost widgets:
 "metadata": {
  "widgets": {
   "state": {
    "398fafc77b83477da449c1288a21a8ca": {
     "views": [
      {
       "cell_index": 0
      }
     ]
    },
    "4a834609f38f4d70840a9364a1e19bfd": {
     "views": [
      {
       "cell_index": 0
      }
     ]
    },
    "a5257d42728f4ed6b2e65d38e377fc50": {
     "views": [
      {
       "cell_index": 0
      }
     ]
    },
    "cf26b696d3ed4ea6ad86af7ca563146b": {
     "views": [
      {
       "cell_index": 0
      }
     ]
    },
    "f34a188694174b6faad558f45c0b1294": {
     "views": [
      {
       "cell_index": 0
      }
     ]
    },
    "f7c43e1ced4641afb0aa576307444c24": {
     "views": [
      {
       "cell_index": 0
      }
     ]
    }
   },
   "version": "2.0.0-dev"
  }
 },
}

It appears that ipywidgets is saving new entries to metadata.widgets.state every time the cell is executed and when the notebook is reloaded, it displays a widget for each of those entries even though if you look at the cell's source, it should only display 2 widgets (not 6).

Thank's Grant, this explains why the deleted widgets still reappear, they
do are stored.
Le 21 Oct. 2016 00:39, "Grant Nestor"<EMAIL_ADDRESS>a écrit :

@SylvainCorlay https://github.com/SylvainCorlay Do you have any idea
where this bug may be lurking? The notebook is reloaded and output for the
cell in question contains a bunch of ghost widgets that weren't
displayed before reloading. On first thought, it sounds like there must be
something odd going on with the cell's output in the notebook file:
{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget": "a5257d42728f4ed6b2e65d38e377fc50"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget": "f34a188694174b6faad558f45c0b1294"
},
"metadata": {},
"output_type": "display_data"
}
],
}
],
The output looks fine. However, the metadata.widgets.state contains 6
entries which equals the number of ghost widgets:
"metadata": {
"widgets": {
"state": {
"398fafc77b83477da449c1288a21a8ca": {
"views": [
{
"cell_index": 0
}
]
},
"4a834609f38f4d70840a9364a1e19bfd": {
"views": [
{
"cell_index": 0
}
]
},
"a5257d42728f4ed6b2e65d38e377fc50": {
"views": [
{
"cell_index": 0
}
]
},
"cf26b696d3ed4ea6ad86af7ca563146b": {
"views": [
{
"cell_index": 0
}
]
},
"f34a188694174b6faad558f45c0b1294": {
"views": [
{
"cell_index": 0
}
]
},
"f7c43e1ced4641afb0aa576307444c24": {
"views": [
{
"cell_index": 0
}
]
}
},
"version": "2.0.0-dev"
}
},
}
It appears that ipywidgets is saving new entries to metadata.widgets.state
every time the cell is executed and when the notebook is reloaded, it
displays a widget for each of those entries even though if you look at the
cell's source, it should only display 2 widgets (not 6).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ipython/ipywidgets/issues/624#issuecomment-255247820,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABES3npnO3IGxnTX7t6E3bo5r04pmujXks5q1-2cgaJpZM4IsaE4
.

@SylvainCorlay I did some more investigating and it appears that widget state (as in WidgetManager state) keys are not being preserved across executions, so if a cell is executed multiple times, a new widget with a new key is created each time. I can't find where these keys are created so I'm not able debug further...

Thank you guys for investigating this issue :)

Related to #638.

OK, this is fixed in master! We have a much better model for widgets persistence now.

Thank you, Sylvain! 🙏

Thanks a lot!!!! That's really great! :D


hidden-field label still shows

hidden-label fields still show the label of the field. cannot even change the label to be blank as it reverts to the original label

Hi @npendery!
Check out https://github.com/martndemus/ember-form-for/issues/125.
We don't hide labels (though we allow them to be hidden). This is because screen-readers need to read a label of an input, even if you want to hide it.

Ahh, thanks @lcpriest!!


How does isso prevent users from voting multiple times on the same comment? How does isso handle spam?

Hey guys! I'm trying to build a commenting system for my website similar to isso. I don't want to require users to sign up, I want username/email to be optional, just like in isso.
I wanted to ask - how does isso allow loginless comments, and deal with spammers or people who want to manipulate upvotes?
I'd really love to find a solution to these issues that doesn't require users to create an account, and it seems like you guys have done that somehow.

Isso records the IP address of the person submitting the comment/vote.
Moreover, you can enable the comment guard/moderation feature, which will only display comments to other users after you, the site admin, have manually approved them (or after a timeout iirc).
Multiple votes coming from the same IP address for the same comment are silently dropped. Isso uses a bloom filter for that, see:
https://github.com/posativ/isso/blob/9e021cb6263e921ac519f52b82df3f66a297d3d1/isso/db/comments.py#L296-L300

Would you mind closing this issue to not clog up the bug tracker? We can of course still discuss this if you have further questions. GitHub will not prevent anyone from commenting on closed issues afaik

Sorry, I haven't noticed your reply before. Thank you so much for taking the time to reply!

Happy to help!


Make the queue configurable for kafka

Includes scientificNameHtmlLabel for identifications
Includes small update pom file
Includes ignore for new image issue

:label:


[5.3][build] copy Python detection code into StandaloneOverlays.cmake

This is to support workflows that do not rely on reading the main
CMakeLists.txt.
Based upon #30992, #31020
Addresses rdar://62245784
(cherry picked from commit 7bc15b884d5c6291f68406b662d6afe837acd597)

@swift-ci  please smoke test

This is cherry-picked from #31234

@swift-ci please smoke test

@swift-ci please test

@swift-ci please test Windows

@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - 2e922e0dc5f1afea71eca39552d287d83a80d2ee

@swift-ci please test macOS

@swift-ci please test Windows

@swift-ci please test Windows


NotebookController asWebviewUri issues for notebooks

From https://github.com/microsoft/vscode/issues/121981

Need to figure out what the ID for a notebook webview is: https://github.com/microsoft/vscode/issues/121981#issuecomment-826809166
And include the remote scheme/authority in the uris from asWebviewUri https://github.com/microsoft/vscode/issues/121981#issuecomment-826809166

I believe that we now correctly support this. To test:

Install the GitHub issues notebook extension locally
Connect to a remote workspace and open a GitHub issue notebook
Add some math in the notebook, such as $x^x$ and verify it is rendered properly (the base markdown renderer is installed on the remote)
Now run the notebook and verify the output is rendered (this is running JS from your local machine)

So it looks like we now properly support loading both local and remote resources within a single webview
Please let me know if you notice any cases where asWebviewUri from notebooks is still not doing the correct thing


Unable to declare render function in class body

http://vuejs.org/guide/render-function
Render function can access this, so I think it might be supported.

Thanks!


[hmac,rtl] Fix hang after stop #24767

Related to issue #24767

Listen to msg_feed_complete when in FifoLoadFromFifo state to move into FifoIdle state.
And latch digest_on_blk when it happens in FifoLoadFromFifo state.

Is there also an impact on Darjeeling's DMA that uses the prim_sha?

Is there also an impact on Darjeeling's DMA that uses the prim_sha?

@Razer6 it would be triggered (i.e., signalling the end of the hash operation would hang) but if there is a delay between issuing the last word to the SHA-2 engine and the process command that exceeds 64 cycles for SHA-2 256 and 80 for SHA-2 384/512, which as far as I recall was never an expected delay for DMA's inline hashing.

Is there also an impact on Darjeeling's DMA that uses the prim_sha?

@Razer6 it would be triggered (i.e., signalling the end of the hash operation would hang) but only if there is a delay of more than 64 or 80 cycles (for SHA-2 256 or SHA-2 384/512 respectively) between issuing the last word to the SHA-2 engine and the process command. As far as I recall and see in the RTL, this was never an expected delay for DMA's inline hashing.

In fact, this specific issue is triggered only when issuing hash_stop (used to support context switching in HMAC). Issuing hash_process irrespective of the delay between it and last word works fine.

Thanks @gdessouky for the clarification.


A debug record

It happened when I want to test how to get attribute of GPT2tokenizer.
I found there are the following API for us to get attribute, so I want to give it a shot.
  ORT_API2_STATUS(KernelInfoGetAttribute_float, _In_ const OrtKernelInfo* info, _In_ const char* name,
                  _Out_ float* out);
  ORT_API2_STATUS(KernelInfoGetAttribute_int64, _In_ const OrtKernelInfo* info, _In_ const char* name,
                  _Out_ int64_t* out);
  ORT_API2_STATUS(KernelInfoGetAttribute_string, _In_ const OrtKernelInfo* info, _In_ const char* name, _Out_ char* out,
                  _Inout_ size_t* size);

It gets attribute from OrtKernelInfo, so I have to keep the struct. I do in the following way.
struct KernelBpeTokenizer : BaseKernel {
  KernelBpeTokenizer(OrtApi api, const OrtKernelInfo* info, const VocabData* global_data)
      : BaseKernel(api, info)
      , vocab_data_(global_data)
      , token2id_cache_(30 * 1024) {
    std::cout << ort_.KernelInfoGetAttribute<std::string>(info_, "vocabulary_file") << std::endl;
  }

  static size_t const p_max_len = 1024;
  using StringConverter = std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t>;

 private:
  LruCache<std::string, std::list<int>> token2id_cache_;
  std::list<int> byte_list_;
  const VocabData* vocab_data_;

struct BaseKernel {
  BaseKernel(OrtApi api) : api_(api), info_(nullptr), ort_(api_) {}
  BaseKernel(OrtApi api, const OrtKernelInfo *info) : api_(api), info_(info), ort_(api_) {}

 protected:
  OrtApi api_;  // keep a copy of the struct, whose ref is used in the ort_
  const OrtKernelInfo* info_;
  Ort::CustomOpApi ort_;
};

Then I found the tests of GPT2 failed and not only GPT2 but also many other ops.
After long-time investigation, I found the root of the bug:
const OrtApi* _GetApi(Ort::CustomOpApi& ort) {
  if (sizeof(Ort::CustomOpApi) == sizeof(OrtApi*)) {
    // The following line should be replaced when an accessor is available.
    // ort.api_ is not accessible (marked as private)
    // Ort::GetApi() returns null.
    // InitApi is missing when linking.
    // OrtGetApiBase() is missing when linking.
    const OrtApi* api = (const OrtApi*)((OrtApi**)&ort) - 1;
    /*
    // The following code checks api is equal to the expected
    // pointer stored ins Ort::CustomOpApi ort as a private member.
    // The following method can be added `const OrtApi& Api() { return api_; }`
    // to give access to this value.
    if (api != &(ort.Api())) {
      // Ort::InitApi(); - missing from link
      auto diff = (int64_t)(&(ort.Api()) - api);
      throw std::runtime_error(MakeString(
          "Internal error, pointers are different: ",
          api, "!=", &(ort.Api()), " (expected) (other value ", &(Ort::GetApi()),
          ", delta=", diff, ")."));
    }
    */
    return api;
  }
  throw std::runtime_error(MakeString(
      "Unable to get an OrtApi pointer from CustomOpApi. Variable ort is not a pointer. Size ",
      sizeof(Ort::CustomOpApi), "!=", sizeof(OrtApi*), " (expected)."));
}

In function _GetApi, it tries to retrieval OrtApi according to the relative offset in BaseKernel, so it gets wrong element when I insert info_ between api_ and ort_.
I recommend that we should think the inner implement of the C++ language as a black box, it will break our robustness if we take advantage of those inner implement.
@xadupre, could we change the the first parameter from Ort::CustomOpApi& ort to OrtApi api_? Because the BaseKernel also store the OrtApi api_.

Thanks for noticing it. PR #49 should address your issue.

Thanks for noticing it. PR #49 should address your issue.


GHA Cache is churning

We're now running enough jobs with enough cache size that we're starting to see the cache churning in GHA — specifically we're at (or close to) the point where one workflow causes another workflow's cache to be evicted without change in the cache key. e.g. https://github.com/PRQL/prql/pull/1318 took 14min to run, rather than 2.5min.
A couple of options:

Don't use the cache for the workflows that only run on main, such as testing python / java / Taskfile, which are not time-sensitive. But it makes these jobs take an extra 10 minutes, tying up runners for longer.
Use one omnibus cache — build everything in one job on main, then use that cache for all jobs. The downside is that jobs which don't use much of the cache will have to download everything. But most of the huge dependencies are rust's target, so not too bad. It would require some work to make the caches all use the same key and pick up the right paths (i.e. rust & npm paths together), and only write the cache for a single job
Combine some jobs — e.g. currently test-all's rust test and pull-request's rust test use different caches. This will save a bit of space, for a bit of work.
Wait for GitHub to increase limits

Probably I'd go for (1) & (4)

FYI this has calmed down — I think if every branch uses the same cache keys — derived from lock files — then it's fine.
I'll add another option above re not writing caches from non-main branches, I think that would ensure it can't start churning

And coincidentally (5) is suggested in https://github.com/Swatinem/rust-cache/issues/95


Regression: With cached results, changes to type definitions are not detected

💥 Regression Report

Last working version
#1390 was fixed in 25.3.0 but is now broken.
Worked up to version:
Not sure exactly, but 25.3.0 was working
Stopped working in version:
Not sure exactly, but is broken in 26.1.0.
To Reproduce
Steps to reproduce the behavior:
Identical to #1390, but upgrade ts-jest, jest and typescript to latest.
Expected behavior
Changes to type definitions should be detected (failing to compile where appropriate).
Link to repo (highly encouraged)
See zip file attached to #1390
Debug log:

# content of ts-jest.log :
Must run twice for this bug.  It's 135K before and 100K after.  Available on request.

envinfo
System:
    OS: Windows

Npm packages:
    jest: 26.0.1
    ts-jest: 26.1.0
    typescript: 3.9.5

indeed I see this stopped working in 25.5.1 I also checked between 25.5.0 and 25.5.1 there wasn't any changes in this area but for some unknown reasons jest doesn't burst cache properly which resulted in the changed file wasn't recompiled and re type checked.
Anyways, the implementation in 25.3.0 was a workaround and will be replaced.

Hi, what are your plans on rolling this out? Would you release this as a patch for 25.x version for those who haven't yet migrated to 26.x?

you can use ts-jest 26 with jest 25 without any issues, just you get the warning message incompatible version which will be fixed with #1774


kinfocenter: wrongly launch systemsettings

Describe the bug
Exec kinfocenter but systemsettings pops up after upgrading to KDE Plasma 5.26.1.
related: #108356
currently kinfocenter is a symlink to systemsettings5
which is a shell exec .systemsettings5-wrapped
which is a symlink to systemsettings
which is a shell exec .systemsettings-wrapped
which is the real binary.
And when we exec kinfocenter, the binary will finally get arg[0] == .systemsettings5-wrapped.
I guess this is the reason. Maybe we should link kinfocenter to systemsettings?
Or maybe we don't need to wrap the binary if it is a symlink like the systemsettings5 above? Will this cause other problems?
Steps To Reproduce
Steps to reproduce the behavior:

Upgrage kde plasma to 5.26.1.
Exec kinfocenter

Expected behavior
Kinfocenter pop up when exec kinfocenter
Additional context
Add any other context about the problem here.
Notify maintainers

@ttuegel
@nyanloutre
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-xanmod1, NixOS, 22.11 (Raccoon), 22.11.20221021.301aada`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.11.0`
- nixpkgs: `/nix/store/z59rm6q29zvd8sb1hs305bjpy9wb5bzk-source`

fixed in Plasma 5.26.2

fixed in Plasma 5.26.2

Broken again in Plasma 5.26.3


License issue

How much is your code open in terms of license.? Can I use chunks or the whole in my project? Or do you initially mean that it comes under the MIT license?

You are free to use the whole code of iCAN.
And we will appreciate it if you Indicate the code source in your project.


Project Server Actions

External Attestations
Project attestation
Acknowledgment
Queries

Fetch all projects

Fetch project attestations
Fetch project acknowledgment

Internal Attestations
Metrics

Points to project
Metric Acknowledgment
Metric Unacknowledgment

Metrics can be revocable
Libraries/Tools
IPFS
EAS
Local Storage Draft Metrics
Review before publish

These are the schemas currently known, so #44 incorporates those:
project: https://optimism.easscan.org/schema/view/0x0e5d439a46d50507c63ea277b75c4d87711cc9d1754103393066927ee9be9fe3

project metadata snapshot: https://optimism.easscan.org/schema/view/0x9a384502b07bb8dfe65a784d0abee1dc22ff541024a9965d78ef7934dda7b6ca
-> data will be available via API, lmk if you want me to help you access

RPGF application: https://optimism.easscan.org/schema/view/0x5a2187bc9d5f9a35b18538f30614ea92fc31c7f704707161de395f2ce6c09cab

We can't really complete is, because it looks like we'll be trailing changes made by OP for the upcoming rounds. In other words, what we know now are project owner's Farcaster ID, their Farcaster profile data and the project metadata stored for the application.
I like that we're not dependant on an OP API but EAS as a whole and would prefer to keep it like that. So maybe for now this issue is done?

From my understanding this ticket is to do the EAS work of building a server action that fetches the attestations for projects and then their metadata from IPFS and creates an list to send to the client of different projects.

@Oba-One we can't really complete this, because it looks like we'll be trailing changes made by OP for the upcoming rounds. In other words, what we know now are project owner's Farcaster ID, their Farcaster profile data and the project metadata stored for the application.
I like that we're not dependant on an OP API but EAS as a whole and would prefer to keep it like that. So maybe for now this issue is done?

From my understanding this ticket is to do the EAS work of building a server action that fetches the attestations for projects and then their metadata from IPFS and creates an list to send to the client of different projects.

From my understanding this ticket is to do the EAS work of building a server action that fetches the attestations for projects and then their metadata from IPFS and creates an list to send to the client of different projects. Based on the PR looks like that has been done,  so yea this is done.
@bitbeckers


[CELEBORN-1761][CIP-14] Add cppProto to cppClient

What changes were proposed in this pull request?
Add cppProto (TransportMessages.proto, softlinked as TransportMessagesCpp.proto) to cppClient
Why are the changes needed?
To support proto in cppClient and align with java's definition.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Compilation.

@FMX FindProtobuf method has its problem, that the dependency of protobuf-generation cannot be declared explicitly.
This wouldn't be a problem if the protobuf module is exported as a standalone library so the dependency could be solved by other moudle's target_link_library(), but celebornCpp would be exported as a compact library as a whole, and all the compilation target would be exported in a single libceleborn.a.
In this case, the protobuf's .o file would be collected in a libceleborn.a library rather than a standalone libproto.a library, and the dependency between the proto generation and other proto-dependent files cannot be declared by the FindProtobuf method.
This is why I explicitly use the add_custom_command() method which offers more accurate control over the dependency problem.
Besides, it seems you are using the clion IDE to import the project, and I guess maybe you trigger the compilation by running the utils/tests/ExceptionTest.cpp.
As the testcase has no dependency over the libproto.a, the proto generation would not be triggered.
If you are running the compilation on command line, like
rm -rf build && mkdir build && cd build
cmake ..
make

The libproto.a and the protofiles would be generated as expected, which I've tested several times.
Also, maybe you could try to compile the whole project on Clion IDE to check if the protofile and libproto.a could be generated as expected.

@FMX It suddenly occurs to me that you could check if your cpp/celeborn/proto/TransportMessagesCpp.proto is valid or not.
As the file is a softlink to java end's TransportMessages.proto, it is possible that the softlink is not working on MacOS environment.
If the softlink is not working, try reclone the project with option --config core.symlinks=true to enforce the softlink.
The clone command would be
git clone git@github.com:apache/celeborn.git --config core.symlinks=true

After some more tests, the build failure is related to the CLION remote development. Building the Celeborn native SDK in the docker container is fine.


Work practices and challenges in pull-based development: the integrator's perspective

http://dl.acm.org/citation.cfm?id=2818800&CFID=550839757&CFTOKEN=78411605

This contains a tool, that can torrent search github repos
https://github.com/gousiosg/github-mirror


Delete TypeScript to WebAssembly compilation SIG proposal.md

No activities are happening in this SIG. We would like to close it.

Instead of deleting, will you move the md to SIGS/archived?
Thank you!

sure. will do.


[README.md] Fix manual installation

add compile project(':react-native-dialogs') for manual installation

Thanks!


[MM-32201] Job table changes for data retention

Summary
This update is for data retention. I needed a prop to hide the create job button because I need to call the create job endpoint from outside this component.
Design: https://www.figma.com/file/PdZPkf36lNU6ZO41JlEjKd/Team-%26-Channel-Data-Retention?node-id=20%3A181
Ticket Link
https://mattermost.atlassian.net/browse/MM-32201
Screenshot

/update-branch

/update-branch


Apotheosis Health Glitch?

I have a rare helmet which one of the 'affix/s' give me a health boost of 2.88 hearts when wearing it. But if i die while having it on my head, then it keeps the hearts and gives me even more hearts. So lets say i was on the norm 10 hearts then it goes to 12 then 14 etc. It super annoying as it breaks the game and it fills up my screen way to much, please fix this asap, TY! (btw this is for 1.16.1) if you need the version then i'll send that too :D

The attribute modifiers on items are applied via the same way you could nbt edit them in, in vanilla.  There's no custom systems at work here, so there's no code for me to fix.  If anything, it might be a vanilla bug or even a forge bug, but it's not anything I can fix.


Better distinction between v4 and v5 docs

I'm opening this because I've seen fragments of this request dotted around other issues, but I couldn't find a single issue that tied them together.
The current setup of the docs site is confusing and causing frustration. It looks like the main site now contains documentation for v5, which is still only in beta right now. The only indication that the docs are for the new beta version are small notes in the left column.

The version number at the top of the column vanishes from view as soon as the page is scrolled even a small amount.
The small note at the bottom of the column is likewise hidden when the column content is large:

I just got hit by the exact same problem as https://github.com/webpack/webpack/issues/10716 — I went looking for a config option, tried it out, then hit a compilation failure because it turned out to be a v5-only option.
Rather than just complaining, I have some suggestions:

Default the webpack.js.org site to v4 docs until v5.0.0 is actually released, with v5 docs as the alternative site (so the inverse of what's currently set up). Running npm install webpack still installs version 4 at the moment, so that's what a huge majority of people are going to want documentation for. It's really confusing to have the installation and docs be out of sync like this.
On the v5 site, have a more prominent note that it's v5 with links to older docs (e.g. #2980).
Once v5 is released, the v4 site needs a prominent notice that it's not the latest version (noted in #3366).

How about adding a version badge indicating which version of webpack has introduced that option?
For example:

Hi @gilmoreorless
Current live website is for webpack 5 which is the recommended version for the projects due to numerous improvements. The shield that has a beta on it, indeed does indicate the latest version of webpack that docs cover

@EugeneHlushko Thanks for the response. But I feel you've just repeated my opening problem statement. Maybe I didn't list the problem clearly enough:

Webpack v5 may be the "recommended version", but it's important to note that it hasn't been released yet — beta versions don't count as v5 being released. There are many, many teams out there who will refuse to use a beta version of a tool for a production system. Therefore the primary docs site should still be for v4.
The installation guide in the current v5 docs gives instructions to install a version of webpack that is not the same as the docs. Note the "latest webpack release" badge:

The badge showing the current version is very easy to miss. This can be shown by opening any deep link to a specific piece of config, which scrolls the badge out of sight: https://webpack.js.org/configuration/output/#outputlibrary

Closing this since v5 has been released.


[Bug] Recipes using "Steel-infused" are broken

You have the correct name for "Steel-infused" at https://github.com/JaroVDH/PoE-archnemesis-recipes/blob/main/view.js#L135 but then you reference it as Steel-Infused
At:

https://github.com/JaroVDH/PoE-archnemesis-recipes/blob/main/view.js#L295
https://github.com/JaroVDH/PoE-archnemesis-recipes/blob/main/view.js#L337

Case-sensitivity seems to break it

Fixed.
Thanks for letting me know!


Error Throwing

Some distributions are defined in terms of parameters with limitations of their value (e.g. 0 < k < 1). Need a way to throw an error in case a language user calls the distribution with parameter values violating such restrictions.

Added to my list.

There seems to be no actual feature.
I think that what you can do, for now, is to have the distribution function return the 0 measure when the parameter is out of bounds.  i.e.
reject. measure(real)

for example is the 0 measure over the reals.

I believe that is sufficient to close the issue?


pd.Series gets converted to pd.TimestampSeries after isinstance check

Describe the bug
A pd.Series variable changes type after an isinstance check.
To Reproduce

Provide a minimal runnable pandas example that is not properly checked by the stubs.

df1: pd.Series | pd.DataFrame = pd.Series()
reveal_type(df1)  # <- As expected
if isinstance(df1, pd.Series):
    reveal_type(df1)  # <- ???

Indicate which type checker you are using (mypy or  pyright).
mypy
Show the error message received from that type checker while checking your example.

note: Revealed type is "Union[pandas.core.series.Series[Any], pandas.core.frame.DataFrame]"
note: Revealed type is "pandas.core.series.TimestampSeries"

Please complete the following information:

OS: Windows
OS Version: 10
python version: 3.11
version of type checker: 1.8.0
version of installed pandas-stubs: <IP_ADDRESS>218

pyright 1.1.351 gets it right:
issue877.py:4:13 - information: Type of "df1" is "Series[Unknown]"
issue877.py:5:4 - error: Unnecessary isinstance call; "Series[Unknown]" is always an instance of "Series[Unknown]" (reportUnnecessaryIsInstance)
issue877.py:6:17 - information: Type of "df1" is "Series[Unknown]"

I think this is a mypy bug.  See https://github.com/python/mypy/issues/15322
I'll keep this open in case mypy ever fixes that issue.

I am unable to reproduce this one, used the same example as @tvdboom above and this is what mypy returns to me:
===========================================
Beginning: 'Run mypy on 'tests' (using the local stubs) and on the local stubs'
===========================================

tests/test_frame.py:3584: note: Revealed type is "Union[pandas.core.series.Series[Any], pandas.core.frame.DataFrame]"
tests/test_frame.py:3586: note: Revealed type is "pandas.core.series.Series[builtins.float]"

Not sure exactly where it got fixed but it seems like it does not map to TimestampSeries anymore.

Ohh I understand, thanks a lot for all the details!


Add support for additional tools

Closes #40

The wildcard code smells are there because we are using different return types as a job log. I don't have a better idea than this.


🐛 Level is empty for query - I need to talk to a DevOps expert in Melbourne

Cc: @jimmidier @BrookJeynes @william-liebenberg @adamcogan

To myself,
Describe the Bug

No level info for Bahjat. Need to double-check the correctness of data.
Tasks

[x] Investigate
[x] Fix

Screenshots

Figure: No level info
Definition of Done

[x] All tasks are updated and closed
[x] No high priority defects/bugs are on that user story
[x] Code reviewed by one other team member (e.g. Checked by Bill)
[x] All acceptance criteria have been met
[x] Deployed to Dev
[x] (If implemented) Pass automated UI testing
[x] (If not implemented above) Do a manual test on all supported commands (at least one for each LUIS intent) against Dev
[x] Complex code is documented (removing technical debt)
[ ] Deployed to Production
[x] Add description about the changes for the PBI
[x] Tick off the definition of done tasks in the PBI
[x] (Optional) A Done Video, particularly for PBI with multiple stages

Thanks!

Done


[FEATURE] add tic tac toe game

Description
I want to add tic tac toe
Screenshots
No response
Additional information
No response

I want to work on this issue.


  The suggestion is to add loading="lazy to rendered images:
<img  src="/media/cc0-images/grapefruit-slice-332-332.jpg"
     alt="Grapefruit slice atop a pile of other slices"
     loading="lazy"
/>

The loading attribute is ignored by older browsers.
Motivation and Context
See attached Issue #4001
How Has This Been Tested?
Local builds. Manual Testing
Type of Changes

New feature (non-breaking change which adds functionality)

@jason-fox - I suggest removing the priority="-10" from the last template, as it's not needed.

Setting a DITA <image> like this:
<image scope="external" href="https://...etc"/>

Causes a match against both templates, which results in the following if priority is missing.
     [xslt] Ambiguous rule match for /dita/topic[1]/topic[2]/body[1]/bodydiv[1]/image[1]
     [xslt] Matches both "*[fn:matches(...)]" on line 1980 of file:/Users/jasonfox/Workspace/dita/dita-ot-3.7/plugins/org.dita.html5/xsl/topic.xsl
     [xslt] and "*[xs:string(@scope) eq "external"]" on line 1977 of file:/Users/jasonfox/Workspace/dita/dita-ot-3.7/plugins/org.dita.html5/xsl/topic.xsl

Hence the addition of priority. Now it may be the case that the <xsl:template match="*[matches(@href, '^https?:')]"> is  likely to be unnecessary because pre-process already complains and sets the sets the <image>  to scope="external" anyway, but I think having both better explains the intent of the change since it doesn't rely on preprocessing always doing the right thing.

But I think the default template for "*" is taking precedence over the priority="-10" template, or at least that's the behavior I see when I test these templates in isolation in an XSLT fiddle. Perhaps instead a priority="10" can be added to the @scope="external" template to break the ambiguity?

One remark, the stylesheet "org.dita.xhtml/xsl/dita2xhtml-util.xsl" should probably have an extra template to remove this attribute as the XHTML generation should be valid according to the XHTML standard which does not allow it.

I think the https-match template can be omitted completely.

@ chrispy-snps - removed  6af6e29

the stylesheet "org.dita.xhtml/xsl/dita2xhtml-util.xsl" should probably have an extra template to remove this attribute

@ raducoravu - Is that really necessary? There is no call to the <xsl:apply-templates mode="set-image-loading"/> in the XHTML transforms compare https://github.com/jason-fox/dita-ot/blob/patch-1/src/main/plugins/org.dita.html5/xsl/topic.xsl#L1396 to the equivalent  https://github.com/jason-fox/dita-ot/blob/patch-1/src/main/plugins/org.dita.xhtml/xsl/xslhtml/dita2htmlImpl.xsl#L1556

@jason-fox please disregard my previous comment then.


GPS Animation sample

We currently have the animated bus sample. An improved version could use an recorded GPS track. Preferably a circular one.
If a user has track that we could use I would be interested.

Maybe this better.

That looks lovely. Do you have a gpx file that we could use?

@pauldendulk
Yes. This is a csv file with lon,lat,speed and heading.
gps.csv

Great! The file is 751kb, not too big.


Center align words in gloss?

problem:
The words in the gloss are left-aligned.
I'd like them to be center-aligned.

solution:
create a custom css file
.ling-gloss-level-a { text-align: center; }
.ling-gloss-level-b { text-align: center; }
.ling-gloss-level-c { text-align: center; }
.ling-gloss-level-x { text-align: center; }

save it in in \.obsidian\snippets
Enable it in Obsidian Settings > Appearance


add migrate-supplier-data-from-declarations script

Story https://trello.com/c/v0ouuEMF/61-migrate-the-data-from-the-g9-dos2-declaration-to-account-level-2
Most of the information about this is in that story, including example "dry run" output run on production yesterday with outputs of what changes it would make.

@TheDoubleK regardez

We could merge this now, but could wait for now in case there are other tweaks once we run it for real, and then only merge in the actual version that was run.  Up to you though - merging while it's all up-to-date might not be a bad thing :+1:

This is the version of the one-off script that was run against production - merging it as-is for records.


append dataframe in GTFS script throws error, apparently

When testing the new enhancements additions (related to #234) on a different computer, I noticed that when running the GTFS analysis there is a call to append dataframes, and this fails.
[Apparently], this relates to a deprecation of the append function in Pandas > 2.0; however, not sure why this wasn't picked up on tests on other computer.
Presumably, it relates to the new Docker image rather than the language-related modifications -- so this may be an issue impacting the main branch.
The error was:
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?

and presumablye relates to this line of code:
https://github.com/global-healthy-liveable-cities/global-indicators/blob/3590ea1ced9d2d0d402c62ff353f205e4c3015f9/process/subprocesses/_10_gtfs_analysis.py#L130
I confirm that Pandas version is 2.0.0, and that this change is from the Docker image update https://github.com/global-healthy-liveable-cities/global-indicators/commit/12528a06ec85a204dc0b49c9c9f9f78d5cb3a002
So, this is a priority to fix, as it will impact main branch users presumably.

confirmed that this issue is present in the main branch, but also that the above commit that referenced this issue addressed it in the enhancements branch.


Cannot upload a folder of symlinks to a blob container

Storage Explorer Version: 1.17.0
Build Number: 20201211.10
Platform/OS: Windows 10 Pro
Architecture: i86
Bug Description
I cannot upload a folder containing just symlinks from my computer to the Azure Storage blob container. The upload is shown as finished successfully (green tick).
Steps to Reproduce

Create a folder on your computer and put one or more symlinks to it (using the mklink command).
Open a blob container in the Azure Storage Explorer.
Drag the local folder into the Azure Storage Explorer window.

Expected Experience
The folder and all the linked files should be uploaded to the Azure storage (or an error should be shown if this is not supported).
Actual Experience
Nothing is uploaded. In the Activities section, the upload is marked as successful (green tick). The following message is shown:

Transfer of 'D:\path\subfolder-with-symlinks\' to '$web/designated-superfolder/' complete: 0 items transferred (used SAS, discovery completed)
Started at: 24. 2. 2021 10:41:45, Duration: 2 seconds

Additional Context
I’ve tried to drag from Explorer and Total Commander – no difference observed.
If I add a regular file into the folder to upload, then the folder is created on Azure and just this file is uploaded.
If I directly drag the symlink to the Azure Storage Explorer window, the linked file is uploaded.

I’ve discovered the upload works when I use hard links (mklink /h) to place the designated files into the folder. This is a feasible workaround for me.

We'll need to check with the AzCopy team if this is supported. We always ask AzCopy to follow symlinks.

@Melebius can you try to explain your initial setup again? I'm confused about what is linked to what. Maybe could you paste in exact repro steps for me? Like:

Make folder foo/
Place some number of files in foo/
mklink foo-link-hard foo
Drag and drop foo-link-hard into Storage Explorer

Hmmm maybe what you are doing is this?

Have files in various places on machine, say file1.txt, file2.txt,file3.txt
Make folder foo/
Create a soft link in foo/ for each of the files, for example, in foo/: mklink file1.txt-link <path to file1.txt>
Drag and drop foo/ into Storage Explorer

Ok ya, I think these steps are what you are doing.

Hmmm maybe what you are doing is this?
1. Have files in various places on machine, say `file1.txt`, `file2.txt`,`file3.txt`

2. Make folder `foo/`

3. Create a soft link in `foo/` for each of the files, for example, in `foo/`: `mklink file1.txt-link <path to file1.txt>`

4. Drag and drop `foo/` into Storage Explorer

Yes, this is what I was doing. Are you able to reproduce my issue?

Yes, this is what I was doing. Are you able to reproduce my issue?

Yes I am able to repro! I've passed along the repro steps to the AzCopy team. I'll keep you up-to-date once they get back to me. Sorry this has taken a while.

Hey @Melebius, finally had a chat about this with the AzCopy team. They're going to get an item on their backlog to work on this, though it won't be done anytime soon. Definitely not for our upcoming milestone, but within this calendar year is probably possible. So for now, I'm going to move this issue to our milestone for AzCopy issues we're waiting on them for. Thanks for the patience!

Any update on this?  I want to do something similar


Expose a route test

It would be nice to have an external hook which can be called to evaluate what view a route would resolve to and which arguments it would have without actually navigating to that route.

Not quite sure if I understand how this feature would work. Maybe some code example could help here.
Despite that, it's important to notice that mithril is a minimalistic framework.
This means that there are quite a lot features that would sure be cool, but that mithril will end up not adding to it's core code to keep it's simplicity intact.

... it's important to notice that mithril is a minimalistic framework.

It would be useful to split mithril.js to allow modularized pick. It could work without promises and XHR which included into its body. Shure, it could even work without components just as a diff-render template engine. Why all parts are in the same file?

@avesus  This was discussed several times.
Mithril is so small, it probably won't reflect on the size of your overall code when you leave parts out. Also such a move would add additional overhead that probably most of the people have to include. So it's unfair to bloat the code just for the people who want modularisation.
@lhorie sees mithril as a collection of the minimal modules you mostly need to build a web application. They are build to work well together.
@andre-gh Can you please describe a use case for this. Don't see, why one want's such a behaviour.

I am leveraging Mithril to do some server side rendering and need to know which View would end up getting rendered for a particular route (but do not want to mount mithril on a server side virtual dom and have tons of overhead).
Essentially I an implementing by own router and renderer on the server end, using Mithril only for compatible promises, m() calls, etc.  This allows my server side view pre-rendering/warming to use identical code component/view as the client.
The tidbit I am running into mostly involves routing, I need to grab route data and route in the same way mithril would to ensure there are no differences.  I can/have reimplemented this but it would be nice if Mithril just exposed the code which already exists.
I implemented this just by copy-pasting a few lines of the internal code and it is very frustrating to need to copypase a few lines which could otherwise be exposed:
      for (var route in routes) {
        if (route === path) {
          return routes[route]
        }

          var matcher = new RegExp("^" + route.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "\/?$");

  if (matcher.test(path)) {
    path.replace(matcher, function() {
				var keys = route.match(/:[^\/]+/g) || [];
				var values = [].slice.call(arguments, 1, -2);
				for (var i in keys) {
        var key = keys[i]
        globalparams[key.replace(/:|\./g, "")] = decodeURIComponent(values[i]);
      }
			})
    return routes[route]
  }

Essentially I want the internal code to be broken out and exposed as something an advanced user can use using Mithril as a utility.   It would be passed a list of routes and would spit out parameters and the given route selected.
Otherwise I am just copypasting the internal regexes and hoping for the best.

It is important to note that the impact on the internal code would be super minimal only breaking out that code block a little bit, which at this point is very internally nested.

Currently, m.route(el, '/', { routesObject }) returns void. Would it help if it were to return the routes object? Then you could determine a view something like this:
var currentRoute = m.route() // or var futureRoute = m.route('/another/route')
for ( path in Object.keys( routesObject ) ) {
  if ( path === currentRoute ) { // or futureRoute
    var Component = routesObject[path]
    var componentView = Component.view( new Component.controller(attrs) )
}

This is a purely hypothetical question at this point. Attributes would need to be accessible to get a complete copy of the view template object. m.route('my/route') would have to return the new route instead of void. And something like m.route.params() would need to return a parameters object.
My first thought is that all of this is doable and would require only small changes to mithril.js. I hesitate to investigate this further, not knowing if exposing the routes object would fulfill your needs.

Using m.route is not an option for me as it does not work without a window object and DOM and I do not want to hack a mocked environment in place.  I am realizing now that I would not need this solution if there were a router which worked in such a virtual environment.

I'll take this into consideration for the rewrite. For the v0.2.x stream this is out of scope


Migrate from requirements.txt to Pipenv

The Pyup.io action is failing because it does not integrate with GitHub Enterprise with SAML. I should migrate this over to Pipenv instead, and then use this GitHub action to periodically update the dependencies. https://github.com/bridgecrewio/checkov/blob/master/.github/workflows/pipenv-update.yml
I'll also use this across my other python projects.

Fixed by #90


Example of how to write or update values in a JSON file needed.

All examples show parsing but not writing.
I need a simple quick example of how to update values in an existing file and how to create a new one.
Thanks.

let a:JSON = [:]
a["hello"].string = "World"
print(a.rawString())