Enabled Hyper-V but no Hyper-V Manager Found

** Enabled Hyper-V but no Hyper-V Manager Found**
Link to doc:https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

I turned on the hyper-v feature, rebooted system, it took longer than usual and there was that , Installing Updates screen on startup and yet there is no Hyper-V Manager Found anywhere.
What am I missing ?

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


Manifold projection only uses three channel (RGB) images currently

We should change this dimension to match the incoming image data:
https://github.com/quantumjot/cellx/blob/a86435373ef0153d572a9f94d13c77a87fc7e949/cellx/tools/projection.py#L96-L101

This also defaults to uint8 - we should use the dtype of the input images


Fix svg layout

In the existing container image, Times-Roman font is not installed.
$ docker run -v "$(pwd):/work" -it --init --rm ghcr.io/alps-asd/app-state-diagram dot -Tsvg -v -o/work/profile.svg /work/profile.dot
dot - graphviz version 2.47.1 (20210515.0534)
libdir = "/usr/lib/graphviz"
Activated plugin library: libgvplugin_core.so.6
Using render: svg:core
Using device: svg:svg:core
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
The plugin configuration file:
        /usr/lib/graphviz/config6
                was successfully loaded.
    render      :  cairo dot dot_json fig json json0 map mp pic pov ps svg tk visio vml xdot xdot_json
    layout      :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device      :  canon cmap cmapx cmapx_np dot dot_json eps fig gv imap imap_np ismap json json0 mp pdf pic plain plain-ext png pov ps ps2 svg svgz tk vdx vml vmlz x11 xdot xdot1.2 xdot1.4 xdot_json xlib
    loadimage   :  (lib) eps gif jpe jpeg jpg png ps svg
fontname: unable to resolve "Helvetica"
pack info:
  mode   undefined
  size   0
  flags  0
  margin 8
pack info:
  mode   node
  size   0
  flags  0
fontname: unable to resolve "Times-Roman"
network simplex:  4 nodes 3 edges maxiter=2147483647 balance=1
network simplex: 4 nodes 3 edges 0 iter 0.00 sec
Maxrank = 4, minrank = 0
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross application_state_diagram: 0 crossings, 0.00 secs.
network simplex:  19 nodes 24 edges maxiter=2147483647 balance=2
network simplex: 19 nodes 24 edges 3 iter 0.00 sec
routesplines: 5 edges, 25 boxes 0.00 sec
Using render: svg:core
Using device: svg:svg:core
gvRenderJobs application_state_diagram: 0.00 secs.

check current container's output
docker/app-state-diagram/build.sh
docker/app-state-diagram/run.sh

see https://gitlab.com/graphviz/graphviz/-/issues/1426

Codecov Report

Merging #138 (55e19d5) into master (2dd2199) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #138   +/-   ##
=========================================
  Coverage     92.41%   92.41%
  Complexity      333      333
=========================================
  Files            32       32
  Lines           831      831
=========================================
  Hits            768      768
  Misses           63       63

Continue to review full report at Codecov.

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

Times-Roman font is not installed.

Congratulations! This is a great achievement. 🎉👏👏👏

https://gitlab.com/graphviz/graphviz/-/issues/1426

I didn't realize there were still issues from three years ago.

フォントを明示的に指定する必要はないですか？


Documentation is gone

The documentation at http://www.hyperic.com/support/docs/sigar/ is no longer reachable.

We must ask the question if project is still being developed at all.

The documentation is available under https://sourceforge.net/projects/sigar/files/docs/


Apple Keychain as a Password Manager?

I use Apple Keychain a lot but it is not listed in either "Avoid" or "Instead use". Are there any privacy concerns with Keychain? Or is it not listed because it is available for Apple products only?

Well, Apple has famously opposed an FBI attempt to break into a phone. But the passwords can still be read by apple so it's really up to whether you trust apple.

@Gregor-Davies ...do you have any supporting research that Apple can read the passwords? I don't know that that is true.

But the passwords can still be read by apple so it's really up to whether you trust apple.

Apple claims that the passwords are end-to-end encrypted.
https://support.apple.com/en-us/HT202303

Here's some recent keychain hacks in the news.
https://www.wired.com/story/keysteal-apple-keychain-attack-shenanigans/
It uses the same password as your mac so if your macs hacked your passwords can be stolen
https://www.laptopmag.com/articles/mac-keychain-hack

@aiquiral It's worth noting that end-to-end encryption doesn't mean the person who made the service doesn't keep their own key for being able to decrypt them at a later time.


Upgrade to Grunt ^1.0.1

To avoid this issue.

Ready for review.

:+1:

Needed to upgrade our grunt plugins and mocha also, decided to upgrade jshint too, seeing as it is our only other dev dependency.


3-way session, out-of-sync file during rebase

Product and Version [VS/VSCode]: VSCode 1.40.1
OS Version [macOS/Windows/Linux]: macOS Darwin x64 18.7.0
Live Share Extension Version: 1.0.1293
Target Platform or Language [e.g. Node.js]: HTML
What were you doing when you encountered the desync?
I was rebasing a branch during a session with 3 participants. The file seemed to retain the old content, but the correct content was printed using cat from the terminal.
How often have you encountered desyncs?
A couple of times recently.
App info
Version: 1.40.1
Commit: 8795a9889db74563ddd43eb0a897a2384129a619
Date: 2019-11-13T16:47:44.719Z
Electron: 6.1.2
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Darwin x64 18.7.0

@AnthonyIsaacs Thanks for reporting the issue!
Did you rename the file?
Was the file open in editor for any of the participants?
If you can reproduce the issue, can you please capture Live Share logs (F1 -> Live Share: Export logs) and attach them to this issue. If you can do the same for all the participants in that session, that would help a lot.

Closing this due to inactivity. Please reopen it if you’re still encountering the issue. Thanks!


Add config.testResultsProcessor

The aim of this config is to allow hooks into the runResults, for instance to generate jUnit test reports.
The json that jest --json outputs only shows part of the runResults object

Hey,
that actually sounds like a pretty good idea! However, is there a reason why wrapping Jest isn't an option for you? This was the original intention:
jest --json | node processJestOutput.js | doSometingElse
wouldn't that also work and give you more freedom to do whatever you want?

Hi,
jest --json only returns information on passing or failing tests per file, and I'd like to have the passing testcase information in the output.

@facebook-github-bot shipit

yeah that seems reasonable to me. We made it so that Jest produces output similar to what we use at FB (with our custom runner, not yet open source), but there wasn't any particular reason to do so.

@lPadier Would it be possible for you to post an example of how you were able to create JUnit tests with Jest? I'm struggling with the same thing thing right now, but other than this, all information seems limited to Jasmine 1.x and Jasmine-Reporters 1.x.


Removal of compression functionality

Complete removal of compression functionality from DAAL cpp and java interfaces.

/intelci: run


Add Crate to universe repositories

@kovrus have you tested this?  I just attempted to install into a dcos env.  it fails based on missing required properties.   The output is:
universe(git:version-1.x)$ dcos package install crate
The Crate DCOS Service implementation is experimental and therefore there may be bugs or incomplete features. Never use alpha version software in production!
	Please refer to the documentation at https://github.com/crate/crate-mesos-framework for information how to start a Crate cluster.
Continue installing? [yes/no] yes
Error: missing required property 'version'.

Error: missing required property 'zookeeper'.

Please create a JSON file with the appropriate options, and pass the /path/to/file as an --options argument.

If I bypass required validation... the project fails to deploy.
stderr:
Exception in thread "main" com.beust.jcommander.ParameterException: Was passed main parameter 'crate' but no main parameter was defined
	at com.beust.jcommander.JCommander.getMainParameter(JCommander.java:903)
	at com.beust.jcommander.JCommander.parseValues(JCommander.java:748)
	at com.beust.jcommander.JCommander.parse(JCommander.java:279)
	at com.beust.jcommander.JCommander.parse(JCommander.java:262)
	at com.beust.jcommander.JCommander.<init>(JCommander.java:207)
	at io.crate.frameworks.mesos.Main.parseConfiguration(Main.java:90)
	at io.crate.frameworks.mesos.Main.main(Main.java:120)

the config.json file fails schema validation tests... in the universe directory containing the crate config files:  universe/repo/packages/C/crate/0
executing jsonschema -i config.json ../../../../../repo/meta/schema/config-schema.json
results in:
jsonschema -i config.json ../../../../../repo/meta/schema/config-schema.json
[]: [] is too short
[]: [] is too short
[]: [] is too short

@kensipe
Error: missing required property 'zookeeper'  is fixed.
The version of crate must be provided. We do not want to bundle users to a specific crate version, instead we would like to let them choose which version to use.
$ dcos package install --options=crate.json crate
$ cat crate.json
{ "crate": {
 "version": "0.50.1"
 }
}

Change the framework-name doesn't change the framework name that is registered with mesos.  Fortunately the project is OSS... the issue is this:
https://github.com/crate/crate-mesos-framework/blob/master/src/main/java/io/crate/frameworks/mesos/Main.java#L131
For certification this must be a configurable and changeable value.

The spec indicates that the frameworkId must be persisted for failover.  I see that you are using ZK to persist cluster name, etc.  however the frameworkId is not persisted.

@kovrus  The scheduler doesn't schedule any active tasks... there is no CLI...  Am I missing something?

@kensipe we only persist the framework id once the framework is registered
https://github.com/crate/crate-mesos-framework/blob/master/src/main/java/io/crate/frameworks/mesos/CrateScheduler.java#L139:L140
is this too late? should it happen within the Main class?

@kensipe don't quite understand your last comment.
the scheduler launches tasks only when resizing the cluster via the framework API.

@kensipe concerning framework authentication
credentials are set as environment variables in the marathon.json and used in the framework here:
https://github.com/crate/crate-mesos-framework/blob/master/src/main/java/io/crate/frameworks/mesos/Main.java#L154:L157

@kensipe can you give us a status update on this please
thx, bernd

hey @dobe yesterday I was traveling (unexpectedly).   I am looking at this now and will have an update by tomorrow am.

