proposal: fuller support for user-defined sections

Opening this issue inspired by the conversation at https://github.com/denysdovhan/spaceship-prompt/issues/479#issuecomment-409102093
Related to discussion #375, and PRs #362, #391, #392, #393
I've come to think that supplying several significantly different flavors for individual sections isn't the way to go.
Currently when considering new section PRs, maintainers just have to ask the fairly objective question of whether it fits with Spaceship. With this door opened, there could be a lot of PRs for niche sections, and maintainers would have to make very subjective calls about what's good enough. I'm not sure that's a good idea: it doesn't sound fun for the maintainers, and it could add unhappiness to the community. And in the end there will be people whose custom sections didn't make the cut who want a good way to make their custom sections available.
When we first started talking about the Git section, Denys's initial reaction was they should just be custom sections. I think that's the way to go, but it needs to graduate from "add to the wiki, and check the wiki for sections you want to add to your local copy":

there should be a user-friendly way to add custom sections, without touching Spaceship
Spaceship should look for user sections
maybe there should be an officially-recognized, installable, lightly curated collection of third-party sections (maybe this repo, maybe a different repo)

Re 1 and 2: Adding a SPACESHIP_CUSTOM_SECTIONS_DIR and looking there for section definitions is straight forward.
Re 3: maybe just have users manually download sections and add them to the user sections' directory. If the sourcing and spaceship::defined searched that directory recursively, a user could have my-spaceship-sections/personal/... and my-spaceship-sections/downloaded/...
If I remember correctly (it's been a couple months since I had time to look at this) there's something goofy with spaceship::defined giving false negatives to the custom sections I've added locally. If that's the case, fixing it is probably the only complicated prerequisite for this enhancement
Then there's just #407 (tldr; maybe just a question of updating the documentation, but maybe refactoring some of Spaceship's lower level workings). Only the sections included in SPACESHIP_PROMPT_ORDER should be sourced
I'd be happy to PR something like this!
I don't have time to work on it immediately. What's the 4.0 timeline?

I think the main complexity comes not from loading custom sections, but with placing them in the specific position in $SPACESHIP_PROMPT_ORDER. For example, let's assume I came up with an alternative jobs section and want to replace the original jobs with my-jobs. How do I do that without completely overriding $SPACESHIP_PROMPT_ORDER? Because I still want to automatically get new sections as spaceship evolves.
#391 was an attempt to solve it, but as mentioned earlier I personally don't think that's the right approach, it maybe solves one specific problem (git) but adds complexity and doesn't cover all other cases (e.g. replacing jobs with my-jobs).

solves one specific problem (git) but adds complexity and doesn't cover all other cases

Exactly. When I first started working on that I thought it was reasonable because the Git section stood out as being one of the few that was more than just a simple value. But now I've written additional sections for myself, and I bet you have too, and looking at #479 I bet there's room to customize many of the sections in ways I haven't thought of.
What I'm seeing is a desire for and value in a solid prompt tool that offers complete customization. Spaceship is in the perfect position to be that tool.

How do I do[replace the original jobs with my-jobs] without completely overriding $SPACESHIP_PROMPT_ORDER

Cool, I can see wanting to do that. Probably support this lower down. e.g. in the override's file name and/or function name. Not sure how the sourcing would work but I'm sure it could be done

I still want to automatically get new sections as spaceship evolves.

Great point. Hadn't thought about it, yes that would be nice. But that's a separate issue: users who customize their prompt order should still (optionally) see any new sections Spaceship adds. I'll play with that this weekend if you don't beat me to it.

And if we all agree that modifying/replacing $SPACESHIP_PROMPT_ORDER should be one and only way to configure prompt order, then my thoughts on the points raised in the first message:

I don't think curated lists work very well. Just look at the number of open PRs in oh-my-zsh or spaceship, it takes months to years to get a new section merged. I would rather publish each of my custom sections as a new separate git repo on Github.
Having SPACESHIP_CUSTOM_SECTIONS_DIR is a fine idea, that location should take priority over SPACESHIP_ROOT when looking for a section with a certain name (so I can put section named jobs and it will override the default one).

I would probably require SPACESHIP_CUSTOM_SECTIONS_DIR to be a folder that has subfolders with names of the sections, something like that:
~/spaceship-custom-sections/
    jobs/                    # This was cloned from Github
        README.md
        my-jobs.zsh
    new-module/              # This folder I created myself
        my-new-module.zsh

That way those subfolders could be cloned repos from Github.
So instead of this:
https://github.com/denysdovhan/spaceship-prompt/blob/f242c20a044b113b5bbf77bd7d5547742f1018fb/spaceship.zsh#L112-L115
Spaceship would load sections like this:
for section in $(spaceship::union $SPACESHIP_PROMPT_ORDER $SPACESHIP_RPROMPT_ORDER); do
  if [[ -d "$SPACESHIP_CUSTOM_SECTIONS_DIR/$section" ]]; then
    source "$SPACESHIP_ROOT/$section/*.zsh"
  else if [[ -f "$SPACESHIP_ROOT/sections/$section.zsh" ]]; then
    source "$SPACESHIP_ROOT/sections/$section.zsh"

Agreed on all counts. I got caught up in thinking about your puzzles. It would be cool to automatically bring in new sections even after customizing the prompt order, but yeah I don't think the current behavior is a problem. Maybe a feature for 5.0 :)

Re: curated lists: yeah, with "lightly curated" I was imagining screening only for malicious code. But maybe just a list of links. And no matter what, this sounds like a side project not part of Spaceship

Yeah that's more or less what I was thinking. I've had this in the back of my mind for a while, but talking about it is motivating me to make time to do it. I'll try to get a PR out this weekend

This sounds promising :+1: Full support for custom sections would make rarely used section as community sections and we could refine and improve others. Anyway we could make this to v4 ?
// @denysdovhan @nfischer

I agree with @maximbaz's points.
However, I don't really think we need to look up for a folder. I believe declaring new/overriding old section will work completely fine with just declaring custom zsh function. There's no need to source files, we can ask users to source custom sections on their own before using them.

There's no need to source files, we can ask users to source custom sections on their own before using them.

Fully agree. There are already tools which will download git repos and source files appropriately (ex. zplug). Also, please keep in mind that I don't always want to share my custom sections, so it's easier for me to write it as a function in my .zshrc (which is compatible with the spaceship 3 architecture).

I believe Spaceship v4.0 solves this issue. I don't think Spaceship should resolve and source sections automatically as there are plenty of tools for that.


Allow correct item to get icon updates for both kde and gtk implementation

https://github.com/swaywm/sway/pull/1431/commits/3f956f919a8041ebd3d06214be4b7f146d290cd9 fixed correct icon updates for appindicator, but broke them for ksni, so fix this to support both
For https://github.com/swaywm/sway/pull/1431

Thanks! This was actually intended to target both ksni and canonical extensions, there is just an error on https://github.com/4e554c4c/sway/blob/6ed5d6e0db770538ed783179313ef4321894c073/swaybar/tray/sni.c#L349 (should be item->uniq_name as above) so I'd rather fix it that way than this workaround. If you'd like to change your PR I can merge it, otherwise I can do it.

This was actually intended to target both ksni and canonical extensions

Good then, because my fix was ugly :D

If you'd like to change your PR I can merge it, otherwise I can do it.

Done, thank you!

Thanks!


Update sk.coffee

Blurb translations

Coverage decreased (-0.01%) to 56.541% when pulling f10f93a891e560cf3207a228169de5f961c75c91 on cundamic:patch-39 into 69b3f43a66bd505f11125eaa08b3c678b61cd41b on codecombat:master.

👍


feat: add transaction endorser service

Dependant on #231, which needs to be merged first.
Adds a transaction endorser service that listens for endorsement requests and accepts them if they conform to the trust registry rules.

@TimoGlastra this has merge conflicts still

Ugh.. not sure why tests are failing in CI :(

@TimoGlastra got this working. Any more feedback?

Live check seems like a good solution to me!

@TimoGlastra got this working. Any more feedback?

Nope, really great work on fixing this!! Thanks

Can I merge or do you first want to merge some other PRs @morrieinmaas?

@TimoGlastra curling the aca-py for status works locally but breaks in gh actions. Tried swallowing the error(s) like so
i=0
echo waiting for aca-py container to startup
./manage up-daemon-usecache
while [ $i -le 300 ]
do
  STATE1=$(curl -k -X 'GET' 'http://<IP_ADDRESS>:3021/status/ready'  -H 'accept: application/json' 2>/dev/null)
  STATE2=$(curl -k -X 'GET' 'http://<IP_ADDRESS>:4021/status/ready'  -H 'accept: application/json' 2>/dev/null)
  sleep 1
  ((i++))
  echo Waiting for Aca-py containers to be ready ${i}/300
  if [[ -z "${STATE1}" && -z "${STATE2}" ]]; then
    echo Containers snot reachable yet
  else
    STATUS1=$(echo $STATE1 | jq .ready)
    STATUS2=$(echo $STATE2 | jq .ready)
    echo
    echo Agent 1 is ready: ${STATUS1}
    echo Agent 2 is ready: ${STATUS2}
    echo
    if [[ $STATUS1 == 'true' && $STATUS2 == 'true'  ]]; echo wait over; then exit 0; fi
  fi
done

and some other ways. In GH Actions there always seems to be a way this breaks nontheless. So I'd say let's keep it as it is for now as it works.

Yeah sure! Feel free to merge when you're ready


FINERACT-2067 NPE business date partition step COB

Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated Apache Fineract JIRA ticket.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[x] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[x] Create/update unit or integration tests for verifying the changes made.

[x] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[x] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes

[x] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

@kulminsky can you pls explain what was the exact issue you solved? I'm not sure I understand the purpose of the code changes yet. Thanks.

@kulminsky Please make sure to follow the following format for PR title and commit message:
FINERACT-XXXX: <short message>
The ":" was missing from your actual title and commit message, but the above one is used to automatically pick up during a release and connect with the relevant jira ticket.

@kulminsky Please make sure to follow the following format for PR title and commit message: FINERACT-XXXX: <short message>
The ":" was missing from your actual title and commit message, but the above one is used to automatically pick up during a release and connect with the relevant jira ticket.

Sorry, I saw the comment only after the commit. I will follow the rules in future commits.

@kulminsky can you pls explain what was the exact issue you solved? I'm not sure I understand the purpose of the code changes yet. Thanks.

@galovics
In general, this is to fix an NPE issue we are seeing in some of our test environments in multi-tenant mode.
Potential fix steps:

Make partition step StepScoped.

This creates a new instance of the partition step, instead of the default singleton in Spring batch.

Copy values from job execution context into step execution context before partition step.

We then give the business date value to the step context before the step runs, ensuring other jobs/steps are not trying to access the business date value.


Functional: Type Inference & Checking

Description
Constraint-based type inference (and type checking) for the functional IR. Currently supports all builtins and IR features apart from is_none and optional/maybe types (which need more discussion). Adds a type-checking backend ("type_check") which is enabled in all tests.
Requirements
Before submitting this PR, please make sure:

[x] You have run the code checks, tests and documentation build successfully
[x] All fixes and all new functionality are tested and documentation is up to date
[x] You looked at the review checklist

Additionally, if this PR contains code authored by new contributors:

[x] All the authors are covered by a valid contributor assignment agreement,
signed by the employer if needed, provided to ETH Zurich
[x] The names of all the new contributors have been added to an updated
version of the AUTHORS.rst file included in the PR

I won't pretend to have looked very closely, but from what I can tell from the tests and the talk about this topic it looks like it is doing what it should.

I am going to port this to the new datamodels (just use dataclasses so far to avoid the Pydantic quirks). So that’s probably one of the PRs we should merge after moving the repo.

Superseded by #811


Unable to add New Cloud Provider

I'm unable to add  a new Cloud Provider after merging #4189
I'm getting error:
[----] F, [2015-09-23T16:15:46.121608 #29451:2aecf43c7970] FATAL -- : Error caught: [NoMethodError] undefined method `invert' for #<Array:0x0055da01f34e28>
/home/rblanco/devel/manageiq/app/views/shared/views/ems_common/angular/_form.html.haml:67:in `_app_views_shared_views_ems_common_angular__form_html_haml__667581869529807848_47197446191520'

Reproduce:
Clouds -> Providers -> Configuration -> Add New Cloud Provider

Editing is broken as well.. @AparnaKarve you're probably most familiar with that code..?


Record corresponding to CSW-service is deleted from repository when trying to refresh harvested records

Description
Refreshing of harvested records using refresh_harvested_records command doesn't work properly. Record corresponding to CSW-service is deleted from repository when trying to refresh harvested records
Environment

operating system: ubuntu trusty
Python version: 2.7
pycsw version: master
source/distribution
[x] git clone
[ ] DebianGIS/UbuntuGIS
[ ] PyPI
[ ] zip/tar.gz
[ ] other (please specify):
web server
[x] Apache/mod_wsgi
[ ] CGI
[ ] other (please specify):

Steps to Reproduce
I have deployed two separate instances of pycsw for harvesting process testing. Each instance uses it's own repository, which is postgres-database with postgis enabled.
On the first instance I have created 3 metadata records with identifiers "a", "b" and "c". After that, I have started harvesting using OWSlib:
csw = CatalogueServiceWeb('http://second-pycsw-instance-url/')
csw.harvest('http://first-pycsw-instance-url/', resourcetype='http://www.opengis.net/cat/csw/2.0.2')

After that, 4 records in second repository appeared: the first one corresponds to the service itself, and the remaining three records correspond to the records "a", "b" and "c".
But when I am trying to refresh harvested records using corresponding pycsw-admin's command, first record disappears from repository and when I am trying to run this command again, I'm getting message "No harvested records".
Additional Information

After some debugging I have found possible source of the problem. Look at this line:
https://github.com/geopython/pycsw/blob/master/pycsw/ogc/csw/csw2.py#L1263
Here it is supposed that record that describes the service will be first in the returned list. Although postgres does not guarantee, that records are in the same order, in which were inserted. Therefore, there is a possibility, that variable service_identifier will be set to identifier of one of the service records, not service itself.
Further:
https://github.com/geopython/pycsw/blob/master/pycsw/ogc/csw/csw2.py#L1282
parse_record function, when parsing a CSW-service, returns a list where the first item always describes the service itself. And if the incorrect service_identifier was set, then this code:
https://github.com/geopython/pycsw/blob/master/pycsw/ogc/csw/csw2.py#L1320
will cause that the new generated identifier of the service will be replaced by identifier, that not belongs to service. Finally, correct service identifier will not be inserted to the list named ir, which is used to compare records from repo and parsed records, and service will be deleted.
After changing the code this way
identifier_attr = self.parent.context.md_core_model['mappings']['pycsw:Identifier']
type_attr = self.parent.context.md_core_model['mappings']['pycsw:Type']
service_result = filter(lambda res: getattr(res, type_attr) == 'service', results)[0]
service_identifier = getattr(service_result, identifier_attr)
service_results = results

the record coresponding to service will no longer be removed.
But after that I have noticed another strange behaviour. If new records have been added to harvested service, re-harvest of that service doesn't create new records in repository. I also have found possible source:
https://github.com/geopython/pycsw/blob/master/pycsw/ogc/csw/csw2.py#L1341
During second harvesting of remote service, this code will lead to the fact that insertion of new records never occur, since the service identifier will always found and len(results) > 0 is always True. I have commented out this line and now harvesting works fine. Tested on the CSW-, WMS-, WFS- and WMTS-services.
Also, I found it strange, that the URL of the service is saved to the field named source, while the refresh_harvested_records relies on mdsource field. I replaced all references to the source-field by the references to the mdsource, but I'm not sure of the correctness of this. @tomkralidis, can you please explain the purpose of each of this fields, take a look at my changes here: https://github.com/igor-chernikov/pycsw/commit/fdfd4fe3b0471ebc95e5c7d541337444d7d84010 and check to see if I missed something?

@igor-chernikov I cannot reproduce the issue at all.  Workflow against an empty pycsw instance:
from owslib.csw import CatalogueServiceWeb
csw = CatalogueServiceWeb('http://localhost:8000/')
csw.harvest('http://demo.pycsw.org/cite/csw', resourcetype='http://www.opengis.net/cat/csw/2.0.2')

Then against the http://localhost:8000 pycsw instance:
pycsw-admin.py -f default.cfg -c refresh_harvested_records

Does this work for you or am I missing something?

@tomkralidis, your scenario works fine if I am using sqlite as db-backend, but with postgresql+postgis the issue still exists.


Shortcut go to file selection

Thanks! Sorry, this is my first time reporting. I was suggesting adding a shortcut to select which option (1...5) of the files or options in the dropdown to select (e.g. ⌘+4 would select the 4th option!). Thanks!

@cogden14 what exact dropdown are you referring to? Can you include a picture?


Embed peptide sequences

Hi PeptideBERT authors!
Could you please show us how to embed peptide sequences using PeptideBERT?

If you have a peptide sequence and want to get the embeddings generated by PeptideBERT instead of the final binary value, just remove the final Linear layer and Sigmoid layer from the model architecture in model/network.py


SBT sometimes infinite loops while compiling

And https://github.com/sbt/zinc/issues/911

I think I may have fixed / reduced this in #2263


Parse the alias flags too, like zsh

It should be possible to check if eg. nix-env is an alias to eg. nix-env -f '<nixpkgs> and parse that too, so do an ad-hoc implementation of how zsh handles aliasing.

This is better handled by some general solution for bash.


Impossible to track events on iOS

🐛 Bug Report
I'm trying to log events from my app, but the events are not shown correctly in the events manager dashboard of Facebook.
I'm using all the settings from the Setup / Installation, i'm using the same FB account on the test device ( iPhone XR, iOS 15 ) and the only events that i can see are "fb_mobile_login_method_start" and "fb_mobile_login_start".
To Reproduce / Code Example
This is the javascript function that i'm calling for test.
After loading the main screen
Settings.initializeSDK();
await Settings.setAdvertiserTrackingEnabled(true);

By pressing one button
AppEventsLogger.logPurchase(Math.random(999), 'EUR', {
        [AppEventsLogger.AppEventParams.ContentID]: `order-${Math.random(
          9999,
        ).toString()}`,
      });

Expected Behavior
The strange thing is that with the account of a colleague , the events are being tracked.
Environment
    OS: macOS 11.6
    CPU: (8) x64 Apple M1
    Memory: 20.29 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 15.6.0 - ~/.nvm/versions/node/v15.6.0/bin/node
    Yarn: 1.22.15 - /usr/local/bin/yarn
    npm: 7.4.0 - ~/.nvm/versions/node/v15.6.0/bin/npm
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.11.2 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 15.0, DriverKit 20.4, macOS 11.3, tvOS 15.0, watchOS 8.0
    Android SDK: Not Found
  IDEs:
    Android Studio: 2020.3 AI-203.7717.56.2031.7678000
    Xcode: 13.0/13A233 - /usr/bin/xcodebuild
  Languages:
    Java: Not Found
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2
    react-native: 0.65.1 => 0.65.1
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

This is not actionable without some sort of reproducible example, apologies https://stackoverflow.com/help/minimal-reproducible-example
We are about to release with a bump of underlying ios sdk from 9 to 11, maybe that helps
if not we must have an example that reproducibly fails for anyone to offer any help


support default ClusterIP vm-insert service creation

I might be missing context but I'm curious why does the VMCluster controller default to creating a headless service for vm-insert? Does it make sense to include a mechanism to override the default serviceSpec to any arbitrary service type instead of having to create an additional service?
I've an application with a custom etc/resolv.conf that doesn't talk to kube-dns and requires a single proxy ip for prometheus.

Hello! VM operator won't create headless service for vminsert and the code you attached is for vmselect. So operator will create headless services for vmselect and vmstorage to help build command-line flags, like here
https://github.com/VictoriaMetrics/operator/blob/f2b8cf701a33f91cef19848c857fd6efb7db59dd/controllers/factory/vmcluster.go#L743-L747
It's necessary to make sure component like vminsert can specify every storage node address in cluster.

I've an application with a custom etc/resolv.conf that doesn't talk to kube-dns

You can try add some dnsConfig under those components.

Hey @Haleygo sorry I meant vm-select not vm-insert. I think the default operator behaviour is to create a headless service for vm-select which I don't quite understand the reasoning for.

Yeah, vmselect headless sevice is needed to build -selectNode= arg, which is used to propagate cache reset request between vmselect nodes after deletes time series.


Tensorboard cannot be correctly closed after closing the window.

Type: Bug

Behaviour
Expected vs. Actual
Closing the window should close the Tensorboard but there are two subprocesses remained:
/usr/bin/python3 -c from multiprocessing.semaphore_tracker import main;main(3)
/usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=4, pipe_handle=8) --multiprocessing-fork

Steps to reproduce:

Use `ctrl + shift + p' to open a new window for Tensorboard. Then,  the two subprocess above will be created.
Closing the window however cannot kill the two subprocess.

Diagnostic data

Python version (& distribution if applicable, e.g. Anaconda): 3.9.16
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Conda
Value of the python.languageServer setting: Default

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

XXX

User Settings

languageServer: "Pylance"

formatting
• provider: "yapf"

Extension version: 2022.18.2
VS Code version: Code 1.73.1<PHONE_NUMBER>f055b99068d3688932416f2346dd3b, 2022-11-09T04:27:29.066Z)
OS version: Windows_NT x64 10.0.22621
Modes:
Sandboxed: No
Remote OS version: Linux x64 4.4.0-131-generic
Remote OS version: Linux x64 4.4.0-131-generic

System Info

Item
Value

CPUs
12th Gen Intel(R) Core(TM) i5-12400 (12 x 2496)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
undefined

Memory (System)
31.75GB (19.93GB free)

Process Argv
--crash-reporter-id e18a8c59-9580-4a60-8871-d5f09bb5da3d

Screen Reader
no

VM
0%

Item
Value

Remote
SSH: 4_1080ti_1

OS
Linux x64 4.4.0-131-generic

CPUs
Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz (32 x 1295)

Memory (System)
125.80GB (117.57GB free)

VM
0%

Item
Value

Remote
SSH: 4_1080ti_1

OS
Linux x64 4.4.0-131-generic

CPUs
Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz (32 x 1295)

Memory (System)
125.80GB (117.53GB free)

VM
0%

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscoreces:30445986
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vsclangdf:30486550
c4g48928:30535728
dsvsc012:30540252
pynewvextcfv2:30681851
azure-dev_surveyone:30548225
vscccc:30610679
pyindex848:30662994
nodejswelcome1cf:30587006
282f8724:30602487
pyind779:30671433
89544117:30613380
pythonsymbol12:30671437
a9j8j154:30646983
pythonb192cf:30669361
functionswalk:30687959
pythonms35:30686772

Thanks for filing this issue, I will look into this.

Sorry, I didn't get to this issue, will try to look into this this week.

I didn't meet this problem until yesterday, now I have to kill the subprocesses which take port 6006 every time before I relaunch my TensorBoard.

same issue with the latest version of VSCode and everything. please fix this bug. need to find and kill the process mannually every time!

same issue remain until 0821,fix it,pls

It doesn't seem like anyone is fixing this. I suggest handling Tensorboard outside of VScode. Like using a reverse proxy to assign a subdomain to each app (Vscode and Tensorboard)

@Ali-Flt we have shipped a new exetnsion named Tensorboard
Does this repro from this exension as well.

Duplicate of https://github.com/microsoft/vscode-jupyter/issues/12852


Adds "stock value" calculation to stock table

Uses purchase_price data where available
Otherwise reverts to part pricing estimates
Aggregate total in footer

how do i enable this column? sorry to bother that much

You will need to update to the latest master (development) version, and then you can select the column via the columns selector:

am i in the good version? doesn't show up on mine

Version Information:
InvenTree-Version: 0.11.0 dev
Django Version: 3.2.18
Commit Hash: 93a2d612e
Commit Date: 2023-03-09
Database: sqlite3
Debug-Mode: False
Deployed using Docker: False
Active plugins: [{'name': 'InvenTreeBarcode', 'slug': 'inventreebarcode', 'version': '2.0.0'}, {'name': 'InvenTreeCoreNotificationsPlugin', 'slug': 'inventreecorenotificationsplugin', 'version': '1.0.0'}, {'name': 'Zebra', 'slug': 'zebra', 'version': '0.2'}, {'name': 'Brother Labels', 'slug': 'brother', 'version': '0.6.0'}]

Try hard-refreshing the page a few times (so the javascript files aren't running from browser cache)

could you show me a screenshot, even a private windows does not do the trick

it just worked! thank you so much. but somehow it mixed up cureencies values, i wonder why.. total value doesn't render with 2 decimals also.

Is there a way i Can add some line of code somewhere to do the stock total on the footer as well?

here are the mixed currency values as well, the rates are reversed

@SchrodingersGat is there a way to change the total stock value currency on the footer? It stays at USD as of now. Thanks

Currencies should use the default currency when multiple are present, try changing the default in the global settings.

Default currency is at CAD, not sure how it interacts. Maybe total is is trying to use line's default currency else USD then using USD so since the line is empty, it is then using USD somehow?

@SchrodingersGat

it just worked! thank you so much. but somehow it mixed up cureencies values, i wonder why.. total value doesn't render with 2 decimals also.
Is there a way i Can add some line of code somewhere to do the stock total on the footer as well?

@SchrodingersGat
sorry to bother, any toughts?

Use footerFormatter function, e.g.
https://github.com/inventree/InvenTree/blob/324a47ba17fce1792ddf69c71c8d3f6bc25514f2/InvenTree/templates/js/translated/stock.js#L2095

It renders into your selected default currency. You can see exactly where the currency for rendering is selected here:
https://github.com/inventree/InvenTree/blob/324a47ba17fce1792ddf69c71c8d3f6bc25514f2/InvenTree/templates/js/translated/stock.js#L2138

[image: image.png]
I don't get what i'm supposed to see.. is there any place in the code where
i can force my base currency ? footer remains usd no matter what
[image: image.png]
[image: image.png]
what am i missing?
On Wed, Mar 15, 2023 at 7:28 AM Oliver @.***> wrote:

It renders into your selected default currency. You can see exactly where
the currency for rendering is selected here:
https://github.com/inventree/InvenTree/blob/324a47ba17fce1792ddf69c71c8d3f6bc25514f2/InvenTree/templates/js/translated/stock.js#L2138
—
Reply to this email directly, view it on GitHub
https://github.com/inventree/InvenTree/pull/4471#issuecomment-1469833882,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOXZLLXKUUP7ISYLB4OAY5LW4GRWLANCNFSM6AAAAAAVTXB2VM
.
You are receiving this because you commented.Message ID:
@.***>

never mind, the error is in the config_yaml template

for some reason , i have to go specify INVENTREE_BASE_CURRENCY value to the good one in the admin panel

never mind, the error is in the config_yaml template  for some reason , i have to go specify INVENTREE_BASE_CURRENCY value to the good one in the admin panel

anything about this that breaks and has to be entered everytime we pull a commit?

could it be possible to incorporate such value ?


Rename groupLess -> withoutGroup

The first time I read it I was like, .less files? As far as I found "groupless" isn't really a word, works fine in Dutch though :wink:

Good point, thanks :)

:+1:


Fix divide by zero in ellipse deadzone

As vero brought up in Discord, when either ellipse radius is 0, NaN is returned. So to fit with the other shapes when they are 0, if either radius is 0 then return true to allow any input value to be read.

Done :). But, does it make sense to add a bug fix to a changelog to an unreleased feature?