@dobe @chaudum can we get on a hangout?   I'm needed some details for using this service which seem to be missing.  The service launches, but there are 0 active tasks.

An uninstall and then another install of crate fails... I uninstalled again, cleared the zk and all is good.    We need to put postUninstallNotes in place.
example is:    "postUninstallNotes": "The Chronos DCOS Service has been uninstalled and will no longer run.\nPlease follow the instructions at http://docs.mesosphere.com/services/chronos/#uninstall to clean up any persisted state"

@kensipe which URL can we reference to in the postUninstallNotes? will it be http://docs.mesosphere.com/services/crate/ once the tutorial is online?

reference our online tutorial is a great idea... yes!

Follow up to our discussion:
actions:

default a crate.version in the config
add the med and large images references in the package.json

my actions:

I've filed a JIRA for the service router issue regarding allowing POSTs
I will be working through the additional cert requirements invoking the service locally from a terminal on the slave (until we get the service port issue resolved)

updated the package.json with a default crate version, the medium/large icons as well as the postUninstallNotes.
also updated the tutorial accordingly: https://github.com/crate/crate-demo/pull/2/files

Status Report:
Thanks for the latest.  I will start testing now.
The issue with POST requests via the admin router is being investigated.  our team wasn't able to discover the issue yet.

@chaudum I've launched the latest into our dcos env... I've been troubleshooting ever since.  I launched a cluster size of 1... I'm getting LOST task status in Mesos with nothing in the sandbox.

this seems like the relevant messages...
Aug 06 16:27:03 ip-10-0-0-135.us-west-2.compute.internal mesos-slave[1000]: W0806 16:27:03.756502  1002 paths.cpp:411] Failed to chown executor directory '/var/lib/mesos/slave/slaves/20150806-145134-3288596490-5050-1167-S2/frameworks/20150806-145134-3288596490-5050-1167-0001/executors/3b1af40e-59e9-4339-913a-200a0b519608/runs/e41cec99-5170-48a2-a69b-7ace7ffb4a3b': Failed to get user information for 'crate': Success
Aug 06 16:27:03 ip-10-0-0-135.us-west-2.compute.internal mesos-slave[1000]: E0806 16:27:03.758756  1009 slave.cpp:3112] Container 'e41cec99-5170-48a2-a69b-7ace7ffb4a3b' for executor '3b1af40e-59e9-4339-913a-200a0b519608' of framework '20150806-145134-3288596490-5050-1167-0001' failed to start: Failed to prepare isolator: Failed to get user information for 'crate': Success

@chaudum ok.. the issue is you are defaulting to "crate" as a user in your framework
https://github.com/crate/crate-mesos-framework/blob/b74d1a0252cf81509e9cfebd870af96213a4c17c/src/main/java/io/crate/frameworks/mesos/config/Configuration.java#L39-L40
This is not appropriate... it isn't a good assumption the environment has that user setup on all the slaves.    I would fix the assumption in the framework, but alternatively you can get away with defaulting the crate.framework.user in the config.json (then make it required and probably remove the conditional block in the marathon.json).

@chaudum Certification requirement #18 says that Executors should kill their tasks if they terminate.   Looking at your CrateExecutor.java this doesn't seem to be the case.    I think all you need is to register a shutdown hook and kill the Crate process.

when a data-path isn't provided and it is null... where is data stored?

The defined required vars are not defined in the config file.   These are NOT vars that are missing and need to be supplied.  These are vars that have no defined control block around them...  for clarity, an example of a control block is your use of {{#crate.framework.auth.enabled}} which makes crate.framework.auth.princial and crate.framework.auth.secret not required.
missing required definitions are:
crate.framework-name
crate.framework.cpus
crate.framework.memory
crate.framework.api-port
crate.framework.zookeeper
crate.cluster-name
crate.version
crate.http-port
crate.transport-port
crate.resources.cpus
crate.resources.memory
crate.resources.heap
crate.resources.disk

Summary of what is remaining:

The executor when killed does terminate the task
I need to know where data is being stored when the data-path is not supplied
All required properties need to be declared required in the config.json
There are default values in the framework which are not defaulted in the dcos configuration.  An example is framework user.   This can't be allowed... and the default is different for dcos (the user needs to default to root)

Thats the end of what is needed by Crate.
We have an issue we need to investigate on our end regarding sending a POST through the service endpoint.

Oh... it would also be better to name the crate tasks.  currently they are all named crate :)  and it is impossible to distinguish the crate scheduler task from the executor tasks.  Anything here other than the name of the framework-name would be good.  crate-executor or crate-service would be good.
also... I don't know enough about your service... but if all the names are the same,  they will be registered in mesos-dns under the same A record.   So one expects they it doesn't matter which service they are attached to and that round robinning from service to the service is ok.    Make sure that is what you want.

also... occasionally the service (scheduler) is failing.  I haven't been able to understand what is causing this...  The last occasion of this happened immediately after a curl POST adjusting the instance count.   Here is the slave logs:
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.082407  1117 slave.cpp:3223] Executor 'crate.6a75bc22-3c7c-11e5-a73d-56847afe9799' of framework 20150806-145134-3288596490-5050-1167-0000 terminated with signal Killed
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.083112  1117 slave.cpp:2531] Handling status update TASK_FAILED (UUID: 8f067bdc-4768-48b3-8ea3-572d81313392) for task crate.6a75bc22-3c7c-11e5-a73d-56847afe9799 of framework 20150806-145134-3288596490-5050-1167-0000 from @<IP_ADDRESS>:0
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.083418  1118 status_update_manager.cpp:317] Received status update TASK_FAILED (UUID: 8f067bdc-4768-48b3-8ea3-572d81313392) for task crate.6a75bc22-3c7c-11e5-a73d-56847afe9799 of framework 20150806-145134-3288596490-5050-1167-0000
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.083447  1118 status_update_manager.hpp:346] Checkpointing UPDATE for status update TASK_FAILED (UUID: 8f067bdc-4768-48b3-8ea3-572d81313392) for task crate.6a75bc22-3c7c-11e5-a73d-56847afe9799 of framework 20150806-145134-3288596490-5050-1167-0000
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.085043  1121 slave.cpp:2776] Forwarding the update TASK_FAILED (UUID: 8f067bdc-4768-48b3-8ea3-572d81313392) for task crate.6a75bc22-3c7c-11e5-a73d-56847afe9799 of framework 20150806-145134-3288596490-5050-1167-0000 to master@<IP_ADDRESS>:5050
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.090302  1117 status_update_manager.cpp:389] Received status update acknowledgement (UUID: 8f067bdc-4768-48b3-8ea3-572d81313392) for task crate.6a75bc22-3c7c-11e5-a73d-56847afe9799 of framework 20150806-145134-3288596490-5050-1167-0000
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.090368  1117 status_update_manager.hpp:346] Checkpointing ACK for status update TASK_FAILED (UUID: 8f067bdc-4768-48b3-8ea3-572d81313392) for task crate.6a75bc22-3c7c-11e5-a73d-56847afe9799 of framework 20150806-145134-3288596490-5050-1167-0000
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.092355  1117 slave.cpp:3332] Cleaning up executor 'crate.6a75bc22-3c7c-11e5-a73d-56847afe9799' of framework 20150806-145134-3288596490-5050-1167-0000
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.092706  1118 gc.cpp:56] Scheduling '/var/lib/mesos/slave/slaves/20150806-145134-3288596490-5050-1167-S5/frameworks/20150806-145134-3288596490-5050-1167-0000/executors/crate.6a75bc22-3c7c-11e5-a73d-56847afe9799/runs/c4537653-0c86-4784-953f-332c30ac0841' for gc 6.99999892749037days in the future
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.092787  1118 gc.cpp:56] Scheduling '/var/lib/mesos/slave/slaves/20150806-145134-3288596490-5050-1167-S5/frameworks/20150806-145134-3288596490-5050-1167-0000/executors/crate.6a75bc22-3c7c-11e5-a73d-56847afe9799' for gc 6.99999892689778days in the future
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.092986  1118 gc.cpp:56] Scheduling '/var/lib/mesos/slave/meta/slaves/20150806-145134-3288596490-5050-1167-S5/frameworks/20150806-145134-3288596490-5050-1167-0000/executors/crate.6a75bc22-3c7c-11e5-a73d-56847afe9799/runs/c4537653-0c86-4784-953f-332c30ac0841' for gc 6.99999892651556days in the future
Aug 06 20:59:14 ip-10-0-0-136.us-west-2.compute.internal mesos-slave[1111]: I0806 20:59:14.093029  1118 gc.cpp:56] Scheduling '/var/lib/mesos/slave/meta/slaves/20150806-145134-3288596490-5050-1167-S5/frameworks/20150806-145134-3288596490-5050-1167-0000/executors/crate.6a75bc22-3c7c-11e5-a73d-56847afe9799' for gc 6.99999892411852days in the future

ok... your configuration for the scheduler is for 128M.  That isn't enough.   just a couple of hits with curl and it OOM.
here are the system logs
Aug 06 21:14:12 ip-10-0-0-134.us-west-2.compute.internal kernel: Memory cgroup out of memory: Kill process 5406 (java) score 1278 or sacrifice child
Aug 06 21:14:12 ip-10-0-0-134.us-west-2.compute.internal kernel: Killed process 5406 (java) total-vm:6481860kB, anon-rss:156480kB, file-rss:58540kB
``

concerning data path:
Crate is storing its data to /path/to/executor/sandbox/.../crate-<version>/data if no data path is given. this means that this data is not persistent.

concerning naming of the task: yes it is intended that they are named the same for the exact reason you mentioned. crate has shared-nothing-architecture which means all nodes are basically the same and a client would be able to connect to each node equally.

@kensipe  btw. thanks for the contribution to the framework. once you've signed the CLA, I'll do a new snapshot release of the framework and update the package.json

CLA signed  and thanks for the details regarding data path.