Oh right lol. Yeah, we should revert that.


Multi-index automigration and per-model settings

Automigrate now correctly recreates an index (delete, create, set mapping) - fixes #20
Additionally, Model.settings.elasticsearch can be used to set defaults (index, type).
@pulkitsinghal

@raymondfeng - I'm not sure who is in charge of community tests, can you please point me to the right person so I can begin to understand how to make the tests pass?

@pulkitsinghal I was able to run all tests successfully by editing `test/resource/datasource-test.json' to point to my local ES install:
56 passing (1m)
  3 pending
  1 failing

The one failing test is related to the default sort order (by id).

@fabien - can you paste a bit more info around the stack that it fails with after turning on trace level logging in  `test/resource/datasource-test.json'? Thanks!

@pulkitsinghal
 1) Connector should build a query for the WHERE filter:

      AssertionError: expected { Object (sort, query) } to deeply equal { query: { bool: { must: [Object] } } }
      + expected - actual

                 }
               }
             ]
           }
      +  }
      -  },
      -  "sort": [
      -    "id"
      -  ]
       }

      at Assertion.assertEqual (/Users/fabien/Development/github.com/fabien/loopback-connector-elastic-search/node_modules/chai/lib/chai/core/assertions.js:439:19)
      at Assertion.ctx.(anonymous function) [as equals] (/Users/fabien/Development/github.com/fabien/loopback-connector-elastic-search/node_modules/chai/lib/chai/utils/addMethod.js:40:25)
      at Context.<anonymous> (/Users/fabien/Development/github.com/fabien/loopback-connector-elastic-search/test/01.filters.test.js:43:24)
      at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:196:15)
      at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:373:10)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:451:12
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:298:14)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:308:7
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:246:23)
      at Object._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:275:5)
      at processImmediate [as _immediateCallback] (timers.js:345:15)