The service isn't running any more... I'm not sure what happened.
after installation,  the following error message is in the scheduler's stderr.
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0807 15:02:08.295681  2681 main.cpp:99] Ignoring failure as health check still in grace period
Exception in thread "main" com.beust.jcommander.ParameterException: Was passed main parameter 'crate-mesos-0.1.0-SNAPSHOT-b74d1a0.tar.gz' but no main parameter was defined
at com.beust.jcommander.JCommander.getMainParameter(JCommander.java:903)
at com.beust.jcommander.JCommander.parseValues(JCommander.java:748)
at com.beust.jcommander.JCommander.parse(JCommander.java:279)
at com.beust.jcommander.JCommander.parse(JCommander.java:262)
at com.beust.jcommander.JCommander.(JCommander.java:207)
at io.crate.frameworks.mesos.Main.parseConfiguration(Main.java:90)
at io.crate.frameworks.mesos.Main.main(Main.java:120)

hm, can imagine it's a problem with not quoting the framework-role variable, which is *

This all looks good!    We are done with this PR.   There are 2 issues to resolve.

  This is a change by the executor, which will likely have a change to the marathon.json uri for the updated framework
The issue with sending POSTs through the service end point.  This is being looked at by the Mesosphere infra team.

I sent a PR for the shutdown hook

@kensipe merged your PRs (thanks a lot!) and made a new framework release which is now used in the the marathon.json

@chaudum LGTM  DONE!
I am marking your certification as passed!   We still need to fix this issue with the POST through the service endpoint.  It's confusing to me since we have other services we send POSTs through the admin router for... but I will assume that it is on our end at this point.

I wanna make a 0.1.0 release of the framework of the current state and squash these commits into a single one, if that's ok.

sure thing... I'll wait to hear from you then I'll merge.

@kensipe done!

@chaudum thank you sir!  merging now!


Link is opening twice in browser.