@fabien - i didn't mean the mocha tests, i meant that i don't know why the jenkins checks are failing or what they are even

@pulkitsinghal right, I was wondering about that, too. Jenkins is CI, but it appears to be misconfigured to run the tests correctly. I looked at one of the failed Jenkins attempts, but I couldn't immediately see what the issue was. I suspect here, too, a wrong ES connector host config was the issue.


How to use on multiple frames like MeMotr

Hi team,
Thank you a lot for MOTIP and MeMOTR ,
could you give me an advice how to use MOTIP with multiple frames, please?
I found a MeMOTR/tools ipynb file and It perfect works with MeMOTR but
I applied this to MOTIP and have a lot's of errors.
Is there an example like MeMOTR with MOTIP?

Thank you for your interest in our work.
Do you mean to directly input an entire video for tracking? This is an unresolved part of our plan, as discussed in #6.
However, a developer has provided his/her third-party implementation:

I added this feature in my own fork project, you can refer to it support video infer
Originally posted by @urbaneman in https://github.com/MCG-NJU/MOTIP/issues/6#issuecomment-2097385831

Maybe you can try to see if it works. I've been too busy these days and have some personal issues.

I'll check out this implementation.
Thank you!


Implement design for GridPlayground

Old title: Beautify and extend …
Depends on

#100

Why?
Right now the grid playground is implemented functionally and can be found in the storybook here.
The design is bare-bone and needs to be improved.
Design
Figma
Acceptance criteria

[ ] the grid playground is updated to match the figma design

[ ] it displays the currently active breakpoint

[ ] it shows the current values for margin, column and gutter

[ ] column is always flex
[ ] margin either one of the defined values or flex (e.g. when centered)
[ ] values should be shown in rem

[ ] alignment can be set to either left (default) or center

[ ] max content width can be set to none (default), 1440 or 1920 via radio buttons

[ ] example screen builder:

[ ] has some initial boxes
[ ] clicking on a box opens edit settings in the box, where breakpoint and size can be set
[ ] also shows how the title in a topbar and headlines would be aligned

Definition of Done

[ ] follow up tickets were created if necessary
[ ] updated version + documentation is deployed
[ ] Storybook can show the feature
[ ] Set task to In review

Review
-  add link to deployed storybook
- add link to deployed docs
- [ ] approved by designer add designer tag
- [ ] approved by dev add dev tag
Implementation details

make use of the computed styles of the actual grid as much as possible:
https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties#values_in_javascript

Postponed until after #877


Not comfortable font for console

Describe the bug
I noticed that when theme is changed to doki theme, console font also changes. It changes to awful font that isn't comfortable to read.
To Reproduce
There's two way:

You can put checkbox in settings of doki theme "Change Console Font"
or
You can put font field to choose what font should be used to console in doki themes.

Expected Behavior
I want my console font to be normal, comfortable to read.
Environment
PhpStorm 2021.1.2
Build #PS-211.7142.44, built on April 30, 2021
Runtime version: 11.0.10+9-b1341.41 amd64
Windows 10 10.0
Doki Theme Version: 16.0.0
Memory: 988M
Cores: 4
Screenshots
Real:

Expection:

Video:
https://disk.yandex.ru/i/XH6F-S-pSwPR_Q

Ah, yes I remember this. This affected Linux as well. I had to change the console font as well. However, I forgot about this because it looks like they fixed the terminal font rendering issue in the 2021.2 builds.
https://user-images.githubusercontent.com/15972415/122676645-8cae3180-d1a4-11eb-9ba1-82be536196e4.mp4
So a third option is to live adventurously and upgrade to the EAP version.
I'll look again at this issue when I get some time in the future. It may be a platform issue though. Thank you for taking the time to report this issue. (That Asuna sticker is noice btw)

I don't like to upgrade to the EAP version, so I'll be glad if you fix this issue.

(That Asuna sticker is nice btw)

Thanks, here's Asuna Dark:

, Asuna Light:

and PSD in high Quality (<13MB>, if you want to do something):
https://drive.google.com/file/d/1rdn9XRdoL_GWfM1t6n0UPl9u5qH04-iZ/view?usp=sharing

@Dragon-0609 I dunno what I could do about the default font being all messed up. But I did add a way for you to select a console font that isn't messed up and use that for all themes..


Displaying two spinners together

Hi there!
I'm currently building a project where I need to show two spinners for two different long-running tasks.
Is there a way to achieve this?
Thanks in advance for your help!

That would in fact require to move the cursor manually using a library like crossterm.
I opened this issue as I didn't know how the internal crate worked but if it's just a line rewrite currently it's a bit of work to make two spinners (or more) work together.
The good point being that if two spinners can be displayed together then si can be three, four, five etc.

I dont think a library like crossterm is needed.
you can get the term position printing "\033[6n" and reading from input "^[[row;columnR".
Save the position you get, and always go to that position when printing.

@ad4mx Can I take a crack at it? I'm seeing if we can use an mpsc to output spinners from multiple threads into one stream.

@ad4mx Can I take a crack at it? I'm seeing if we can use an mpsc to output spinners from multiple threads into one stream.

Of course.


Meters maybe more friendly for international users

Choosing a maxzoom of -z12 for resolution of about 72 feet within features

Maybe meters are friendly for international users. or we chould use 72 feet ( 24 meters )

Good point. I'll add the unit conversion.

This will be fixed in https://github.com/mapbox/tippecanoe/pull/529

Merged


How to replace the tile URL in a custom TileSource without disrupting the viewer?

I've been really enjoying working with OpenSeadragon!
I'm trying to figure out the best approach for a somewhat complicated feature. I'm using a custom TileSource that uses getTileUrl to fetch tiles from an S3 bucket. (I don't think it's relevant, but I'm also using range requests to get the tiles from a single image, so the tile URL is the same for every tile.) I'm trying to make it more secure by having the S3 signed URL expire after a fairly short time, which means I then need to update the TileSource to use this new URL. Somehow I need to seamlessly replace the URL without triggering a redraw in the viewer - it just needs to use the new URL whenever new tiles are fetched.
There are 2 approaches I'm considering:

Use addTiledImage to replace the TileSource, and somehow prevent the viewer from flickering/stuttering/freezing while the swap takes place. This seems a bit heavy handed, but probably fairly straightforward (although I haven't gotten it working yet).
Create a custom version of OSD that will retry a failed tile fetch (I've seen the retry logic in #1627, and would probably start there). I think I would also need to add some kind of preRetry function that gets called to replace the tile URL for the viewer. This seems more complicated, but possibly more robust.

In both cases, the problem boils down to finding a way to replace the URL for the TileSource without otherwise disrupting the viewer. Do you have any thoughts on the cleanest approach to accomplishing this?
Thank you for your work on this library!

@msalbery brings up a good point – using rotating tokens for authenticating image requests is probably a more common use case than what I'm trying to do, and it leads to this same issue. In either case, you'd need a way to update the URLs and/or headers for any future tile fetches, both for tiles that you've already cached and unseen tiles.
@iangilman yes, it's possible to know ahead of time that the URL needs to be updated. You can get the expiration from the signed URL params, fetch the new URL before that time (assuming the tab is active?), and have getTileURL use the new value. When I tried to do this though, the viewer was still trying to fetch the old URL along with the new one. I haven't dug far enough into OSD yet to know if this is because it's trying to fetch a cached tile when you zoom in on an area that's already been fetched, or if I screwed up the URL update. It looks like the cacheKey for a tile is based on the URL (and the AJAX headers), so maybe that could be why.
I was also thinking more about approach #2 (retry on fail). My thought was to wait for the fetch to fail, then determine if it's because of an expired URL, and if so tell the event handler to trigger a URL update in the parent component and only then retry. I'd want to update the URL for every future tile from the first failure event handler, to prevent a barrage of failures/updates. Somehow this feels like the safer approach since it avoids trying to update the URL in a viewer that may not even be in an active tab (e.g. I don't know what happens to JS in background tabs in Chrome), yet it also feels like a worse UX since there would be a slight delay in tile loads every time the URL expires while waiting for the new one.
Maybe the best UX would be a combination of the 2 approaches - try to preemptively update the URL before it expires, but have a catch/update/retry mechanism as a fallback. It seems like the cache could be tricky in both approaches though.
I think I need to dig into the OSD source to understand exactly how the caching works and when the cached URLs are used. With the current cache implementation that uses the URL and headers as the cacheKey, it seems like it may be optimistic to try to update the URL and expect it to "just work". I wonder I can make a custom caching implementation that uses a combination of some unique image ID and tile level/x/y as the cacheKey.
I'm going to get more familiar with the OSD source so that I can speak more intelligently about this, but if you have other thoughts in the meantime I'd love to hear them!

My current thought is that I can add an event handler for update-tile, in which I check the existing tile URL to see if it is expiring soon. If so, I can specify a new URL on the tile object that I think will update the object in the matrix - does that sound like it might work? I'm worried about any performance hit to calling a function on every single update-tile event, but maybe this is ok? What is the actual purpose of that event and is there a better one to use? Or perhaps I should add a tile-loading event that fires just before the tile is fetched.
One complication is still the cacheKey. Since it relies on the URL, setting a new URL on an existing tile will probably cause extra image fetches that don't need to happen, since the key won't match. I'm going to try adding a getTileCacheKey function to the tileSource and call that in getTile in the same place getTileUrl is called, and then pass this key to the Tile constructor.

It looks like update-tile is called on every tile as it's considered for drawing, not just tiles that are about to be loaded, so that seems too broad. If you want to know when a tile is about to be loaded, adding a new event for that seems appropriate.
It does seem like it might be worth exploring a new cache key system that's independent of URL. We just need to make sure it works for all scenarios. In your case you have the same image but the URL is changing. In some other cases (like a constantly-updated live feed) it may be the same URL but a new image.
Anyway, sounds like you're on the right track. Good luck on your investigation! Please keep us posted :)

I think it's working now.
The difficulty was that not only is the tile.url locked in when the tile is created, tileSource.getTileUrl is as well. So if my custom getTileUrl function relies on some updated (React) state to get the new URL for all future loaded tiles, it will still return the old URL based on the state from the point where tileSource.getTileUrl was created (during viewer.open(tileSource)).
The things I had to do were:

When my URL state changes, call viewer.source.getTileUrl = getCurrentTileUrl, where getCurrentTileUrl is the function I would have normally passed to getTileUrl in the tileSource options.
In my new tile-loading event handler, call tile.url = tiledImage.source.getTileUrl(tile.level, tile.x, tile.y).
Add a custom getTileCacheKey function to the tileSource, call it inside getTile, and pass the result to the Tile constructor (using the default cacheKey implementation if the custom function is not defined). This lets me divorce the cacheKey from the (now dynamic) tile URL.

You can see the changes in my fork of OSD. I'd love to know if you think there's a better way, or if this is a terrible approach!
I still think I might need to add a tile-load-failed event handler, to handle any cases where the updated state didn't get noticed (maybe the tab was in the background when the URL expired, etc). If I end up doing that I'll update this issue.

Seems like a reasonable approach! I don't think you necessarily need to replace the getTileUrl... can't you have it rely on the state of some variable? Something like this:
var extra = 'foo';

function getTileUrl(level, x, y) {
  return `${baseUrl}/${level}/${x}_${y}?extra=${extra}`;
}

extra = 'bar';

Regarding the cacheKey change, that seems like something that might be worth bringing into OSD, to support this sort of scenario elsewhere. Would you be up for making a pull request? I imagine there's some additional work to do to make a proper PR, but you seem to have made a good start so far!

Hi, I am also hitting this issue. Same use case, would like to use presigned URLs from AWS to serve assets that expire after some time. What's the current thinking on the best way to handle this issue?
Currently, I'm patching the library at runtime to allow the Tile.url field to accept either a string or function that returns a string. Then, my custom TileSource class's getTileUrl function returns a function so urls can be grabbed dynamically. Code snippet below:
Object.defineProperty(OpenSeadragon.Tile.prototype, 'url', {
  get() {
    const url: string | (() => string) = this._url;
    if (typeof url === 'function') {
      return url();
    }
    return url;
  },

  set(val) {
    this._url = val;
  },
});

My other approach involves iterating over the TiledImage.tilesMatrix structure to manually update all URLs whenever the old URL is invalidated. This feels a little brittle to race conditions. Is either approach recommended? Thanks for your support and the library!

@JohnReagan Having the url be able to be a function seems like a great solution! That seems like it would be a good addition to the API. I'm not sure if there are any negative side effects... Perhaps places that don't expect the url to change?
Would you be interested in putting together a PR to add something like this to the library?

Hey @iangilman , thank you for your response! Yes, I'd be happy to get a PR together for this, although it will take some time to get bandwidth to do so.

@JohnReagan Cool! No worries on the timing. And, of course, if someone else comes along who wants to tackle it first, they're welcome to do so!

Hi @iangilman , I've put together a draft PR for review here when you have some time to review, thanks! https://github.com/openseadragon/openseadragon/pull/2247


Sequence support

Hi,
Thank you for the open release!
Is there support for sequence data? 4D?

Not yet but I have plans to support it

As a work around, you can import the different phases of the 4DCT in separately, one at a time. Every time you load a CT, MedBlend creates a CT.vdb file in the same directory as the CT data. Rename the CT.vdb file to something else before loading in a new CT, Phase0.vdb, phase10.vdb etc. Once you have a VDB file for each of the phases, Blender can import a VDB sequence directly. Then you will have an animated 4DCT in Blender

Ah yes, this makes sense. However I am dealing with 200 time frames.
My own implementation using pyopenvdb did not work directly, so I was hoping maybe to use whatever tricks you are doing.

I have this dummy example inspired by your tutorial.
import h5py
import numpy as np
import pyopenvdb as openvdb

for i in range(0,15):
    print(i)
    grid = openvdb.FloatGrid()
    Volume = np.zeros([30,30,30])
    Volume[20:30,:,2] = 0.5
    Volume[:,20,10:15] = 0.5
    Volume[5:10,i:i+5,5:10] = i
    grid.copyFromArray(Volume.astype(float))
    grid.transform = openvdb.createLinearTransform([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]])
    grid.gridClass = openvdb.GridClass.FOG_VOLUME
    grid.name = 'density'
    openvdb.write('C:/Users/thoma/test/{0:02}_volume.vdb'.format(i),grid)

Viewing the individual vdb files shows that each frame is different. However, once loading all vdb files and scrolling through the timeline in Blender does not show the animation.

UNOFFICIAL
Hi,
From the blender 3D workspace, if you select Add-->Volume-->Import OpenVDB
Select all the VDB files you want to import as a sequence.
Once loaded, click on the dose object so that it is selected. Click the Object Data Properties tab on the right side (green cloud icon). In the OpenVDB File section, make sure sequence is enabled and type in the number of frames that are in the 4DCT. Change mode to Ping-Pong.
Hope that helps.
Cheers,
Michael
From: Thomas Olausson @.>
Sent: Thursday, 1 June 2023 5:27 PM
To: drmichaeldouglass/MedBlend @.>
Cc: Michael John James Douglass @.>; Comment @.>
Subject: Re: [drmichaeldouglass/MedBlend] Sequence support (Issue #5)
I have this dummy example inspired by your tutorial.
import h5py
import numpy as np
import pyopenvdb as openvdb
for i in range(0,15):
print(i)

grid = openvdb.FloatGrid()

Volume = np.zeros([30,30,30])

Volume[20:30,:,2] = 0.5

Volume[:,20,10:15] = 0.5

Volume[5:10,i:i+5,5:10] = i

grid.copyFromArray(Volume.astype(float))

grid.transform = openvdb.createLinearTransform([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]])

grid.gridClass = openvdb.GridClass.FOG_VOLUME

grid.name = 'density'

openvdb.write('C:/Users/thoma/test/{0:02}_volume.vdb'.format(i),grid)

Viewing the individual vdb files shows that each frame is different. However, once loading all vdb files and scrolling through the timeline in Blender does not show the animation.

Reply to this email directly, view it on GitHubhttps://github.com/drmichaeldouglass/MedBlend/issues/5#issuecomment-1571546346, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMSIJMYOKZZXW3P36BEYQDDXJBDN3ANCNFSM6AAAAAAXMRXMOE.
You are receiving this because you commented.Message ID: @.***>


Fix issue with GlobalOpenTelemetry in tests

This PR fixes issue with tests.

Added PreDestroy to the DefaultOpenTelemetryFactory.java. It will reset global openTelemetry if environment is Environment.TEST

Fix #150

@n0tl3ss I have done a commit with several changes:

Don't use ReactorHttpClient
Use @Requires spec.name to avoid bean pollution
Annotate controller with @produces(MediaType.TEXT_PLAIN) since it does not return JSON and supply accept header to the request.


Update sbt-scoverage to 1.9.3

Updates org.scoverage:sbt-scoverage from 1.9.2 to 1.9.3.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scoverage", artifactId = "sbt-scoverage" } ]

labels: sbt-plugin-update, early-semver-patch, semver-spec-patch, commit-count:1

Codecov Report

Merging #1901 (566c921) into main (0879843) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1901   +/-   ##
=======================================
  Coverage   86.33%   86.33%
=======================================
  Files          73       73
  Lines        2532     2532
  Branches      130      134    +4
=======================================
  Hits         2186     2186
  Misses        346      346

Impacted Files
Coverage Δ

...rc/main/scala/io/circe/numbers/BiggerDecimal.scala
88.30% <0.00%> (ø)

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 0879843...566c921. Read the comment docs.


how to save model with sklearn's joblib?

How to save model with joblib?
Environment info
Operating System: OS X 10.11.6
CPU: Intel Core i7
Error Message
ValueError: ctypes objects containing pointers cannot be pickled
For detail, please see https://gist.github.com/henry0312/7ae4ab3257152849819d84fca19f4108#file-gistfile1-txt
Reproducible examples
https://gist.github.com/henry0312/7ae4ab3257152849819d84fca19f4108#file-tset_gbm_joblib-py
Steps to reproduce

move the above example file into examples/python-guide
python  tset_gbm_joblib.py

Not support yet. I will fix it soon.

Are some codes like https://github.com/dmlc/xgboost/blob/master/python-package/xgboost/core.py#L671 needed?

Yes, but xgboost only has booster pointer, LightGBM has 3 parts of pointers: booster, train set and valid sets. Also class Dataset is kinda complicated.

I think dataset pointer can be deleted directly and rest is same as xgboost. I did it on my pickle branch. But with python build-in pickle module, the loaded model is a little different. Can you try if joblib works?

Saving models with joblib works fine, but predictions of loaded model aren't the same with those of before model.
(I updated the example, https://gist.github.com/henry0312/7ae4ab3257152849819d84fca19f4108#file-tset_gbm_joblib-py)

Saving models with joblib works fine, but predictions of loaded model aren't the same with those of before model.
(I updated the example, https://gist.github.com/henry0312/7ae4ab3257152849819d84fca19f4108#file-tset_gbm_joblib-py)

» python test_gbm_joblib.py
Load data...
Start training...
[1]	valid_0's l1:0.536072
Train until valid scores didn't improve in 5 rounds.
[2]	valid_0's l1:0.528484
[3]	valid_0's l1:0.521163
[4]	valid_0's l1:0.514374
[5]	valid_0's l1:0.508836
[6]	valid_0's l1:0.502996
[7]	valid_0's l1:0.497912
[8]	valid_0's l1:0.492616
[9]	valid_0's l1:0.487243
[10]	valid_0's l1:0.482528
[11]	valid_0's l1:0.478176
[12]	valid_0's l1:0.473355
[13]	valid_0's l1:0.469354
[14]	valid_0's l1:0.465396
[15]	valid_0's l1:0.46168
[16]	valid_0's l1:0.45808
[17]	valid_0's l1:0.454562
[18]	valid_0's l1:0.451392
[19]	valid_0's l1:0.448304
[20]	valid_0's l1:0.445538
[ 0.51777881  0.32673674  0.18207698  0.26050393  0.20691852]
Save model
Load model
[ 0.51777863  0.32673657  0.18207691  0.26050403  0.20691861]

» python test_gbm_joblib.py
Load data...
Start training...
[1]	valid_0's l1:0.536072
Train until valid scores didn't improve in 5 rounds.
[2]	valid_0's l1:0.528484
[3]	valid_0's l1:0.521163
[4]	valid_0's l1:0.514374
[5]	valid_0's l1:0.508836
[6]	valid_0's l1:0.502996
[7]	valid_0's l1:0.497912
[8]	valid_0's l1:0.492616
[9]	valid_0's l1:0.487243
[10]	valid_0's l1:0.482528
[11]	valid_0's l1:0.478176
[12]	valid_0's l1:0.473355
[13]	valid_0's l1:0.469354
[14]	valid_0's l1:0.465396
[15]	valid_0's l1:0.46168
[16]	valid_0's l1:0.45808
[17]	valid_0's l1:0.454562
[18]	valid_0's l1:0.451392
[19]	valid_0's l1:0.448304
[20]	valid_0's l1:0.445538
[ 0.51777881  0.32673674  0.18207698  0.26050393  0.20691852]
Save model
Load model
[ 0.51777863  0.32673657  0.18207691  0.26050403  0.20691861]

The reason is discussed in #151 , related to float and double precision. I think they are same model since gbm.get_params() == gbm2.get_params().

The reason is discussed in #151 , related to float and double precision. I think they are same model since gbm.get_params() == gbm2.get_params().

related to float and double precision

I got it :)

related to float and double precision

I got it :)


Mouseover

Add mouseover text to cards showing at least the card name.
Gatherer and images were down or partially down, and the site is non-functional.
This will also increase accessibility.

+1 for a11y.

sounds good. @tritoch you have commit access, go for it, add an alt  attribute to the cards.

Alt added


spawn pnpx ENOENT

While running npx svelte-add tailwindcss , I get the following error:
 errno: -4058,
  code: 'ENOENT',
  syscall: 'spawn pnpx',
  path: 'pnpx',
  spawnargs: [
    '--yes',
    '--ignore-existing',
    'apply',
    'svelte-add/tailwindcss',
    '--jit',
    'false',
    '--no-ssh'
  ]

I figured there might be something wrong with my environment since I also happen to have pnpm installed and tried running:
pnpx svelte-add tailwindcss but still end up with the same error.
Command was running fine yesterday though, must have been caused by recent updates.

Wait, are you on Windows? This may be related to https://github.com/ionic-team/capacitor-angular-toolkit/pull/11/files

I get the mentioned error on Windows too. Following this linked pull request indeed solves it. Hold tight while I fix this; it might take a few hours or days given that I want to do it properly.

Hold tight while I fix this; it might take a few hours or days given that I want to do it properly.

Is there a workaround for this in the meantime?

Hold tight while I fix this; it might take a few hours or days given that I want to do it properly.

Is there a workaround for this in the meantime besides without a virtual machine?

There is no workaround, so let's hope I can get this done within this hour.

This fix works for me. Thanks for the report and patience!

@babichjacob Thank you so much for your work, you were incredibly quick in figuring this out and fixing it! Please know that this is really appreciated.


Trying to upgrade from v2.0.1 to v2.0.10 and get error on migration.

I ran composer update and then php artisan tracker:tables then when I migrate those changes, I get this error...
[Illuminate\Database\QueryException]
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1
  000 bytes (SQL: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max
   key length is 1000 bytes (SQL: alter table `tracker_languages` add unique `tracker_languages_preferenc
  e_language_range_unique`(`preference`, `language-range`)))

  [PDOException]
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1
  000 bytes

Also get this error when viewing the tracker!
DataTables warning: table id=table_div - Ajax error. For more information about this error, please see http://datatables.net/tn/7
which shows this in the console...
jquery.min.js:25 GET http://localhost:8888/admin/stats/api/visits?draw=1&columns%5B0%5D%5Bdata%5…art=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1472134792927 500 (Internal Server Error)

Was fixed by changing DB engine to InnoDB


Service Fabric Mesh templates

This adds SF Mesh templates (and deployment instructions) for PortabilityService gateway and config service.

@mjrousos can you reopen this with a branch on the Microsoft fork?

Sure. Re-opening...


Install dandi archive plugin from github with a sha

Fixes #20

PR looks reasonable, the CI checks failed though, is that expected?
Less code is better! minus 14 LoC.


POM issue fix

POM issue fix

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@017adec). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #4   +/-   ##
=========================================
  Coverage          ?   75.14%
  Complexity        ?      209
=========================================
  Files             ?       15
  Lines             ?     1054
  Branches          ?      102
=========================================
  Hits              ?      792
  Misses            ?      229
  Partials          ?       33

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 017adec...fcbd5f2. Read the comment docs.


The GUID commented out items show.. (with how to fix)

in the GUID files programs_to_target_by_GUID.txt there are GUIDS that are commented out need to have a space after the :: or it will still show them/attempt to remove them too..
i would also have a space after the section spectator thing too.. the prep title thing and the guid list thing too
Example
 ::{07F2005A-8CAC-4A4B-83A2-DA98A722CA61} (Currently)
:: {07F2005A-8CAC-4A4B-83A2-DA98A722CA61} (Should be)

Closed due to me sending pull req with fixed items


Trail for characters

What is your question?
How do i add a trail event to get ghost animations like in mid-fight masses using .lua

A script like that is on the psych engine discord server, though I can't send you the link now, it's easy to find.

This is what you're looking for (I don't know how to link to message)