Please select the area your bug applies to. (Multiple selections are Possible. You can leave blank if you're not sure.)

[ ] Workspace.  VSCode workspace, vaults, Intellisense/autocomplete, Dendron settings
[ ] Lookup.  Dendron's Lookup Command
[X] Views.  Dendron Preview, Tree View, Side Panels in the UI
[ ] Schema.  Dendron Schemas
[ ] Pod.  Data import from / export to Dendron
[ ] Publish.  External Site Publish
[X] Markdown.  Markdown features, such as syntax support and features

Describe the bug
Bug is related for links which direct to external site (example http://example.com)
Clicking on the link in Markdown Preview mode opens 2 identical tabs in the browser.
To Reproduce
Steps to reproduce the behavior:

Open note with link.
Open preview (I use built-in markdown preview)
Click on link into preview mode
See 2 tabs in your browser

Expected behavior
Link should open one tab in browser.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information)

OS: Fedora release 33
Browser: Chrome (Version 96.0.4664.93 ), Firefox
Version: v0.71.0

Additional context
Add any other context about the problem here.
Dendron Log file
Please attach the output of > Dev:Dendron: Open Logs here
{"level":30,"time":1638886567182,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeActiveTextEditor","editor":"undefined"}
{"level":30,"time":1638886570247,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeActiveTextEditor","editor":"/home/tolik/dendron/My-Tech-Notes/bia.work_stuff.otils.md"}
{"level":30,"time":1638886570359,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"updateDecorations","msg":"Displaying 0 warnings and 1 decorations"}
{"level":30,"time":1638886570889,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeActiveTextEditor","editor":"undefined"}
{"level":30,"time":1638886575615,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"dendron.openLink:run","msg":"pre-execute"}
{"level":30,"time":1638886575616,"pid":2792,"hostname":"laptop","name":"dendron","ctx":{"key":"dendron.openLink","title":"Dendron: Open Link","group":"navigation","desc":"Open link to external file (eg. pdf, .mov, etc) use system default","docLink":"dendron.topic.links.md","docPreview":" "}}
{"level":50,"time":1638886575616,"pid":2792,"hostname":"laptop","name":"dendron","error":{"stack":"DendronError: no valid path or URL selected\n\tat Function.createFromStatus (/home/tolik/.vscode/extensions/dendron.dendron-0.71.0/dist/extension.js:2:102594)\n\tat Dt.execute (/home/tolik/.vscode/extensions/dendron.dendron-0.71.0/dist/extension.js:8:3247397)\n\tat Dt.run (/home/tolik/.vscode/extensions/dendron.dendron-0.71.0/dist/extension.js:8:3066561)\n\tat processTicksAndRejections (internal/process/task_queues.js:93:5)\n\tat async /home/tolik/.vscode/extensions/dendron.dendron-0.71.0/dist/extension.js:8:3342838\n\tat async o._executeContributedCommand (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:94:111743)","message":"no valid path or URL selected","name":"DendronError","status":"invalid_state","payload":"{}"}}
{"level":30,"time":1638886575685,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"dendron.openLink:run","msg":"post-execute"}
{"level":30,"time":1638886581296,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeTextEditorVisibleRanges","editor":"/home/tolik/dendron/My-Tech-Notes/bia.work_stuff.otils.md"}
{"level":30,"time":1638886581353,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeTextEditorVisibleRanges","editor":"/home/tolik/dendron/My-Tech-Notes/bia.work_stuff.otils.md"}
{"level":30,"time":1638886581414,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeTextEditorVisibleRanges","editor":"/home/tolik/dendron/My-Tech-Notes/bia.work_stuff.otils.md"}
{"level":30,"time":1638886581478,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeTextEditorVisibleRanges","editor":"/home/tolik/dendron/My-Tech-Notes/bia.work_stuff.otils.md"}
{"level":30,"time":1638886581599,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"updateDecorations","msg":"Displaying 0 warnings and 1 decorations"}
{"level":30,"time":1638888299049,"pid":2792,"hostname":"laptop","name":"SegmentClient","msg":"Attempting to flush residual segment data from file."}
{"level":30,"time":1638888299078,"pid":2792,"hostname":"laptop","name":"dendron","msg":"Segment Residual Cache flush attempted. {"successCount":0,"nonRetryableErrorCount":0,"retryableErrorCount":0}"}
{"level":30,"time":1638888654563,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"dendron.dev.openLogs:run","msg":"pre-execute"}
{"level":30,"time":1638888654564,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"execute","opts":{}}
{"level":30,"time":1638888654600,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"dendron.dev.openLogs:run","msg":"post-execute"}
{"level":30,"time":1638888654681,"pid":2792,"hostname":"laptop","name":"dendron","ctx":"WindowWatcher:onDidChangeVisibleTextEditors","editorPaths":["/home/tolik/dendron/My-Tech-Notes/bia.work_stuff.otils.md","/home/tolik/.config/Code/logs/20211207T164454/exthost1/dendron.dendron/dendron.log"]}

Thanks for the issue. Can reproduce. We'll start working on this in our upcoming sprint!

This should be fixed in v73 of Dendron. please post here if not, otherwise this issue will auto close in 4 days.

Thank you Nickolay. v73 works as expected.


Provide the bot with facts/axioms?

What would be a best practice method for feeding the bot information that it can consider 'true' and then later recall during conversation eg:
The sky is blue. Chocolate is delicious. You like Coffee.

What color is the sky?

Blue.

Do you enjoy coffee?

Yes

I'm absolutely loving my limited ChatterBot experience thus far :)

One way to do this could be to create your own training corpus. Check out the existing ones that come with ChatterBot for an example: https://github.com/gunthercox/ChatterBot/tree/master/chatterbot/corpus/data/english
You may also want to see the documentation on training from corpus data if you haven't yet: http://chatterbot.readthedocs.io/en/latest/training.html#training-with-corpus-data


fix(audiocontext): Don't close AudioContext supplied by library user

Fixes #121

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


test: add tests to improve code coverage for logging

Got the logger test working with all checks passed except for the Console API Tests / build (pull_request) (Won't work right for now)

closed in place of #249 due to @emeeker2002 on vacation.


Don't get cameras from editor viewports in PIE mode.

Fixes #640
With this change, Play-in-Editor mode no longer considers the (usually invisible) Editor viewport cameras for tile selection, which is almost certainly the right thing to do. However, if you Eject (or use Simulate-in-Editor mode), then tile selection is still not driven by the Editor viewport, even though now the default Editor viewport is controlling that rather than the player pawn. So, perhaps unexpectedly, tiles won't be selected or shown based on the viewport.
While this may be surprising, I think this is a feature not a bug. When Simulating in Editor, we're showing the world as it is in the game but with the camera ejected so we can view the game world from anywhere we choose. That phantom camera should only observe the world, not change it by influencing tile selection.

Thanks for the pull request @kring!

:heavy_check_mark: Signed CLA found.

Reviewers, don't forget to make sure that:

[ ] Cesium for Unreal Samples works.

Thanks @kring!


Fix: Out of memory while generating planning solutions

Description
Previously the solver first compute all the planning solutions before sorting them by score with the priority queue. This creates a huge memory overhead when the number of requested categories is large (>4). We have seen multiple occurrences of out of memory error in production.
Root Cause
The solver memorize all the solutions and then feed the list to ranker.
Solution
Generate planning solutions and feed new solutions to ranker at the same time.
Testing
Did you add any new test for this change, performed manual integration tests, or both? <-- Both
Final Checks

[x] Have you removed commented code ?
[x] Have you used gofmt to format your code ?
[x] You have added unit tests

Because the minimum score becomes 0 instead of 1 in the previous test
setting.
On Thu, Mar 3, 2022 at 11:23 AM Rui Wang @.***> wrote:

@.**** commented on this pull request.
In test/solution_candidate_selection_test.go
https://github.com/weihesdlegend/Vacation-Planner/pull/227#discussion_r818992723
:

clusters := make([][]matching.Place, 1)

clusters[0] = places
err := iterator.Init([]POI.PlaceCategory{POI.PlaceCategoryEatery}, clusters)
if err != nil {

t.Error(err)

return

}
topSolutionsCount := int64(5)
res := solution.FindBestPlanningSolutions(clusters, topSolutionsCount, iterator)

if int64(len(res)) != topSolutionsCount {

t.Errorf("expected number of solutions equals %d, got %d", topSolutionsCount, len(res))

return

}

expectation := []float64{94, 95, 96, 97, 98}

I am curious why the expected top 5 values become 94-98 in this updated
test, instead of 95-99.
—
Reply to this email directly, view it on GitHub
https://github.com/weihesdlegend/Vacation-Planner/pull/227#pullrequestreview-899415815,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGYERHYXKVJUXJS2HE7JJS3U6EGSVANCNFSM5PTEZMUQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Cheers,
Tim


Tap Area inconsistent based on color

Steps to Reproduce

Execute flutter run on Dartpad link
Tap on the red area, then Tap on the white area to the right of the first element
Gestures get detected only in the region where there's color even though its the exact same widget structure thus layout should have worked properly

Expected results:
Taps should have worked in either case
Actual results:
Taps only work when there's a color
Dartpad link

Logs

@Hari-07
Try adding behavior: HitTestBehavior.translucent, which should resolve the behavior. With this, it detects the tap when you tap on area other than red color and it recognizes it. I verified the same on the same dartpad link you shared above.
Closing as this should resolve the issue. If you disagree, write in comments and I'll reopen it.

The default behavious HitTestBehavior.deferToChild says the tap is recognised if one of its children is hit by the tap. Here the child of the GestureDetector is a Container. The Container's size should never be determined by its color , as such this still seems like a bug to me

From Container documentation (https://api.flutter.dev/flutter/widgets/Container-class.html):
"By default, containers return false for all hit tests. If the color property is specified, the hit testing is handled by ColoredBox, which always returns true. If the decoration or foregroundDecoration properties are specified, hit testing is handled by Decoration.hitTest."


Worldstate-only resync behavior

PR description
Implements a draft behavior to resync just the worldstate.
Fixed Issue(s)

Documentation

[ ] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[ ] I thought about the changelog and included a changelog update if required.

@shemnon as far as UX for a resync feature, 'touching' a file in the data dir is rather simple to implement and accessible.  A debug rpc endpoint may or may not be a good idea for this kind of functionality.  What do you think about file vs rpc, file and rpc, or some other command pattern to trigger this behavior?

I'm not a devops maven, I'd think we should get the UX feedback from someone who manages fleets of nodes.  Touching a file feels hacky to me but I've discovered lots of DevOps "best practices" feel hacky to me.

I'm not a devops maven, I'd think we should get the UX feedback from someone who manages fleets of nodes. Touching a file feels hacky to me but I've discovered lots of DevOps "best practices" feel hacky to me.

I'm no devops but I personally prefer an RPC call or a flag to a file that feels DIY.
I would just say that the RPC call must be admin because it seems too critical to me to simply be in debug


extension post-install/post-update processes occur in multiple windows

Upon update to VS Code 1.36, (Windows 10 18932) I caught the C/C++ extension performing a post install process in each window that was open, each window reporting different errors.
VS Code should only trigger the post install process in a single window.

After I closed all windows one at a time and then restarted VS Code so that only one window opened, the extensions post install process successfully completed.

This is specific to C++ extension. Please file issue against it.

I don't think this is specific.   What mechanism does VS Code implement to insure IT does not tell an extension to start its post install operations in multiple Windows?   There is no reason this should occur, ever, for any extension.


Add package upgrade list

PR Details
There are some cases where nugets contain "Stride." but do not follow the same release version. This adds a list that can be used to check if the package should be upgraded.
This is a replacement for https://github.com/stride3d/stride/pull/1881
below is a test I did excluding Stride.Physics and Stride.Navigation showing that no other packages are effected but the ones not in the array.

Description
Adds a static array of valid projects and adds a couple checks for initial upgrades and sequential upgrades.
Related Issue
https://github.com/stride3d/stride/issues/2053
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] I have built and run the editor to try this change out.

Once this gets reviewed I would like to do a demo video using the community toolkit with stride but this error is mildly annoying for me and Im sure if I advertise it many average users would deal with the same issue.

Maybe we should go with this solution "temporarily" (long term) till the Stride reservation is resolved and taken care of.

I think this list will still be useful for some edge cases but you are right that Stride reservation should be put in place. There were still some packages that had Stride but were not on the same version that I found in nuget.org.
https://www.nuget.org/packages/Stride.GraphX.WPF.Controls
https://www.nuget.org/packages/Stride.GNU.Gettext
https://www.nuget.org/packages/Stride.OpenTK
https://www.nuget.org/packages/Stride.Metrics
and a few more but these are some of the examples that may cause issues for adventerous nuget users.

Xen2 sent a request for reserving the prefix over on nuget so I think it's safe to change from a whitelist to a blacklist instead; list only the specific repo under the prefix that should not be updated instead of listing those that should be. So that would be Stride.Community.*, Stride.Awesome.Shaders and the other you listed above

Xen2 sent a request for reserving the prefix over on nuget so I think it's safe to change from a whitelist to a blacklist instead; list only the specific repo under the prefix that should not be updated instead of listing those that should be. So that would be Stride.Community.*, Stride.Awesome.Shaders and the other you listed above

I changed over to an exclusion list like you said.
here is the quick test I did with the changes
exclusion list

result

@Eideren I addded a for loop to check the starts with validation as well. I couldn't quickly think of a better way than using ElementAt() since its a hashset and not a list I cant just index normally so I feel like this defeats the purpose of a hashset but I could be wrong.

Sorry about the delay. Yep, just swap to an array, do an ordinal string equality and we're done :)

Not a problem at all, I think Im done with this PR now.

Thanks !


Added Sites to  engine.py

thanks for contributing to our lowkey repo lol. we really appreciate all contributions. for now we are focusing on software engineer positions only so the compliance comprehensive query might not be needed but might be able to keep the rest of the changes.
also, for each newly added job board, helper functions are needed to extract information (see get_lever_job_details as an example).


Arnej/actually wait for connectivity

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
@havardpe please review

@havardpe please take another look


[TACHYON-1541] Explicitly specify the ClassLoader when using ServiceL…

…oader

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

+1 LGTM


Add, remove and list License keys

Add support in VMware salt extension to add, remove and list license keys for vCenter, ESXi Hosts, datacenters and clusters.
Satisfies https://jira.eng.vmware.com/browse/VRAE-3249
Note this duplicates similar functionality provided by Ansible (v2.9), however during development it was noted that Ansible functional support does not allow for all possible error handling.  This version of code contains better error  handling on addition and removal of licenses.
Tests have been written, but unable to provide crippled licenses which could be used in a public code base, hence using fake licenses as part of testing.  However, hand unit-testing with valid license keys has been performed before submitting the PR without issue.

do not merge yet, with revision changes just found issue

Fixed issue introduced with review changes


ci(cd): update actions to use node 17

:tada: This PR is included in version 1.0.0-alpha.62 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[all] Improve debugging experience

Improve debugging experience

Adjust the indexes of threads created with DaemonThreadFactory to use
zero-based indexing. This change simplifies mapping of threads with
drainer queues and consumers by eliminating the need for additional mental
calculations.
Override the ImmutablePubSubMessage::toString method to include additional
information such as topic-partition and offset in the message output.

How was this PR tested?

Does this PR introduce any user-facing changes?

[x] No. You can skip the rest of this section.
[ ] Yes. Make sure to explain your proposed changes and call out the behavior change.

The thread id starting with 0 do helps a lot on checking log and heapdump.

Yeah fully agree.

Thanks @sixpluszero and @haoxu07 for the review!


KAFKA-10129 Fail QA if there are javadoc warnings

from @hachikuji  (https://github.com/apache/kafka/pull/8660#pullrequestreview-425856179)

One other question I had is whether we should consider making doc failures also fail the build?

issue: https://issues.apache.org/jira/browse/KAFKA-10129
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

the javadoc warnings are traced by #8660

@ijuma @hachikuji Could you take a look?


Single box installation: failed to install drivers

Steps to reproduce:

Install a single box using generated template config
After the PAI startup, the node was not labeled with 'machinetype: gpu'.
So I manually label it: `kubectl label node <IP_ADDRESS> machinetype=gpu
When install the driver, I got the error messages below:

======== If NVIDIA present exit early =========
+ KERNEL_FULL_VERSION=4.4.0-128-generic
+ CURRENT_DRIVER=/var/drivers/nvidia/current
+ echo ======== If NVIDIA present exit early =========
+ nvidiaPresent
+ [[ -f /proc/driver/nvidia/version ]]
+ grep -q 384.111 /proc/driver/nvidia/version
+ lsmod
+ grep -qE '^nvidia'
+ lsmod
+ grep -qE '^nvidia_uvm'
+ return 3
+ echo ======== If NVIDIA driver already running uninstall it =========
+ lsmod
======== If NVIDIA driver already running uninstall it =========
+ grep -qE '^nvidia'
++ lsmod
++ tr -s ' '
++ grep -E '^nvidia'

@ydye advised to stop the 'Node Manager' and 'prometheus' temporarily, bring them back after driver is ready.
It works.

This is the service dependency we should capture in the deployment process


Migrate MeshConfig Getters out of the configurator

Move the MeshConfig getters onto the meshconfig itself, and out of the configurator class. This is part of #4929, and will make it simpler to move the remaining methods into the k8s controller.
It makes the interface significantly smaller

Codecov Report

Merging #4953 (22772f7) into main (7abf10d) will increase coverage by 0.57%.
The diff coverage is 84.50%.

@@            Coverage Diff             @@
##             main    #4953      +/-   ##
==========================================
+ Coverage   68.72%   69.30%   +0.57%
==========================================
  Files         220      220
  Lines       15924    15712     -212
==========================================
- Hits        10944    10889      -55
+ Misses       4928     4771     -157
  Partials       52       52

Flag
Coverage Δ

unittests
69.30% <84.50%> (+0.57%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cmd/osm-controller/osm-controller.go
16.52% <0.00%> (ø)

pkg/configurator/mock_client_generated.go
0.00% <ø> (ø)

pkg/debugger/debugger_config_listener.go
0.00% <0.00%> (ø)

pkg/debugger/feature_flags.go
25.00% <0.00%> (ø)

pkg/debugger/policy.go
55.55% <0.00%> (ø)

pkg/envoy/ads/cache_stream.go
22.80% <0.00%> (ø)

pkg/envoy/ads/stream.go
10.37% <0.00%> (ø)

pkg/errcode/errcode.go
100.00% <ø> (ø)

pkg/configurator/client.go
92.18% <71.42%> (-3.76%)
:arrow_down:

pkg/k8s/events/types.go
72.34% <72.34%> (ø)

... and 42 more

Help us with your feedback. Take ten seconds to tell us how you rate us.

I believe we discussed the idea of moving the Configurator implementation into the autogenerated API code part in the past, and I was against this for several reasons:

It results in extra maintenance, as every time a new API version is added/updated/removed, we have to manually copy over these non-autogenerated code over. I think it's best to keep the autogenerated code separate and keep custom wrapper implementations used by the controller within the controller code, and not pkg/apis.
This couples controller defaults and fallback behavior (on nil, empty strings, etc.) into the API code. I would argue this is confusing from an API perspective, as such defaults should be correctly encoded in the API. For e.g., when the init container image is unset, it returns OSM_DEFAULT_INIT_CONTAINER_IMAGE. This behavior is not intuitive from an API perspective. Such instances are better handled within the controller code.
I don't believe we need to expose multiple sub-fields via methods on a large type such as MeshConfig. Clients can directly reference the fields regardless of the nesting level. We should aim to reduce the number of accessors exposed. For e.g., the k8s corev1.Pod doesn't have unnecessary wrappers that client implementations may require. I would suggest following the k8s API style for the Go types as much as possible.

Can we first make a pass on reducing the number of getters on the Configurator type, and then see if having specific accessors makes sense?

done, moved remaining accessors to the utils package

Could you drop the event related changes in this PR as I believe that is unrelated to the MeshConfig changes.

rebased and ready to go!


Add fps limit game configuration.

Introduced FPS limit as discussed in #111. This is my first ever non-experimental Haskell contribution, so some things may be non-traditional for regular Haskell developers, so reviews and improvement suggestions are appreciated.

Thanks! Looks good to me, however I think the defaultFPSLimit function looks inconsistent with the SDL.defaultConfig. Perhaps GameConfig should be renamed to something else and GameConfig should be config stuff like fpsLimit and updateLimit. But that's a problem for another day.

Wow, this was fast :) I wish I got more feedback to learn Haskell even more.


RethinkDB database appliance

RethinkDB is another popular NoSQL database.

Where the company behind it just went bankrupt. :/ https://news.ycombinator.com/item?id=12641936

@philiplb it will continue to exist as an open source project though.

Company had to close but Compose.io is not giving up on RethinkDB.
BlockChainDB going to support RethinkDB too.
https://docs.google.com/document/d/1Fy-drBGDTyibwEBBAX6G5otqtWiKOD2sBXmL2uVTFtE/edit

Now that RethinkDB has official stewardship after the founding company died, I'd love to revisit this becoming an option for Flynn.

I would like a RethinkDB integration, too. 👍

Flynn is unmaintained and our infrastructure will shut down on June 1, 2021. See the README for details.


Select

is it possible to add the select widget without a serious impact to compliance?

I'm not sure what the select widget is? Do you have a link?


In Firefox filenames with spaces are truncated upon download

Is this a bug report?
yes

Environment

java -version:
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

node -v (If you use Node.js proxy for Saiku):

npm -v (If you use Node.js proxy for Saiku):

yarn --version (If you use Node.js proxy for Saiku and if you use Yarn):

Then, specify:

Operating system:
server:
Linux biserver 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Browser and version (if relevant):
Firefox Quantum
58.0.2 (64 bit) (affect all Firefox version)
Saiku plugin to Pentaho or Saiku Standalone:
Saiku plugin p7.1-3.17-SNAPSHOT
Saiku CE or Saiku EE:
Saiku CE
Saiku version:
3.17-SNAPSHOT (affects all)

Steps to Reproduce

(Write your steps here:)

In Firefox open a saved saiku query with space in path or query name

Click in one of the Export button (xls, csv or pdf)

Expected Behavior

The file name should contain the entire query name

Actual Behavior

The file name are truncated on first space

Note
Is a known behaviour, see:
http://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download
The fix: put extra quotes around the filename
https://bugzilla.mozilla.org/show_bug.cgi?id=221028#c61
like
header("Content-Disposition: attachment; filename="".basename($file).""");

Merged #636
Thanks @enricomariam42 :+1:


Date as a string

Having issues when using the jinja template:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/waitress/channel.py", line 428, in service
    task.service()
  File "/usr/local/lib/python3.10/site-packages/waitress/task.py", line 168, in service
    self.execute()
  File "/usr/local/lib/python3.10/site-packages/waitress/task.py", line 456, in execute
    for chunk in app_iter:
  File "/usr/local/lib/python3.10/site-packages/werkzeug/wsgi.py", line 256, in __next__
    return self._next()
  File "/usr/local/lib/python3.10/site-packages/werkzeug/wrappers/response.py", line 32, in _iter_encoded
    for item in iterable:
  File "/usr/local/lib/python3.10/site-packages/flask/helpers.py", line 115, in generator
    yield from gen
  File "/emp_stash_fill/emp_stash_fill.py", line 734, in generate
    title = render_template_string(TITLE_TEMPLATE, **{
  File "/usr/local/lib/python3.10/site-packages/flask/templating.py", line 164, in render_template_string
    return _render(app, template, context)
  File "/usr/local/lib/python3.10/site-packages/flask/templating.py", line 133, in _render
    rv = template.render(context)
  File "/usr/local/lib/python3.10/site-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.10/site-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/local/lib/python3.10/site-packages/jinja2/utils.py", line 83, in from_obj
    if hasattr(obj, "jinja_pass_arg"):
jinja2.exceptions.UndefinedError: 'str object' has no attribute 'strftime'

Looks like the current data is being pulled only as a string in the .py code?

Yes everything going to the template is a string. But the date_format config option should let you use whatever date format you need.


Cyclic dependencies in existing modules

Problem
When I moved the REST service implementation to the testbench directory I created a cyclic dependency.  Basically testbench needs testbench/rest_server.py (for the run()) function, which needs gcs/bucket.py, which needs testbench (for all the helper functions).
Proposal
I think we need to redefine the layers for the testbench, they were already kind of fuzzy, and my breakage makes it worse.  I think we should organize the code in the following layers.

Name
Description
Depends on

testbench
The top-level layer, exposes the run() function for gunicorn and main
testbench.servers

testbench.servers
The implementation of the REST and gRPC APIs. Flask routes and gRPC servicers.
testbench.database, testbench.utility, google.storage.v2

testbench.database
The database of resources (Bucket, Object, *AcccessControl, etc.)
testbench.utility

testbench.utility
Helper functions
google.storage.v2

google.storage.v2
Proto generated files

Where do things move?
The grpc_server.py and rest_server.py files move to testbench.servers.  We will not split rest_server.py as part of this work.
The current gcs module would move to testbench.database.
For the most part, other testbench/*.py files move to testbench.utility.
Breakdown
Some of these are tentative, but the general idea would be to break this down into steps.

[ ] Move testbench/error.py to testbench/utility/error.py
[ ] Split testbench/common.py snake case functions to testbench/utility/*
[ ] Move testbench/acl.py to testbench/utility/
[ ] Split testbench/project.py, move the server-like things to testbench/servers/ and the rest to testbench/utility/.
[ ] Move testbench/csek.py to testbench/utility/
[ ] Move testbench/generation.py to testbench/utility/
[ ] Move testbench/handle_gzip.py to testbench/servers/
[ ] Move gcs/*.py to testbench/database/*.py
[ ] Move testbench/database.py to testbench/database/
[ ] Move testbench/grpc_server.py to testbench/servers/
[ ] Move testbench/rest_server.py to testbench/servers/

Sweet, this feels much cleaner, thanks for proposing this and giving the clear breakdown.
I'll look a bit deeper and see if there's any other feedback I can add, or possible suggestions, but this definitely feels good to me as you've outlined it.

Thanks. Realistically I won't be able to work on this for several weeks. If anybody wants to improve things, please go ahead.


Autoplay stops working when you change the browser window breakpoint

Swiper version: 4.3.3
Browser: Google Chrome 67 (64 bit)
OS version: Windows 10
Link: Test here

You need to set autoplay.disableOnInteraction: false parameter to keep it sliding


No documentation present to explain how to get endpoint-id which is required for chip-tool

Problem
Host program has been built for linux which is successful as below:
source scripts/activate.sh
gn gen out/host
ninja -C out/host

once built when i run chip-tool command as below, it expects endpoint-id. Insufficient documentation present to explain how to obtain endpoint-id
root1@root1-Nitro-AN515-55:~/CHIP/connectedhomeip/out/host$ ./chip-tool applicationbasic discover
CHIP:ZCL: Using ZAP configuration...
CHIP:ZCL: deactivate report event
CHIP:TOO: InitArgs: Wrong arguments number: 0 instead of 1
Usage:
  ./chip-tool applicationbasic discover endpoint-id

Proposed Solution
Need to add a page under docs/ explaining the usage of chip-tool command and sub-command

I made the same discovery. For what I can understand is that chip-tool is already deprecated (https://github.com/project-chip/connectedhomeip/issues/4334). I think we have to use Chip Controller. But if anyone knows more about that, please correct me 👍


tweaked tests for easier maintenance

There are no changes to the SDK code itself in this, just some tweaking to make it easier for the next maintainer.

Hi @fearthecowboy, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (garretts). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;


Add dark mode using flatlaf

What this commit is about
I integrated a dark mode into Ghidra using flatlaf.
The idea is to introduce a new Look and Feel option for dark mode (flatlaf), and a different set of default color values for dark mode, so:

user changes/preferences (color settings in Edit → Tool Options) still take effect in both modes
the restore buttons in Tool Options work in both modes (when in dark mode → restore to default restores the colors to dark-mode defaults, not light-mode defaults, and vice versa)
all existing Look and Feel themes continue to work as usual

This commit is coded with these principles in mind:

default color values are computed only once (at startup), so it has minimum performance impact
whenever possible, let flatlaf pick the color values for the dark mode

e.g., JPanel knows which color to use for its background when in dark mode, so I'll try to let JPanel pick its colors in dark mode
in light mode, everything works as usual

if we're unable to let flatlaf pick the color values, a ColorContext interface is introduced to manage all the default color values by computing them once when Ghidra starts up

Most of the colors are borrowed from the ghidra-dark repo (many thanks, Zack!), which I've been using for quite some time.
Why?
There are several great repos that bring dark mode into Ghidra, and I find myself using ghidra-dark the most.
The way it works: it uses a python script to

install the flatlaf jar into Ghidra
modify the Ghidra launch scripts so flatlaf theme is activated when Ghidra launches
configure the color settings in Ghidra

However, some color values in Ghidra aren't configurable, such as the background of graphs and GTable.
This commit aims to fix all that by integrating the spirit of ghidra-dark into Ghidra, and introduce a different set of default color values for those that aren't configurable.
How it looks like
Some of the most commonly used windows look like this:

The file chooser:

The banner:

How to use it
Step 1:

Step 2:

Step 3: restart Ghidra
That's it!
As you might have noticed, there are 2 new Swing Look And Feel themes:

Flat Light: if your macOS uses dark mode, but you want to use Ghidra in light mode, you might want to choose this one (in the Mac OS X theme, the colors in your menu bar and context menu might not look right, if you're using dark mode system-wise)
Flat Dark (the dark mode) → choose this one to activate dark mode

Known issues

Ghidra/Features/Decompiler/src/main/help/help/topics/DecompilePlugin/DecompilerConcepts.html has a hardcoded bgcolor="white" → I guess the html files might be auto-generated (so this might not be the right place to patch), but I didn't look into it
Alternating background colors in GTables are gone (in dark mode)
Python interpreter auto-completion: too many colors to customize (auto-complete)
Hovering over listing display

I have little sense in colors, so I tend not to solve the above problems because they involve a little more sense in colors.
Feedback is welcome
I might not be very responsive, but I'll try my best to answer questions.
There might be better ways to do this, and I'd appreciate any suggestions/insights.
I hope you find this useful. =)

#13

I hope you find this useful. =)

Useful indeed.   There is some stirring taking place...

Finally found fully dark theme, just Built the Ghidra assembly with this theme, seems everything is fine and working well. If no bugs found while using I will keep this theme for sure. Thanks for your job.

Small thing, noticed that Tip of the day window still had a white box in it. Hard coded to white, link below to line.
https://github.com/NationalSecurityAgency/ghidra/blob/master/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/totd/TipOfTheDayDialog.java#L99

This is a really nitpick thing I noticed while using darkmode and running into UndefinedFunctions.
UndefinedFunction is greyed out in base Ghidra.

In dark mode it also greyed out, but,is  less readable due to the changes in the coloring fonts.  It is especially glaring since everything else in dark mode looks so good.

How do you install this? It's not clear to me. Are we just supposed to use ghidra-dark and rely on the commit to fix any issues, or does Ghidra need to be recompiled with Flatlaf?
ghidra-dark installs, but it breaks things for me on the latest 10.1.5 (Void Linux). I had to remove it, purge ~/.ghidra, and reinstall. I don't see the two new 'Flat' theme options either, before or after installing Flatlaf/ghidra-dark. I must be doing something wrong.

@jjc224 What I did was clone @Happyholic1203's repo and re-build Ghidra from source. The zip file created after building has the dark mode.

Had this error when trying to do a patch instruction Ctrl+Shift+G, reverting to default theme does not have this issue.

Log (Click to View)
Cannot invoke "java.awt.geom.AffineTransform.getScaleY()" because "t" is null
java.lang.NullPointerException: Cannot invoke "java.awt.geom.AffineTransform.getScaleY()" because "t" is null
	at com.formdev.flatlaf.util.HiDPIUtils.computeTextYCorrection(HiDPIUtils.java:127)
	at com.formdev.flatlaf.util.HiDPIUtils.createGraphicsTextYCorrection(HiDPIUtils.java:191)
	at com.formdev.flatlaf.ui.FlatLabelUI.createGraphicsHTMLTextYCorrection(FlatLabelUI.java:242)
	at com.formdev.flatlaf.ui.FlatLabelUI.paint(FlatLabelUI.java:248)
	at java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
	at java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:842)
	at ghidra.util.HTMLUtilities$1.paint(HTMLUtilities.java:768)
	at ghidra.util.HTMLUtilities.fromHTML(HTMLUtilities.java:788)
	at docking.DockingErrorDisplay.doDisplayMessage(DockingErrorDisplay.java:123)
	at docking.DockingErrorDisplay.lambda$displayMessage$0(DockingErrorDisplay.java:102)
	at ghidra.util.Swing.runIfSwingOrRunLater(Swing.java:124)
	at docking.DockingErrorDisplay.displayMessage(DockingErrorDisplay.java:102)
	at docking.DockingErrorDisplay.displayWarningMessage(DockingErrorDisplay.java:62)
	at ghidra.util.Msg.showWarn(Msg.java:223)
	at ghidra.app.plugin.core.assembler.PatchInstructionAction.warnLanguage(PatchInstructionAction.java:201)
	at ghidra.app.plugin.core.assembler.PatchInstructionAction.prepare(PatchInstructionAction.java:220)
	at ghidra.app.plugin.core.assembler.AbstractPatchAction.actionPerformed(AbstractPatchAction.java:379)
	at docking.ExecutableAction.execute(ExecutableAction.java:40)
	at docking.action.MultipleKeyAction.actionPerformed(MultipleKeyAction.java:142)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1810)
	at docking.KeyBindingOverrideKeyEventDispatcher.actionInProgress(KeyBindingOverrideKeyEventDispatcher.java:219)
	at docking.KeyBindingOverrideKeyEventDispatcher.dispatchKeyEvent(KeyBindingOverrideKeyEventDispatcher.java:117)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1144)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1020)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:848)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4882)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

---------------------------------------------------
Build Date: 2022-Sep-24 1910 UTC
Ghidra Version: 10.1.5
Java Home: D:\jdk-<IP_ADDRESS>
JVM Version: Eclipse Adoptium <IP_ADDRESS>
OS: Windows 10 10.0 amd64

This needs to be rebased to resolve the conflicts wtih the current code.

Thank you for your effort in this PR.  We have  taken the initial work and used that as inspiration for our new Theming feature.
Commit: e657a701416877f7a77b635662d30cfc25f1b5f0

The tooltip is still off though:

Also, Edit → Theme and pressing Esc raises:
Cannot invoke "docking.ActionContext.getComponentProvider()" because "localContext" is null
java.lang.NullPointerException: Cannot invoke "docking.ActionContext.getComponentProvider()" because "localContext" is null
	at docking.action.MultipleKeyAction$ActionData.isMyProvider(MultipleKeyAction.java:355)
	at docking.action.MultipleKeyAction.getValidContextActions(MultipleKeyAction.java:168)
	at docking.action.MultipleKeyAction.getDialogActions(MultipleKeyAction.java:297)
	at docking.action.MultipleKeyAction.getActionsForCurrentOrDefaultContext(MultipleKeyAction.java:278)
	at docking.action.MultipleKeyAction.geValidKeyBindingPrecedence(MultipleKeyAction.java:259)
	at docking.KeyBindingOverrideKeyEventDispatcher.getValidKeyBindingPrecedence(KeyBindingOverrideKeyEventDispatcher.java:171)
	at docking.KeyBindingOverrideKeyEventDispatcher.dispatchKeyEvent(KeyBindingOverrideKeyEventDispatcher.java:145)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1141)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1020)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:848)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4876)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

---------------------------------------------------
Build Date: 2022-Nov-18 1200 CET
Ghidra Version: 10.3
Java Home: /usr/lib/jvm/java-19-openjdk
JVM Version: N/A 19.0.1
OS: Linux 6.0.8-arch1-1 amd64

I believe the exception had been fixed.    I will add the tooltip to the list of items that still need updating.


PowerDNS Admin randomly not accessible because of gunicorn timeouts.

The PowerDNS Admin web interface keeps becoming not accessible, randomly, because of gunicorn timeouts such as the below.
[2019-03-20 10:36:38 +0000] [56] [CRITICAL] WORKER TIMEOUT (pid:86)
[2019-03-20 10:36:38 +0000] [86] [INFO] Worker exiting (pid: 86)
[2019-03-20 10:36:38 +0000] [107] [INFO] Booting worker with pid: 107
[2019-03-20 10:44:12 +0000] [56] [CRITICAL] WORKER TIMEOUT (pid:101)
[2019-03-20 10:44:13 +0000] [110] [INFO] Booting worker with pid: 110
[2019-03-20 10:45:55 +0000] [56] [CRITICAL] WORKER TIMEOUT (pid:98)
[2019-03-20 10:45:56 +0000] [113] [INFO] Booting worker with pid: 113
[2019-03-20 14:04:44 +0000] [56] [CRITICAL] WORKER TIMEOUT (pid:107)
[2019-03-20 14:04:45 +0000] [116] [INFO] Booting worker with pid: 116
[2019-03-20 14:06:20 +0000] [56] [CRITICAL] WORKER TIMEOUT (pid:104)
[2019-03-20 14:06:21 +0000] [119] [INFO] Booting worker with pid: 119

you need to provide more information, debug logs, configuration  etc...


Notification when download is finished

Not sure if this function is related to this project, but is it possible to add a notification feature when a task finished downloading?
I found parameters like --on-bt-download-complete, --on-download-complete, --on-download-error, --on-download-pause, --on-download-start, --on-download-stop which should allow aria2 to trigger some script as notification, but I'm not sure how to achieve it... Am I in the right direction?

More of an aria2 question , but yeah, those parameters accept a command string, for example:
--on-download-complete=
Set the command to be executed after download completed. See See Event Hook for more details about COMMAND. See also --on-download-stop option. Possible Values: /path/to/command

So if you just wanted to receive an email when a download completes, you could set --on-download-complete="mail -s "Download Complete"<EMAIL_ADDRESS>| echo "Download Complete at:\n\t$3"
Replace<EMAIL_ADDRESS>with your email, $3 in the message body is the argument that contains the filename of the completed download.
Full manual is at: https://aria2.github.io/manual/en/html/aria2c.html

@pingshunhuangalex
Hi, i had similar issue in the past. You can send notifications to your phone but they cost you. Somehow, I found a free app on playstore and automated it using python.
You can find the app here https://play.google.com/store/apps/details?id=com.soy.remotealert (all credits to its author) and code to run it here https://github.com/Ritiek/Remotealert.
You can customize the script according to you and add it to --on-download-complete=
Notifications take a few seconds before reaching your phone but better still than nothing.
Hopefully aria2 developers would develop a much better alternate to this..


Implement docker mirror behaviour

Not sure if it is already implemented. It would be nice if the webhook could check if the harbor project is reachable and is working before rewriting container images so it can bypass Harbor in case of a downtime. That's the default behaviour of the Docker mirror funcionality.

I merged your initial implementation in #8 and added some additional settings around the timeout for the http client. If you want to test my changes before I release, that would be helpful.

I merged your initial implementation in #8 and added some additional settings around the timeout for the http client. If you want to test my changes before I release, that would be helpful.

Nice!
I have not tested yet but I think VerifyHarborAPI option in config is not beeing used in code.

Nice!
I have not tested yet but I think VerifyHarborAPI option in config is not beeing used in code.

Oops, I wired it up and added it to the config examples.

Oops, I wired it up and added it to the config examples.

I've done some basic tests and found one problem. We are returning an error in verifyHarborIsRunning function when http.client returns error or Harbor API server returns a status code other than 200. That leads to error 500 in the webhook and no pods can be created/updated. What we want is to bypass Harbor is these situations.
So I think we should remove the error in verifyHarborIsRunning.
diff --git a/internal/static/transfomer.go b/internal/static/transfomer.go
index 318ee9c..40c87b0 100644
--- a/internal/static/transfomer.go
+++ b/internal/static/transfomer.go
@@ -2,7 +2,6 @@ package static

 import (
        "crypto/tls"
-       "errors"
        "net/http"

        "github.com/hashicorp/go-cleanhttp"
@@ -14,25 +13,25 @@ import (
 type staticTransformer struct {
        proxyMap       map[string]string
        harborEndpoint string
-       HarborVerifier func(string) (bool, error)
+       HarborVerifier func(string) (bool)
 }

 type harborCheck struct {
        client *http.Client
 }

-func (h *harborCheck) verifyHarborIsRunning(endpoint string) (bool, error) {
+func (h *harborCheck) verifyHarborIsRunning(endpoint string) (bool) {
        res, err := h.client.Get(endpoint + "/api/version")
        if res != nil && res.Body != nil {
                defer res.Body.Close()
        }
        if err != nil {
-               return false, err
+               return false
        }
        if res.StatusCode != 200 {
-               return false, errors.New("harbor API server did not return 200 status code")
+               return false
        }
-       return true, nil
+       return true
 }

 func (s *staticTransformer) RewriteImage(imageRef string) (string, error) {
@@ -41,7 +40,7 @@ func (s *staticTransformer) RewriteImage(imageRef string) (string, error) {
                return "", err
        }

-       running, err := s.HarborVerifier(s.harborEndpoint)
+       running := s.HarborVerifier(s.harborEndpoint)
        if running {
                if rewrite, ok := s.proxyMap[registry]; ok {
                        return webhook.ReplaceRegistryInImageRef(imageRef, rewrite)
@@ -69,8 +68,8 @@ func NewTransformer(conf config.StaticProxy) webhook.ContainerTransformer {
        harborCheck := &harborCheck{client: client}
        harborVerifier := harborCheck.verifyHarborIsRunning
        if !conf.VerifyHarborAPI {
-               harborVerifier = func(string) (bool, error) {
-                       return true, nil
+               harborVerifier = func(string) (bool) {
+                       return true
                }
        }

diff --git a/internal/static/transfomer_test.go b/internal/static/transfomer_test.go
index ac0ccdc..14995c0 100644
--- a/internal/static/transfomer_test.go
+++ b/internal/static/transfomer_test.go
@@ -13,15 +13,15 @@ func TestStaticTransformer_Ready(t *testing.T) {
        require.Nil(t, transformer.Ready())
 }

-func MockHarborVerifierTrue() func(string) (bool, error) {
-       return func(string) (bool, error) {
-               return true, nil
+func MockHarborVerifierTrue() func(string) (bool) {
+       return func(string) (bool) {
+               return true
        }
 }

-func MockHarborVerifierFalse() func(string) (bool, error) {
-       return func(string) (bool, error) {
-               return false, nil
+func MockHarborVerifierFalse() func(string) (bool) {
+       return func(string) (bool) {
+               return false
        }
 }

I've done some basic tests and found one problem. We are returning an error in verifyHarborIsRunning function when http.client returns error or Harbor API server returns a status code other than 200. That leads to error 500 in the webhook and no pods can be created/updated. What we want is to bypass Harbor is these situations.
So I think we should remove the error in verifyHarborIsRunning.
diff --git a/internal/static/transfomer.go b/internal/static/transfomer.go
index 318ee9c..40c87b0 100644
--- a/internal/static/transfomer.go
+++ b/internal/static/transfomer.go
@@ -2,7 +2,6 @@ package static

 import (
        "crypto/tls"
-       "errors"
        "net/http"

        "github.com/hashicorp/go-cleanhttp"
@@ -14,25 +13,25 @@ import (
 type staticTransformer struct {
        proxyMap       map[string]string
        harborEndpoint string
-       HarborVerifier func(string) (bool, error)
+       HarborVerifier func(string) (bool)
 }

 type harborCheck struct {
        client *http.Client
 }

-func (h *harborCheck) verifyHarborIsRunning(endpoint string) (bool, error) {
+func (h *harborCheck) verifyHarborIsRunning(endpoint string) (bool) {
        res, err := h.client.Get(endpoint + "/api/version")
        if res != nil && res.Body != nil {
                defer res.Body.Close()
        }
        if err != nil {
-               return false, err
+               return false
        }
        if res.StatusCode != 200 {
-               return false, errors.New("harbor API server did not return 200 status code")
+               return false
        }
-       return true, nil
+       return true
 }

 func (s *staticTransformer) RewriteImage(imageRef string) (string, error) {
@@ -41,7 +40,7 @@ func (s *staticTransformer) RewriteImage(imageRef string) (string, error) {
                return "", err
        }

-       running, err := s.HarborVerifier(s.harborEndpoint)
+       running := s.HarborVerifier(s.harborEndpoint)
        if running {
                if rewrite, ok := s.proxyMap[registry]; ok {
                        return webhook.ReplaceRegistryInImageRef(imageRef, rewrite)
@@ -69,8 +68,8 @@ func NewTransformer(conf config.StaticProxy) webhook.ContainerTransformer {
        harborCheck := &harborCheck{client: client}
        harborVerifier := harborCheck.verifyHarborIsRunning
        if !conf.VerifyHarborAPI {
-               harborVerifier = func(string) (bool, error) {
-                       return true, nil
+               harborVerifier = func(string) (bool) {
+                       return true
                }
        }

diff --git a/internal/static/transfomer_test.go b/internal/static/transfomer_test.go
index ac0ccdc..14995c0 100644
--- a/internal/static/transfomer_test.go
+++ b/internal/static/transfomer_test.go
@@ -13,15 +13,15 @@ func TestStaticTransformer_Ready(t *testing.T) {
        require.Nil(t, transformer.Ready())
 }

-func MockHarborVerifierTrue() func(string) (bool, error) {
-       return func(string) (bool, error) {
-               return true, nil
+func MockHarborVerifierTrue() func(string) (bool) {
+       return func(string) (bool) {
+               return true
        }
 }

-func MockHarborVerifierFalse() func(string) (bool, error) {
-       return func(string) (bool, error) {
-               return false, nil
+func MockHarborVerifierFalse() func(string) (bool) {
+       return func(string) (bool) {
+               return false
        }
 }

Good point on the error handling. I agree that we should handle the 500/400 http code cases better.
My initial thought is to leave the error handling in the harbor check in place, and use the error for printing a warning to the logs (for debugging) and but swallow the error in RewriteImage transformer. I'll push a commit that does that and we can see.

Good point on the error handling. I agree that we should handle the 500/400 http code cases better.
My initial thought is to leave the error handling in the harbor check in place, and use the error for printing a warning to the logs (for debugging) and but swallow the error in RewriteImage transformer. I'll push a commit that does that and we can see.

I've repeated the basics tests and it is working now. Thanks! I'll be waiting for the next release.
Although I'm only using static mode it would be good to have the same behaviour on dynamic mode. I haven't included it in my PR because I couldn't get it working in my env and didn't have time to debug further.

I've repeated the basics tests and it is working now. Thanks! I'll be waiting for the next release.
Although I'm only using static mode it would be good to have the same behaviour on dynamic mode. I haven't included it in my PR because I couldn't get it working in my env and didn't have time to debug further.

This looks very useful. Could you cut a release and a new docker image?

This looks very useful. Could you please cut a release and a new docker image?

@sergiocharpineljr you might be interested in the work I am doing in https://github.com/indeedeng-alpha/harbor-container-webhook/tree/cnmcavoy/rules-rewrite
I decided after evaluating the webhook for the last year, that the dynamic mode was not really what we wanted. The static mode has proven very useful, but its limited in some ways (we started wanting to be able to use regular expressions) and it made more sense to rewrite the core logic for that.
The new regex rules based engine has support for checking if the image exists when the container ref is being rewritten (which seems like the intent of this issue, unless I'm mistaken) and otherwise is fairly similar to the previous static mode.
I'll probably tag and publish the new engine after evaluating it a bit further in a week or two.

I've released the new version as v0.3.0. The checkUpstream toggle should do what you are requesting here to test if the registry has the image (and is up).


Unexpected token 'U', "Unexpected"... is not valid JSON

Describe the bug
Unexpected token 'U', "Unexpected"... is not valid JSON
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-htv327
Steps to reproduce
1.Visit the url
2. Read the response.

Expected behavior
It working
Screen Recording / Screenshot

Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 128
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 46221563,
  "usedJSHeapSize": 42167431,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = userness
Chat ID = f371002f2bc1

Additional context
Error:
An unknown error occured while running an action..

Same problem

Same here too

same problem

It might be an issue with their severs because it was glitchy before too

They fixed it.


Further binding support

Here are some additional improvements to help data binding.

@gregsdennis I will merge this manually since I get this message This branch has conflicts that must be resolved and it is a small request


[vite3] - image path in xx-legacy.[hash].js is  VITE_ASSET[hash]_

Describe the bug
I am having this issue in my app since upgrading to Vite 3.
After build, I found that image path in xx-legacy.[hash].js is VITE_ASSET[hash]_  and I couldn't load the image when the browser downgrade to use legacy resources.
example:

before build
<style scoped> .container { background-image: url("@/assets/test.jpeg"); } </style>
after build, path in xx-legacy.[hash].js
.container[data-v-0bd88030]{background-image:url(__VITE_ASSET__e95e86d6__)}

Reproduction
https://github.com/GitYiM/legacy-assets-in-vite
System Info
System:
    OS: macOS 11.4
    CPU: 2.6 GHz Intel Core i7
    Memory: 173.15 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: v16.4.2 - ~/.nvm/versions/node/v16.14.2/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.18.1 - ~/.nvm/versions/node/v16.14.2/bin/npm
  Browsers:
    Chrome: 103.0.5060.114
    Safari: 15.5

Used Package Manager
yarn
Logs
yarn run v1.22.10
$ vue-tsc --noEmit && vite build
(!) "base" option should end with a slash.
vite v3.0.2 building for production...
✓ 18 modules transformed.
dist/static/js/index-legacy-af5f973d.js       53.60 KiB / gzip: 21.26 KiB
dist/static/js/index-legacy-af5f973d.js.map   558.82 KiB
dist/static/js/polyfills-legacy-02c9d353.js   59.34 KiB / gzip: 24.47 KiB
dist/static/svg/vue-5532db34.svg      0.48 KiB
dist/static/jpeg/test-e95e86d6.jpeg   219.88 KiB
dist/index.html                       1.78 KiB
dist/static/css/index-e69c1395.css    1.37 KiB / gzip: 0.71 KiB
dist/static/js/index-7cd36d41.js      53.11 KiB / gzip: 21.44 KiB
dist/static/js/index-7cd36d41.js.map  540.43 KiB
✨  Done in 11.63s.
Validations

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

same question

Please hurry up

+1

Has this bug been resolved? Is the code not merged yet?

I had the same problem even with latest vite: 3.0.8 and @vitejs/plugin-legacy: 2.0.1.


Inaccurate Page interface for Pagination in Routing guide

📚 Subject area/topic
Routing/Pagination
📋 Page(s) affected (or suggested, for new content)
https://docs.astro.build/en/guides/routing/
https://docs.astro.build/en/reference/api-reference/#paginate
📋 Description of content that is out-of-date or incorrect
The Routing guide displays a complete API reference for the page prop related to Pagination. This reference is no longer accurate since https://github.com/withastro/astro/pull/11176. The documentation has been updated in API reference (see #8751) but not in guides/routing.mdx.
There is another mistake I think. The default for page.size seems to be 10 and not 25 (see paginate.ts#L19 and paginate.ts#L80). It seems this error comes from astro/@types comment. I created a Stackblitz reproduction for this. I'll make an update there as well.
I could update the Routing guide but I wonder if this section is relevant. Since we already have the interface in API Reference, it seems duplicated (and prone to errors when new features are added). I think a link to the API Reference could make more sense:
-#### Complete API reference
-
-```ts
-interface Page<T = any> {
-	/** result */
-	data: T[];
-	/** metadata */
-	/** the count of the first item on the page, starting from 0 */
-	start: number;
-	/** the count of the last item on the page, starting from 0 */
-	end: number;
-	/** total number of results */
-	total: number;
-	/** the current page number, starting from 1 */
-	currentPage: number;
-	/** number of items per page (default: 25) */
-	size: number;
-	/** number of last page */
-	lastPage: number;
-	url: {
-		/** url of the current page */
-		current: string;
-		/** url of the previous page (if there is one) */
-		prev: string | undefined;
-		/** url of the next page (if there is one) */
-		next: string | undefined;
-	};
-}
-```
+<ReadMore>Learn more about [`page` prop](https://docs.astro.build/en/reference/api-reference/#the-pagination-page-prop).</ReadMore>

And we could add the default for pageSize/page.size to the API Reference page.
What do you think?
🖥 Reproduction in StackBlitz (if reporting incorrect content or code samples)
For the page.size issue only: https://stackblitz.com/edit/astro-paginate-pagesize?file=src%2Fpages%2Fpokemon%2F[page].astro&on=stackblitz

The issue on astro/@types have been confirmed (see https://github.com/withastro/astro/issues/11560) and the PR have been merged (https://github.com/withastro/astro/pull/11561).

Great catch, @ArmandPhilippot and I totally agree that there is duplication to show the full API reference here if it's in on the reference page. However, I did notice that while we list out all the properties in the API reference, we don't show it all in one nice example like we do here.
Deleting it from the routing page and linking to the full API reference instead makes sense. If we did that, what do you think about reproducing this block on the API reference page instead, just before listing out each property? Is that too much? Is it helpful to be able to see everything at once, or is it unnecessary?
We also currently do not link back to the API reference page at all, and I think we should! So my thought is yes, delete the "Full API reference" section and instead include a <ReadMore> component sending us there for the full API reference / list of properties available. Would you like to propose something for the Routing page?
(I also noticed that on the API reference page, page.size does not specify its default, so maybe there is some other content from the in-code documentation that would be helpful to include on the API page in each entry itself?

Deleting it from the routing page and linking to the full API reference instead makes sense. If we did that, what do you think about reproducing this block on the API reference page instead, just before listing out each property? Is that too much? Is it helpful to be able to see everything at once, or is it unnecessary?

I think it's a matter of taste. From a personal point of view, I would say that it is a duplicate but some might find this useful. Since the goal of a documentation is to be useful to as many people as possible, this addition makes sense to me. Those who are not interested can easily scroll down the page.
However, adding this block could harm the coherence of the page. Other types do not show the full interface before going into detail about each property. For example:

the Markdown Files section displays the full interface for MarkdownInstance but we do not explain each property below (they are explained in Markdown guide however)
the AstroCookie section does not display the full interface but explain each property of the type

So if we add the full interface, maybe we should do it for other types.

Would you like to propose something for the Routing page?

Of course, I can take care of it!

I also noticed that on the API reference page, page.size does not specify its default, so maybe there is some other content from the in-code documentation that would be helpful to include on the API page in each entry itself?

I will look the types if find some other helpful information to add!

So if we add the full interface, maybe we should do it for other types.

OK, so maybe this is reason enough not to do it!  :sweat_smile:
Here's my current thinking:
Routing page:

KEEP the big block where it is, update it to include everything it was missing
ADD a <ReadMore> component linking to the full API reference

API reference page: (can be handled separately, doesn't have to be the same PR)

ADD any helpful defaults etc. to the properties that are listed out there that you find in the types that you think are useful for people to have

How does that sound?

@sarah11918 This looks good to me. And yes, I will make two different PRs because it's probably better for translators if the page is only updated once 😄 and I'd like to check for missing Since component (see #6467) in api-reference.mdx while I'm here. Is there a reason for not adding it for page.url.first and page.url.last or is this just an oversight?

I'm sure the missing <Since /> is an oversight! Please do add!


Add a note about hotlinking

Add a note encouraging hotlinking/embedding of images returned from the Unsplash API. Link to https://unsplash.com/documentation#hotlinking

The messaging I used for the official documentation was:

Unlike most APIs, we prefer for the image URLs returned by the API to be directly used or embedded in your applications (generally referred to as hotlinking). By using our CDN and embedding the photo URLs in your application, we can better track photo views and pass those stats on to the photographer, providing them with context for how popular their photo is and how it's being used.

I'm sorry for the question  but the concept s a little unclear to understand for starters. So for this hotlinking necessity should we add some extra code or anything like that? I use one random image everytime when app starts in an android app. Should I now add anything more for it to be valid, thank you

@kilicpl no worries. There's no extra code you need to add to hotlink. If you use the images that are returned by the API, and don't duplicate them onto your own S3 bucket or hosting, then you'll be hotlinking.
It's explained here: https://medium.com/unsplash/unsplash-api-guidelines-hotlinking-images-6c6b51030d2a

Thank you very much sir. Kindly can I ask you two more questions I believe it maybe helpful for people in my position. To be able to apply the production:
1)for "Trigger downloads": Should we supposed to make the images downloadeble in our app , what if we dont make them downloadeble. Is that possible?
2)for "Attribute photographer and Unsplash": This s a hard one I guess. For java starters how can we implement this credits on the image maybe you may give a clue? As you know very well  there is no official library for java but only one unofficial one which s far from complete.. Hope to be able to implement it in my app in a way but couldn't find any info nowhere unfortunately. thank you a lot again

@kilicpl these both depend on what you're building. Shoot us an email at<EMAIL_ADDRESS>and we can help there 👍


[ASTPrinter] Add attribute callbacks around conventions; fix spacing

What's in this pull request?

Resolved bug number: (SR-)

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

A smoke test on macOS does the following:

Builds the compiler incrementally.
Builds the standard library only for macOS. Simulator standard libraries and
device standard libraries are not built.
lldb is not built.
The test and validation-test targets are run only for macOS. The optimized
version of these tests are not run.

A smoke test on Linux does the following:

Builds the compiler incrementally.
Builds the standard library incrementally.
lldb is built incrementally.
The swift test and validation-test targets are run. The optimized version of these
tests are not run.
lldb is tested.

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please clean test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please clean test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform
    Linux platform              | @swift-ci Please clean test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

@swift-ci Please smoke test and merge

@swift-ci Please smoke test linux

Linux tests were hanging in a test (mentioned on swift-dev; now disabled).

@swift-ci Please smoke test and merge

@swift-ci Please smoke test linux

@swift-ci Please smoke test linux


Test pull request

    Pull Request #11 has been updated with:

    - 10540 changes

    - 10540 additions

    - 0 deletions