where can I get it?

Where can I get the link to that server?

Where can I get the link to that server?

https://discord.gg/2ka77eMXDv

https://discord.com/channels/922849922175340586/922851578996744252/985339093451960391
Youre welcome :D

https://discord.com/channels/922849922175340586/922851578996744252/985339093451960391
(I dont think it went through the first time...)

I made an update for a script @ShadowMario made! Click here for discord post

It's a lot better than the ghost animations thing

no offense to the creator of that script


Add ColumnTypeScanType supports

I'm developing a Backend as a Service (BaaS) and planning to change the SQLite driver to go-sqlite3. However, I have encountered some challenges:
1. Raw Query Execution Without Knowing Column Types
Example:
db.Query[T](ctx, client, "SELECT * FROM categories WHERE id = ?", 5)

In this case, T could either be a struct or an ordered map. If T is an ordered map, there is no way for db.Query to prepare the target values slice.
For instance:
entities, err := db.Query[*entity.Entity](ctx, client, "SELECT * FROM categories WHERE id > ?", 1)

To resolve this, implementing the following function would help by providing the column scan types:
func (r *rows) ColumnTypeScanType(index int) reflect.Type

2. Lowercase declType Causes Date Parsing Issues
The issue arises when calling column.ScanType. The driver invokes rows.ColumnTypeDatabaseTypeName and rows.ColumnTypeNullable. Both of these functions call rows.loadTypes, which retrieves the column type from the table but does not convert it to uppercase.
This results in the decodeTime function ignoring actual date fields.
To resolve this, uppercase the declType in TableColumnMetadata.
https://github.com/ncruces/go-sqlite3/blob/main/driver/driver.go#L693

The to ToUpper change seems like a good idea.
The ColumnTypeScanType I'm inclined to say is a bad idea. I'll definitely need some convincing.
SQLite is famously dynamically typed. What happens when the "wrong" type is stored in a column, and it can't be converted to the scan type?

Thinking again I'm not sure I want to do ToUpper in TableColumnMetadata. I'm pretty sure that I don't: package sqlite is an SQLite wrapper, it should as much as possible work as C SQLite.
But it should definitely be added to func (r *rows) loadTypes() to make it consistent with func (r *rows) declType(index int) string:
types[i] = strings.ToUpper(types[i])

Please look at this:  https://github.com/golang/go/blob/master/src/database/sql/driver/driver.go#L465-L468
// RowsColumnTypeScanType may be implemented by [Rows]. It should return
// the value type that can be used to scan types into. For example, the database
// column type "bigint" this should return "[reflect.TypeOf](int64(0))".
type RowsColumnTypeScanType interface {
    Rows
    ColumnTypeScanType(index int) reflect.Type
}

And this:
https://github.com/golang/go/blob/master/src/database/sql/sql.go#L3284-L3285
if prop, ok := rowsi.(driver.RowsColumnTypeScanType); ok {
  ci.scanType = prop.ColumnTypeScanType(i)
}

This method provides a way to retrieve scan information. Most SQL drivers implement it:

https://github.com/jackc/pgx/blob/ac0b46f2f9538baa74aeac931d97884e5b9c924d/stdlib/sql.go#L654-L680
https://github.com/go-sql-driver/mysql/blob/master/rows.go#L96-L98
https://gitlab.com/cznic/sqlite/-/blob/master/sqlite.go?ref_type=heads#L420-450

You are correct that SQLite is dynamically typed. It also supports type affinity, which associates a declared type with its corresponding storage class. The type name is primarily for SQL compatibility.
Reference: https://www.sqlite.org/datatype3.html#affinity_name_examples

What happens when the "wrong" type is stored in a column, and it can't be converted to the scan type?

If a type cannot be converted to a Go type, it typically indicates an incorrect column definition. According to the SQLite documentation sections "3.1. Determination Of Column Affinity" and "3.1.1. Affinity Name Examples", all SQLite types should be convertible to a Go type.
If a Go type cannot be determined from an SQLite type, using reflect.TypeOf(any(nil)) should suffice. Without implementing ColumnTypeScanType(index int) reflect.Type, an ORM lacks information about column types and defaults to using []any, which is not a recommended practice.

I know other drivers implement this. For databases like PostgreSQL and MySQL that's easy, because they're typed. For SQLite it's not, and I'm not sure I agree with other SQLite drivers doing this the way they do.

If a type cannot be converted to a Go type, it typically indicates an incorrect column definition. According to the SQLite documentation sections "3.1. Determination Of Column Affinity" and "3.1.1. Affinity Name Examples", all SQLite types should be convertible to a Go type.

All SQLite types are convertible to a Go type. But a column with declared type REAL can have a row with the text "I love cake". In SQLite values have a type, columns don't. You may consider this “an incorrect column definition” but, as far as SQLite is concerned, it is not. So what happens if the scan type is float64, and the value is "I love cake"?
For me to add this, I need to be:

sure it doesn't break other workflows
convinced it's the best way to do it

Can you give me a minimal, complete, verifiable example of something that works less than ideally without something like this? I mean a repo, with an example, maybe using an ORM, IDK, that doesn't work like you want it. Then I can see if I can improve things (including compatibility with other SQLite drivers) without breaking things that should work well because SQLite is dynamically typed.
I don't want to fight SQLite. I don't want to coerce it to be like other databases. So I'm actually proud of being incompatible with other drivers in certain places. I honestly think my time handling is better than SQLite other drivers, for example.

What your tests does while you are worrying about breaking things?
If you are pleasure with "actually proud of being incompatible with other drivers in certain places", it's okay.
The last question without needing an answer, do you ever have a REAL column with value "I love cake"?

You closed this, I didn't.

What your tests does while you are worrying about breaking things?

I don't know what ColumnTypeScanType is typically used for. I'm not sure what changes if it's implemented. I think it's OK to ask for usage examples. But I'll look around if you're unwilling to provide them.

If you are pleasure with "actually proud of being incompatible with other drivers in certain places", it's okay.

The two most popular drivers (modernc and mattn) are incompatible between themselves in this (and many other ways):

modernc, which you linked to, decides scan type based on the values of the "current" row retuned by the query: not the declared type of the column, but the type of the value in the "current" row (which I assume will mostly be the "first" row); only for integer values (of all types) does it look at the declared type to see if it might be a timestamp (so a unix timestamp will work, but RFC 3339 won't, why?)
mattn, which is here, does look at the declared type; it pays no attention to affinity rules, it maps certain declared types to certain scan types, and always uses reflect.TypeOf(sql.NullSomething{}); why?

Your solution, this PR, is incompatible with both. But that's OK. Their implementations make no sense, and I value correctness more than compatibility. I just want to be convinced that whatever I merge is correct, because once I do I need to consider backwards/forwards compatibility with myself.

The last question without needing an answer, do you ever have a REAL column with value "I love cake"?

That's not up to me. I don't make all the databases my driver will be used with, as you can imagine. SQLite allows it is all I know.
Also do understand that declared types in SQLite are know to be problematic. For example if you want to use the decimal extension to support decimal math (e.g. on money) you can't type your column DECIMAL. As the devs put it: "that is lamentable", but it is what it is.

Yes, I closed the PR.
The uppercase bug was fixed in your recent commit. However, ColumnTypeScanType still requires more discussion, so this PR might not be usable as is.
If you believe we can't rely on the column type declaration to determine the scan type, value.Dup().Type() could be helpful since it represents the actual type of the column value. In cases where the column value is NULL, value.Dup().Type() will return NULL. Using declType in such cases might provide a solution.
I’ll share an example of how ColumnTypeScanType can be used when I have time to create a minimal sample.


Issue on page /msa/progressive.html

11.1.2: Extra space in "alignment ." in sentence "Particularly iterative approaches, such as progressive alignment ."
11.2.1: Spelling error "Lests" in sentence Lests assume you start with..."
//Julia Nyman

Thanks!
Fixed in f005f5f154d8e3836abe724947489cd696d9df63


Description needs to be fixed length.

-Description needs to be fixed length.

-Verified this issue on staging app v1.4.5(228)


Let's Deploy it

https://www.youtube.com/watch?v=s6Xi7x4G7yg

Thank you for your reference link but to deploy I have considered using Flask framework instead of Django.


PHP: Remove 5.6 compatibility code

Context

Summary
After increasing our minimum required PHP version to 7.0, we can remove any code that was previously needed to make it work on 5.6.
Relevant Technical Choices
I review these documents and didn't find anything to be an issue.
https://www.php.net/manual/en/migration70.php
https://www.php.net/manual/en/migration70.new-features.php
To-do

User-facing changes

Testing Instructions

QA

[ ] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:

UAT

[ ] UAT should use the same steps as above.

This PR can be tested by following these steps:

Reviews
Does this PR have a security-related impact?

Does this PR change what data or activity we track or use?

Does this PR have a legal-related impact?

Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This PR contains automated tests (unit, integration, and/or e2e) to verify the code works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #7595

Note: also found the following comment in the namespace.php file:
Throws an error if the site is running on PHP < 5.6
Probably this should be changed to 7.0 now? Not sure in which PR.

I have reverted the change. To be honest, I am not sure I see the benefit of changing these changes here. They are not exactly to our codebase, it more the template plugin. This PR is much more simple now.


Fix QUIC on Apple platforms when using dual-stack sockets

Apple will kindly return IPv4 addresses to us for dual-stack socket connections that come in over IPv4, but wants IPv4-mapped IPv6 addresses back.
Introduced platformIsApple() to hoist the preprocessor check for APPLE into C++ itself and allow it to be used in conditionals.
Risk Level: low
Testing: local testing on macOS
This probably wants a test to validate dual-stack behavior across various platforms.

should this be unified with the forcev6 macros in https://github.com/envoyproxy/envoy/blob/main/source/common/network/address_impl.cc#L51

That implies you would ever want to turn it off, which I maintain that for __APPLE__ when the socket is AF_INET6 and dual-stack, you never do.


Alternative syntax for method calls - changes foo#bar to foo..bar.

Fixes #523
Also related to #366

I'd like to hear what others think of this.

I'm new here, and to OCaml, but this seems very counter intuitive to me. I'd expect it to be a range, but not a method call. I think I might have seen someone suggesting ::, imho that'd be a better option.

@tadeuzagallo Agree on that it looks like a range, however using :: makes it look like a list.

@SanderSpies Oh, didn't think about it. I guess I wouldn't use :: for lists either, but that's probably out of the scope of this diff.

@SanderSpies Thanks for implementing this. foo..bar actually looks confusing to me (more like a range as suppose to method selection). Maybe -> looks better?

@yunxing looks good to me.
@tadeuzagallo what do you think?

I am following activity on reason and see many proposals for syntax changes that are "local" (in the sense that they consider one syntactic construction at a time). Yet, those changes have ramifications on other changes (e.g., this one on #581, #523).
reason has some traction, and it would be nice not to confuse people more by making changes to the syntax that turn out to be blocking for something else. Would it make sense to discuss changes to the syntax more globally, through appropriate channels (for instance, using a single issue, rather than many different ones)?
Also, as I pointed out in #557 (and was pointed out independently in #568), it would be nice if the changes in the reason syntax did not make the code not-understandable by people accustomed to the OCaml syntax (or less compatible in a sense).

One thought: if :: looks like a list, then named arguments already have that problem! However, :: only resembles a list to people who use OCaml daily.
@braibant : Many of these proposed changes are just pull requests, many of them don't arise from any official discussions - they're just people getting their ideas out there in the best possible way - code. We welcome pull requests, even if they're silly or just a means of learning. When syntactic changes like this are very local, and have ramifications to the wider syntactic real estate, that will come up in discussion on the diff and it's a really great way for people to learn. So I'd say we can take individual, smaller PRs with a grain of salt and people who send them understand this as well. Then, in addition to that, as you suggested, we should have larger, more holistic conversations for big topics such as "named arguments" (you can see we have existing threads for those which cover a ton of edge cases and considers how it effects the entire grammar).
I am curious about one comment you made - that making the syntax immediately recognizable to OCaml programmers should be a goal. I agree it would be nice, but surely that comes at the cost of making it more difficult to recognize for non-OCaml programmers. If we have to choose one of those audiences to cater to, which one do you suggest and why? A few things to consider:

There are 99 non-OCaml programmers for every 1 OCaml programmer.
OCaml programmers eat new programming languages for breakfast and can learn them very quickly - many OCaml programmers use OCaml to implement new languages.
OCaml programmers already have a syntax that they love, correct?

What about ->? It might look like a pointer dereferencing for low level folks, but at least myObj->method1->method2 won't look too out of place. OCaml folks might hate it though because it looks like a type declaration :/

Thanks for the ideas, @bsansouci!
Another extreme idea I had thrown around earlier was that records would look more like variants, in that they have all leading capital letters. It makes sense when pattern matching or creating variants with records inside - capitals become the visual language for "pattern matchable thing":
let somePoint = Some {X: 0, Y: 100};
let res = switch {
  | None => 0
  | Some p => p.X + p.Y
};

let myObject = {
   myMethod: fun a b => a + b,
   private myPrivateMethod: fun a b => a + b
};
let result = myObject.myMethod 10 20;
let result = myObject.myPrivateMethod 10 20;

I decided against it because records are faster than objects (a better default) and it makes punning weird (X is punned to x). Instead, I leaned more towards coming up with a proposal for minimally extensible records that would retain performance, but satisfy many of the use cases for objects, and then I'd be less concerned with how ugly objects were.
Just my current thoughts, that I'm totally flexible on.


⚠ Bofrost.es has degraded performance

In 29a2e58, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1647 ms

Resolved: Bofrost.es performance has improved in 237e66b after 6 minutes.


[iOS] xcode build take very long time after changes to pubspec.yaml

This only happened on a new Flutter project but I'm not sure which Flutter version exactly. Currently, I using Flutter 3.0.1.
Steps to Reproduce

Create a new flutter application project.
Add some flutter plugins, I using firebase plugins.
Run the app. It will take long time depending on internet speed during pod install.
After app running, stop it.
(Optional) we can run app again, the build speed will be faster than before, in my machine it takes about 30 secs.
Add another flutter plugins, in my case I add image_picker.
Run the app, it will take long time again. In my machine it takes about 1200 - 1400 secs.

Expected results:
The xcode build system should be faster.
Actual results:
The xcode build system take very long time.

Code sample

Logs

Here is my flutter doctor
Last login: Sat May 21 09:05:10 on ttys000
ekasetiawans@MacBookPro ~ % flutter doctor -v
[✓] Flutter (Channel stable, 3.0.1, on macOS 12.4 21F79 darwin-x64, locale en-ID)
    • Flutter version 3.0.1 at /Users/ekasetiawans/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fb57da5f94 (29 hours ago), 2022-05-19 15:50:29 -0700
    • Engine revision caaafc5604
    • Dart version 2.17.1
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/ekasetiawans/Library/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/ekasetiawans/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.67.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.40.0

[✓] Connected device (3 available)
    • iPhone 13 Pro (mobile) • 516B7390-751E-4471-8656-4407E74A84AA • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-4 (simulator)
    • macOS (desktop)        • macos                                • darwin-x64     • macOS 12.4 21F79 darwin-x64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 101.0.4951.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
ekasetiawans@MacBookPro ~ %

The normal run without changes to pubspec.yaml

After changes to pubspec.yaml

I have tested using my old project with the same flutter version and the issue doesn't happened. I mean, it still take longer time after changes to pubspec.yaml, but not significantly, the difference is only about 10-30 secs.

There are a lot of clang processes running during the build process.

Hi @ekasetiawans, thanks for filing the issue.
I tried running a simple project several times with below logs:

First time

Pre-install dependencies:

http: ^0.13.4
image_picker: ^0.8.5+3
google_maps_flutter: ^2.1.5
google_maps_flutter_web: ^0.3.2+2
google_maps_flutter_platform_interface: ^2.1.5
vector_math: any
video_player: ^2.4.2

Result

Launching lib/xcode_build_104307.dart on iPhone 13 in debug mode...
Running pod install...
Running Xcode build...
Xcode build done.                                           24.6s
Debug service listening on ws://<IP_ADDRESS>:55532/vZiA7uPF1RU=/ws
Syncing files to device iPhone 13...

Second time

After adding more firebase dependencies:

http: ^0.13.4
image_picker: ^0.8.5+3
google_maps_flutter: ^2.1.5
google_maps_flutter_web: ^0.3.2+2
google_maps_flutter_platform_interface: ^2.1.5
vector_math: any
video_player: ^2.4.2

firebase_core: ^1.17.0
firebase_crashlytics: ^2.8.0
firebase_in_app_messaging: ^0.6.0+14

Result

Launching lib/xcode_build_104307.dart on iPhone 13 in debug mode...
Running pod install...
Running Xcode build...
Xcode build done.                                           110.7s
Debug service listening on ws://<IP_ADDRESS>:57098/s1aoscnXP8g=/ws
Syncing files to device iPhone 13...

Third time

Dependencies list same as the second time:

http: ^0.13.4
image_picker: ^0.8.5+3
google_maps_flutter: ^2.1.5
google_maps_flutter_web: ^0.3.2+2
google_maps_flutter_platform_interface: ^2.1.5
vector_math: any
video_player: ^2.4.2

firebase_core: ^1.17.0
firebase_crashlytics: ^2.8.0
firebase_in_app_messaging: ^0.6.0+14

Result

Launching lib/xcode_build_104307.dart on iPhone 13 in debug mode...
Running Xcode build...
Xcode build done.                                           16.7s
Debug service listening on ws://<IP_ADDRESS>:57449/2Jf5oBsc9MQ=/ws
Syncing files to device iPhone 13...

On subsequent attempts, every time I try adding more dependencies to pubspec.yaml, the build time was increasing, but it was decreasing again after rebuilding (without changing pubspec.yaml)

My host machine:

MacOS Monterey, 12.2.1
2 GHz Quad-Core Intel Core i5
16 GB 3733 MHz LPDDR4X
Intel Iris Plus Graphics 1536 MB
500 GB Flash Storage

Sample code

import 'dart:typed_data';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'dart:ui' as ui;

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Image Capture Bug',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final key = GlobalKey();
  Uint8List? imageBytes;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Flutter Image Capture Bug'),
      ),
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.save),
        onPressed: () async {
        },
      ),
      body:  Center(
        child:  Image.network(
          "https://picsum.photos/200/300",
          height: 300,
          width: 200,
        ),
      ),
    );
  }

}

There are some similar issues here: #27771, #37582. But they seem to be related only to cloud_firestore.
Please share a completed and minimal reproducible code sample along with the output of flutter doctor -v to investigate this issue further. And also share your host machine info.

@huycozy thank you for the response. I will try to confirm whether this issue is related to these issues or not.


Provide command to show experiment only.

Currently, if user wants to look an experiment result, it have to use nnictl resume. It does some validation, and easy to fail. There should be a command like nnictl view experiment to start webui for view only.

@rabbit008 - please investigate and make a proposal for team discussion.

This would be a great feature to have! The major problem with nnictl resume for viewing previous experiments via WebUI is that it starts new trials as well if the experiment has been terminated prematurely.

Thanks @mys007  for the feedback, we are also collecting feedback for experiment comparision, would you like to share your view as well? https://github.com/microsoft/nni/issues/1529.

@squirrelsc If users use nnictl view experiment, should we let users change experiment parameters using webUI or nnictl command?

@squirrelsc If users use nnictl view experiment, should we let users change experiment parameters using webUI or nnictl command?

It depends. In general, when viewing an experiment, the experience data should be readonly. It means nothing is saved back to storage. But if there is any parameter impacting how an experiment showing, it could be able to changed. If there are some examples, feel free to let me know.

#1524


Minimize the use of floating point arithmetic

Hi,
We're currently developing on the new ARMADA380 architecture for FreeBSD.
During the checks of the L2 cache activation, we use your tool that is very useful.
However, FreeBSD 10.3 lack the support of hard-float, so all the computations of the memory bandwidth include the soft-float computation. It results bad value (and some stress :) ) and hours to search why the memory is so slow.
Can you look to minimize as possible the use of floating point arithmetic during the bench phases ?
Thank you
Alexandre Martins

But the use of floating point calculations should be already pretty much minimal. They are also mostly done outside of the critical loops, except for the getime() function. Why do you think that it is a problem?

Could you please share your current logs? It is quite possible that the reported values are actually normal. Also as a test, you could try to hack the gettime() function and change it to do twice (or even 10x) more work, then check whether this affects the reported values.

Hi
I made a small patch to check if the soft-float is really performance cost.
patch.txt
We won some Mb/s but not so much.
Feel free to integrate that (or not :) )

How big was the difference? I just don't like integers for this kind of calculations because they tend to overflow. And if it happens, then we get really bogus results.

The difference was about ~3%. (go from 380 Mb/s to 390 Mb/s)
The fact that ualarm is not accurate is not an issue. In my case, the loop run about 0.6 seconds (far of 0.5 asked) in both case. The timer t1 and t2 give us the true start and stop so the value is still accurate.


Unlisted Pages

Describe the feature you'd like
This is similar to YouTube's "unlisted" videos - they are accessible via link, but don't show up in Search Results or Recommendations.
A page that is "unlisted" would not show up in Search Results, would not show up in "Recently Updated" blocks, the "Recently Updated Pages" page, or the "Popular Pages" block. It would still be accessible via link and still accessible via the Book page or Chapter page (assuming user has access to the Book/Chapter, and has access to view the Page).
Describe the benefits this would bring to existing BookStack users
For the last year or so I've been using BookStack as my own personal Wiki for note-taking and keeping records. Many times, I want to share a link to a specific page for others to reference or use. However, I'd like to do that without exposing other pages.
I may have made page A public to share with group A, and page B public to share with group B... but I don't necessarily want group A to see page B or vice versa.
I've run into this several times in the last year, and I got "close enough" by making chapters and books and shelves not public (i.e. hiding the internal hierarchy from being navigated).
Can the goal of this request already be achieved via other means?
No
Have you searched for an existing open/closed issue?

[X] I have searched for existing issues and none cover my fundemental request

How long have you been using BookStack?
6 months to 1 year
Additional context
Because of my need for this feature, I I have implemented it on my Local Instance via an additional column unlisted on the pages table and a checkbox on the Permissions page with various updates to Search, Recently Updated and Popular blocks. I would not mind refining it and opening a PR if the feature is desired, or even extending it to Books, Shelves, Chapters if that's desired.

Hi @morcousw,
Thanks for the clear request.
Although a different implementation idea, would the feature requested in #288 essentially cover your fundamental need here?

Yes that would absolutely cover the need!


Add R example to Tools lession

I've added an example of a test file for the testthat framework in R, along with the console output, to the Tools lession (03-frameworks).
I've also updated the link to the testthat GitHub repo, as it now belongs to r-lib, not hadley.
This PR resolves #38

Amazing - thank you so much!