Relationship "is parent of" include tab of children on parent?

When we use "is parent of" relationships, the child gets a select field where they can choose from a list of parents. If we then go to edit the parent, there is no left tab that contains a list of children entities.
Was this not included as part of the relationship for a reason?

@pljspahn This is not included because it's not mandatory.
If you want to see the child entities for a specific parent entity, use the main grid and filter by parent entity. If you want to bulk assign child entities to a parent entity, use the main grid mass action.
There is no plan to implement this in the next releases.

Ah! Mass action on the grid! I missed that.


HVAC-MODE Fan Only?!

I think it's an excellent idea to have a fan-only mode.

Could you elaborate on the use case, please? At this point, you can already set a fan switch as a cooler or heater.

@swingerman I love your work on this and it has enabled me to properly use my custom thermostat using several relays. Thank you!
I also have a need to add fan controls to your climate element. My HVAC system (as most others do in the US) have independent fan controls to cycle the house air for filtering or humidity control; without using the heating or cooling elements.
Lovelace Thermostat cards have support for controlling the fan independently from cooling or heating modes as seen in this pic of the Simple Thermostat HACS Card. I believe the default lovelace thermostat even has some native fan controls.
Any chance you could get this functionality implemented into your awesome dual smart thermostat?

@GloriamSemper yes. I will look into the fan controls.

A separate switch will be needed for the fan. And a setting for how many degrees difference would be considered for fan mode.
Now the question arises:
Should we automatically switch between modes?
OR
It should be completely manual.
@rrterrorr
@GloriamSemper

Hi there,
I think it would be useful if you have the option to check at what
temperature the fan mode can be turned on... I now have it in an automatic
routine. It would be nice if this was in the Climate Control. Personally, I
would be shocked by the button alone. Better with temp control always
welcome I guess
Greetings Remo
Op wo 20 dec. 2023 11:51 schreef Miklos Szanyi @.***>:

A separate switch will be needed for the fan. And a setting for how many
degrees difference would be considered for fan mode.
Now the question arises:
Should we automatically switch between modes?
OR
It should be completely manual.
@rrterrorr https://github.com/rrterrorr
@GloriamSemper https://github.com/GloriamSemper
—
Reply to this email directly, view it on GitHub
https://github.com/swingerman/ha-dual-smart-thermostat/issues/47#issuecomment-1864263557,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYUHZILIHCEPUO5BK7RWMSLYKK7MXAVCNFSM6AAAAAASSZV4MWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRUGI3DGNJVG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Another advantage of having a fan switch is that some (most?) central AC systems require the thermostat to turn on both the AC wire ("Y" wire) and the air-handler/fan wire ("G" wire) in order to activate the AC.  Currently, I do this programmatically in Home Assistant, but it would be great if one could enable a fan-switch entity in this virtual thermostat and an option to automatically activate it whenever the cool-switch entity is activated.  Two birds with one stone (it would enable stand-alone fan capability and broaden compatibility with central AC systems).

Good news. I am about to finish the fan mode feature and prepare for a beta release.
I now have a dilemma regarding hot_tolerance.
How would that affect when the fan turns on?
Here is a use case:
current temp = 27
target temp = 24
hot_tolerance = 2
fan_hot_tolerance =1
So usually, the AC will turn on above 26 as the hot_tolerance is 2.
When should the fan turn on/off based on whether the temperature rises or downs?

Is it clear that fan mode should be activated/deactivated by temperature at all? Don't most thermostats just allow one to turn the fan on or off (possibly simultaneously with heat and cool), possibly with a timer?
Also, as I mentioned in my post above, I think there should be an option to activate the fan automatically with cooling, since that's how most physical thermostats work. That is, they don't just activate the Y (cooling) wire when there's a call for A/C; they activate both Y and G (fan) wires. This is unlike heating, when only the W wire is activated. HVAC systems expect this behavior.

Thanks @NYZack. You will have that option but it seems that there is a need for a smart solution as well

For now, I am leaning toward respecting the hot tolerance, meaning within hot_tolerance, nothing will be on. Outside hot_tolerance but within fan_hot_tolerance, we use a fan. Otherwise, we use the AC

The feature is out in beta: https://github.com/swingerman/ha-dual-smart-thermostat/releases/tag/v0.9.6.beta-2

@NYZack
example
heater: switch.study_heater
ac_mode: true
fan: switch.study_fan
fan_on_with_ac: true

That's great. I don't know how complicated you want to make this, but some thermostats also have the option to run the fan for some time after the AC goes off, to take advantage of the coldness left in the coils after the AC turns off.  For instance, maybe fan_on_with_ac could be set to -1 if you don't want the fan to run with the A/C, and it could be set to n (a non-negative number) if you want the fan to run with the A/C and for n seconds after the A/C turns off.

It seems to be a helpful feature against mould build-up.


VMs cannot be launched with pinned CPU cores when using QEMU in snap package

Required information

Distribution: Ubuntu
Distribution version: 20.04
The output of "lxc info" or if that fails:

Kernel version: 5.4.0-88-generic
LXC version: 4.0.10
LXD version: 4.19
Storage backend in use:

Issue description
When launching a VM with pinned CPU cores when using LXD from the snap package, the launch fails with the error:
lxc launch images:ubuntu/20.04/cloud v1 -c limits.cpu=0-1 --vm
...
/var/snap/lxd/common/lxd/logs/v1/qemu.conf:42: Invalid parameter type for 'host-nodes', expected: array

Extract from qemu.conf with relevant section:
# CPU
[smp-opts]
cpus = "2"
sockets = "1"
cores = "2"
threads = "1"

[object "mem0"]

qom-type = "memory-backend-memfd"
size = "1024M"
host-nodes = "0"
policy = "bind"

[numa]
type = "node"
nodeid = "0"
memdev = "mem0"

Steps to reproduce

lxc launch images:ubuntu/20.04/cloud v1 -c limits.cpu=0-1 --vm

Information to attach
This issue doesn't occur when using a LXD build outside of the snap package using the QEMU 5.2.0 version from the OS, suggesting this is a regression in the bundled QEMU 6.1.0 that is included in the snap.

@stgraber I've spent the morning looking into this issue and have found the following things:
We should be able to use QMP to add the memory object using a command like:
{"execute":"object-add","arguments":{"id":"mem0","qom-type":"memory-backend-memfd","host-nodes":[0],"size":1024000000,"policy":"bind"}}

However because we need this object to exist before the CPUs are added, we would also need to move the CPUs to be added via QMP. I've not looked into that aspect yet as I got hit by another issue.
On my Focal machine running QEMU 4.2.1 the object-add command fails with an error like:
{"error": {"class": "GenericError", "desc": "Parameter 'host-nodes' is unexpected"}}

Even the example object-add command from the QEMU docs failed with a similar error:
{ "execute": "object-add", "arguments": { "qom-type": "rng-random", "id": "rng1", "filename": "/dev/urandom" } }`
{"class": "GenericError", "desc": "Parameter 'filename' is unexpected"}}

Chatting on the #qemu IRC channel the issue became apparent, is that the object-add syntax changed between 4.x and 6.0.
In 4.x the format was:
{ "execute": "object-add", "arguments": { "qom-type": "rng-random", "id": "rng1", "props": { "filename": "/dev/urandom" } } }

And the new format was introduced in 5.x, and in 6.0 the old format was removed.
So I wanted to park this for now and ask you the following questions:

Do you want me to proceed further with moving the CPU and Memory options into QMP or shall we just add the memory object via the command line args?
Assuming answer to 1. is use QMP, shall we drop support for QEMU 4.x (which LXD currently works with in Ubuntu Focal) and just use the newer object-add format, or shall we dynamically switch between formats?


[FLINK-24413] Apply trimming & padding when CASTing to CHAR/VARCHAR

What is the purpose of the change
Apply trimming when CASTing to CHAR(<precision>) or VARCHAR(<precision>)
and the length of the result string exceeds the precision specified.
Apply padding to the right with spaces when CASTing to CHAR(<precision>)
and the result string's length is less than the specified precision, so
that the length of result string matches exactly the precision.
Verifying this change
This change added tests and can be verified as follows:

Added tests in CastRulesTest to cover cast to CHAR/VARCHAR with and without legacy behaviour
Modified tests in CastFunctionITCase

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving):  no
The serializers:  no
The runtime per-record code paths (performance sensitive):  no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper:  no
The S3 file system connector:  no

Documentation

Does this pull request introduce a new feature?  no
If yes, how is the feature documented? not applicable

@twalthr Thx for review, please check again.

@twalthr Thx, please check.


feat(locker): Track the liquidity locked by token address

The first MVP is supposed to be launched without a backend (i.e. no indexer).
However, the typical way to check whether a LP token has been locked is to search by its token address. If we do not index the TokenLocked events, we can't know if a token has been locked or not efficiently.
As such, we should implement a tracking mechanism - similar to the one that exists to track LP locked by user - but by tokens.
Steps:

Add a storage variable token_locks that maps ContractAddresses to a List (internal IDs)
Add  token_locks_length and token_locked_at entrypoints
refactor remove_user_lock into remove_lock_from_list(self: @ContractState, lock_id: u128, list: List<u128>

remove_lock_from_list will remove the id of a lock from the list of locks supplied as parameter. The implementation doesn't change, instead of doing let mut list = self.user_locks.read(owner) inside the function, we will do it before calling the function, and we will pass the correct list instance to remove_lock_from_list.
Of course, you will adapt the test accordingly

Hello Eni, I'd like to take this up.


shape of offset profiles is inconsistent

The first element of the output shape of, say, surface_density, is R.size, but this is the last element of the output shape of offset_surface_density. I'm not sure why this happens since this should be handled in the array decorator.

not sure when this changed but now Roff is the first dimension and Ris the second dimension. I think this is a good way to do it because then iterating over the first dimension of the result of offset gives an array with the same shape as the non-offset profile


Add data table

Integrate a DISK Cache Create/Update/Delete (CRUD) UI...

Add a data table to show the current disk caches registered with the system

!story G15.1
!component tile server

This has been completed


Fix options auto complete

Summary
The options property was declared in the base primitive class and returned the generic BaseOptions. This breaks auto-complete as it only covered fields in BaseOptions (which has nothing).
This PR updates the return type to be the one used by sampler or estimator.
Details and comments
Fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
To ensure accuracy in future PRs, please see these guidelines.
A quick fix for this PR: rebase it; your next report should be accurate.

0 of 8 (100.0%)  changed or added relevant lines in 3 files are covered.
39 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.1%) to 80.115%

Files with Coverage Reduction
New Missed Lines
%

qiskit_ibm_runtime/utils/json.py
39
76.95%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
5302

Relevant Lines:
6618

💛  - Coveralls


better support for airgap mode 'exists', secure rke2 token by default, allow setting rke2_node_name, implement local artifact download and push to remote fallback

Description
There's a bunch of stuff in this commit. I realize it could have been multiple pull requests. Sorry about that.

added better support for airgap mode 'exists' in rke2.yml
deprecate rke2_snapshooter spelling error
secure rke2 token by default
fix indent of registries config (broke with tls_no_verify set)
allow setting rke2_node_name as node name
split logical and to multiple lines for readability
made the role guess if server or agent based on group it belongs to
implement local artifact download and push to remote fallback
updated documentation to match

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update
[ ] Small minor change not affecting the Ansible Role code (GitHub Actions Workflow, Documentation etc.)

How Has This Been Tested?
reset my local cluster entirely and ran each feature against it.

Hi @simonfelding, please resolve the conflicts

@MonolithProjects I fixed the conflicts, is it okay now?

@MonolithProjects Hi! When can we expect the merge? I found some interesting changes there for use that I would like to see in the master.

@MonolithProjects Hi! When can we expect the merge? I found some interesting changes there for use that I would like to see in the master.

Maybe I should split it into multiple PRs, it got kind of large..

@MonolithProjects Hi! When can we expect the merge? I found some interesting changes there for use that I would like to see in the master.

Maybe I should split it into multiple PRs, it got kind of large..

Yeah... I think that's a good idea. Plus I see in this PR commits which are already in Master and this makes it harder to review. Please split it and I am sure I can find a time to check it 😉 Thanks!

I split it up into several new pull requests. some of the changes have already been implemented by other people.


U - Ensure all CSS pages map to a recipe

User story
As part of linting CSS documentation against recipes, we need to make sure that exactly one recipe can be associated with every CSS page.
Acceptance criteria

[ ] The linter reports no "file-require-recipe" errors when run over our CSS pages

I've spent today tagging pages under CSS so the linter recognises them.
I found that Kuma converts tag values to match the case of existing tags: I filed https://github.com/mdn/stumptown-content/pull/506 to make the linter ignore case. Maybe there's a better approach to this problem.
I've just tagged landing pages as "Guide", since it seems like we're not dealing with landing pages for now.
There are still 6 pages that the linter can't recognize, that we can split into two groups:
Index pages:
https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/Index
https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/@media/Index
For the JS docs there was a lot of discussion about index pages (see https://github.com/mdn/sprints/issues/2785). I believe that in the end we broke the dependency between doc status and index pages in https://github.com/mdn/kumascript/pull/1341, and the deleted the JS index pages. I think this also works to allow us to just delete these CSS index pages.
Keyword pages
https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/inherit
https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/initial
https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/revert
https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/unset
I think this is a new page type and needs a new recipe, "css-keyword.yaml". Looking at the pages, I would define a recipe like:
data:
  - title
  - short_title?
  - mdn_url
body:
  - prose.short_description
  - prose.description?
  - prose.*
  - data.examples
  - data.specifications
  - data.browser_compatibility
  - prose.see_also

Opinions, @Elchi3 , @ddbeck , @chrisdavidmills ?

I don't have anything to suggest. My first instinct was that the new recipe was a bit too special a case. But BCD categorizes the keywords as subfeatures of a CSS type, which suggests that it's a similar problem—I'm fine with deferring both for now.

I'm also not thrilled about having a new recipe for four pages and would be OK with using css-data-type, although it would be technically wrong to do this as far as I know.

I think this also works to allow us to just delete these CSS index pages.

Yes, we ripped this out of Kumascript afaik, so that we can burn all index pages (although, I'm afraid, some sidebars might still reference them). Go for it and delete. Happy to review KS adjustments if they are needed.

I've deleted those 2 Index pages, and added a new "css-keyword" recipe (https://github.com/mdn/stumptown-content/pull/508) and with those changes the linter reports 0 "Recipe missing" errors.


Back out "Refactor DefaultReactNativeHost to use the new way of Fabric initialization"

Summary:
Original commit changeset: be2bcea7b2ce
Original Phabricator Diff: D50926872
Reviewed By: philIip
Differential Revision: D51223865

Closing as abandoned internally


Make it possible to read embedded videos

@serverfire I am not sure it's possible using pdf.js. Do you know if it is?

Ok, let's forget that for the time being.


MatButton as MatSuffix with appearance=outline renders horribly in Edge and IE11.

Bug, feature request, or proposal:
MatButton as MatSuffix with appearance=outline renders horribly in Edge and IE11.  I can fix it by overriding one line in button.scss.  This is closely related to #11650, but not exactly because my fix for this does not fix that one.  See "Is there anything else we should know?" below for details.
What is the expected behavior?
The button should be aligned with the input.
What is the current behavior?
The button is much lower than the input.
What are the steps to reproduce?
This demo will show the bug if you open in Edge.  My fix is commented out inside of styles.scss.  Just uncomment it and they everything will look good.
https://stackblitz.com/edit/angular-material2-issue-ztyb2u
What is the use-case or motivation for changing an existing behavior?
It is very ugly and my users will not like it.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
"@angular/material": "^7.0.0-beta.2"
Is there anything else we should know?
The display block part in button.scss appears to be the problem:
// Align icon-buttons correctly inside of standard, fill, and outline form-field appearances.
.mat-form-field:not(.mat-form-field-appearance-legacy) {
  .mat-form-field-prefix,
  .mat-form-field-suffix {
    .mat-icon-button {
      display: block;  <========================== bad
      font-size: inherit;
      width: 2.5em;
      height: 2.5em;
    }
  }
}

I am using css instead of scss in my project, so my fix is to add this to styles.css:
.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,
.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button {
    display: inline-block !important;
}

This does NOT fix #11650.  To fix that, I did the following, however, I am highly doubtful that this is the proper fix, but it does the trick for this project:
.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-datepicker-toggle,
.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-datepicker-toggle {
    top: calc(0.59375em - 1px);
    position: relative;
}

Note that the inline-block solution does fix the issue that is mentioned here, but it also introduces an issue with the mat-datepicker-toggle.

What I was saying is that it fixes the bug that's mentioned in the issue, but it introduces another one with the mat-datepicker-toggle.

I also have a mat-datepicker-toggle in the demo above.  Uncomment out my fix inside of styles.scss.

Perhaps I should be using the term "workaround" instead of "fix".  As far as mat-datepicker-toggle goes, it is already broken in IE, Edge, and Firefox.  I am aware that "calc(0.59375em - 1px)" is not a solid fix for that.

I'm having a similar issue with the suffix with outline... in edge it's rendered below the text but in mozilla it's rendered above the text. Standard renders fine. See here: https://stackblitz.com/edit/angular-3hxsdt

In my case, the following does the trick,
.mat-form-field .mat-form-field-prefix .mat-datepicker-toggle,
.mat-form-field .mat-form-field-suffix .mat-datepicker-toggle {
  button {
    &:active, &:focus {
      outline: 0;
      border: none;
      -moz-outline-style: none;
    }
  }
}

The above comments help me, and also this answer
Hope it helps someone :)

This is working solution.
/* matdatepicker icon adjustment for IE11 issue */
.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-datepicker-toggle,
.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-datepicker-toggle {
top: calc(0.59375em - 40px);
position: absolute;
margin-left:-40px;
}

For me, the datepicker icon was misaligned on FF when using apearance "outline".
Fixed with:
.mat-datepicker-toggle {
  display: inline-block;
}

My solution:
.mat-form-field-suffix{ align-self: center; }

:host ::ng-deep .mat-form-field-suffix {     white-space: nowrap;     flex: none;     position: sticky ; }``
I had alignment issue while using matSuffix , i used the above styles ( position:sticky) and it got into perfect alignment.

Closing this issue because Angular is dropping support for IE11 in the upcoming version 13. We don't plan to fix any further IE11 bugs going forward.


Issue #134 Fix partition logic for encrypted partitions

For an encrypted disk, virt-filesystem doesn't show all the partition
until specified. Also now there is no root label on partition so this logic
need to be changed.
$ virt-filesystems -a crc-ssnp7-base -l
Name       Type        VFS   Label       Size       Parent
/dev/sda1  filesystem  ext4  boot        402653184  -
/dev/sda2  filesystem  vfat  EFI-SYSTEM  133169152  -

$ virt-filesystems -a crc-ssnp7-base -l --partitions
Name       Type       MBR  Size         Parent
/dev/sda1  partition  -    402653184    /dev/sda
/dev/sda2  partition  -    133169152    /dev/sda
/dev/sda3  partition  -    1048576      /dev/sda
/dev/sda4  partition  -<PHONE_NUMBER>0  /dev/sda

What is the impact on overall bundle size?

@cfergeau no idea, we will get to know once we create one using these changes.

The commit log says "Also now there is no root label on partition so this logic need to be changed.", which is not entirely true, we cannot read the label since the partition is encrypted, so we don't know whether it's root or something else

@cfergeau I will remove that comment but I tried with --keys-from-stdin and it also doesn't show.
$ echo nokey | virt-filesystems --keys-from-stdin -a crc-ssnp7-base -l --extra
Name       Type        VFS      Label       Size       Parent
/dev/sda1  filesystem  ext4     boot        402653184  -
/dev/sda2  filesystem  vfat     EFI-SYSTEM  133169152  -
/dev/sda3  filesystem  unknown  -           1048576    -


Alias unmount to umount for mount resource

Description
Allows the usage of action :unmount to umount a mount point
Issues Resolved
Closes https://github.com/chef/chef/issues/5595
Check List

[x] New functionality includes tests
[x] All tests pass
[x] RELEASE_NOTES.md, has been updated if required (not required for bugfixes, required for API changes)
[x] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco

Signed-off-by: Grant Ridder<EMAIL_ADDRESS>

travis seems unrelated.


Shadowrun 5 advanced: Blank chat in Roll20, no rolling going on.

Please also refer to the following post in the Roll20 forum:
https://app.roll20.net/forum/post/10003302/shadowrun-5-games-chat-and-sheets-do-not-work-anymore
I run my own Shadowrun 5 game, as well as participate in a Shadowrun 5 game of a friend of mine. We both use the Shadowrun 5th Edition (Advanced) character sheet template and both of us do not have any APIs running.
Today, I encountered the follwowing problem:

The game did load without any problems, but
the chat window is empty, even the Roll20 startup stuff is not showing, and
the character sheets did load, but rolls are not made/displayed in the chat window
I cleared the chat archive and starte the game again, then the chat SEEMD to work (write text), but
rolls made with the character sheet are still not made/displayed
After completely logging out of Roll20 and signing in again, the chat window is empty again.

This bug appears in both my own Shadowrun 5 game, as well as in the Shadowrun 5 game of my friend (where I am just a player). Also, I have asked a friend of mine to log into the game and try out the chat, but she gets the same odd bug: No chat, not character sheet functioning.
This bug seems to be linked to both of our Shadowrun 5 games using the Shadowrun 5th Edition (Advanced) character sheets. It happens on multiple computers using different browsers.
In addition: When I completely log out of Roll20, clear the browser cache, close the browser (Firefox) and sign into Roll20 and my game again, the chat windows just displays the last text message, but nothing more. When I try to roll or write something, the already displayed text (if there is any) gets repeated again. However, when I klick on "View all chat entries of this game" at the top, the dice rolls are shown correctly in another browser window, but they are still not displayed in the chat window.
Not sure this is something to blame on Roll20.  Someone submitted changes to the sheet just a few days ago well after the sheet framework issues were stabilized.  This is a community sheet, which Roll20 doesn't make changes to... I think it is unlikely Roll20 had anything to do with this particular issue.  Especially since the submitted changes affect the Roll Template which is what displays in chat.
I'll put the Firefox Console Log up here.
I'd appreciate any help. Thanks!

This happened to me as well. I discovered it ONLY happened when the Advanced Template was assigned to the room. Most of the time upon entering/refreshing the room the chat was blank, and sometimes it just returned repeating messages from the past. When I changed the room template to NONE, the chat populated as normal, messages were sent/received, rolling with /roll worked, but obviously no one had access to their sheets.
Turning the template back on again, the chat broke once more. IMO It's definitely the template. It seems every week someone submits changes that breaks things.

This happened to me as well. I discovered it ONLY happened when the Advanced Template was assigned to the room. Most of the time upon entering/refreshing the room the chat was blank, and sometimes it just returned repeating messages from the past. When I changed the room template to NONE, the chat populated as normal, messages were sent/received, rolling with /roll worked, but obviously no one had access to their sheets. Edit: Forgot to say, this also applied to MULTIPLE browsers (firefox and chrome)
Turning the template back on again, the chat broke once more. IMO It's definitely the template. It seems every week someone submits changes that breaks things. (Edit: Also because none of my other games with different templates are broken in this way)

Hello there, thanks for your response. You described exactly what is still happening.
Uhm, I have a question, since I am totally new to Github: So the recent changes were not necessarily submitted by the original sheet author, but by someone else? And if so, is there a chance to see who has made the changes, in order to contact the editor?

fixed by #8763

I request a hotfix

@mperes @nmbradley

Hotfix is live, the sheet can be used again

Awesome! Thank you very much.


Add notebook to compare old and new Resnik|Jaccard values

This is in the notebook now, but I'll add it here for ease of reading:
The top 5 differences in Resnik score are for pairs involving MP:0003281 (fecal incontinence). The top HP hit in the old scores is for HP:0002607 (bowel incontinence) and even includes the synonym "Fecal incontinence", so that appears to be a very good match. The low score in the new set may reflect how the ancestors of these terms are otherwise dissimilar: In HP, it looks like
All
 Phenotypic abnormality
  Abnormality of the digestive system
   Abnormality of digestive system physiology
    Abnormal large intestine physiology
     Bowel incontinence
  Constitutional symptom
   Impairment of activities of daily living
    Impaired continence
     Bowel incontinence

While in MP, we have
mammalian phenotype
 digestive/alimentary phenotype
  abnormal digestive system physiology
   abnormal defecation
    fecal incontinence

The other HP terms in this top 5 are HP:0040183 (Encopresis; a child of HP:0002607), HP:0012700 (Abnormal large intestine physiology; see above), HP:0012701 (Bowel urgency; a child of HP:0012700), and HP:0012700 (that's a duplicate - shouldn't be there.


Adding magnet links can be really slow.

I noticed that, when directly comparing PicoTorrent to Tixati, it seems to take a very long time to add magnet: links to PicoTorrent. I haven't investigated what it does yet but sometimes it seems to be stuck at "0/1...".

I see - I'll take a look.

I found out that it only happens for torrents with "dead" trackers. Maybe a status label would already do the trick.

Is the progress bar not enough?

The progress bar does not tell my why there is no visible progress. ;-)

Which progress bar are we talking about? The one in the Add magnet link dialog, or the one in the torrent list view?

The one in the Add magnet link dialog where it says "0/1" most of the time.

Yeah, I don't know if we can put any more progress there... Rasterbar-libtorrent doesn't expose any progress for metadata downloads.

I think the only sensible thing we can do is to remove the add magnet link dialog and just let the magnet links show up as "Downloading metadata" in the torrent list view.
That way we don't lock the UI while we wait for the metadata files to download.
What do you think?

Good idea. PicoTorrent should not have a wasted UI IMO.


Show tasks even when actions are disabled

Description
Show tasks even when actions are disabled
link: https://packages.d7z.net/git-mirrors/yq
Gitea Version
main
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
No response
Screenshots

Git Version
No response
Operating System
No response
How are you running Gitea?
systemd
Database
None

This is not a bug. The commit status is a feature to integrate with internal and external CI/CD service not an actions internal feature.


chore(examples): Add tagdump helper tool

I always forget how to properly dump ID3 tags to a file for testing. This tool should make it easier for other contributors.
Basically a Rust implementation of this: https://github.com/polyfloyd/rust-id3/pull/55#discussion_r568170929

Good idea, thanks


Handle bad responses from the CredHub test app.

This provides better error responses when the CredHub test app gets an error from CredHub.

Could you provide details on the failure of concourse-ci/drats ? Cheers.

Thank you!


Crashes unocss on fresh vitesse project "unknown word"

Setting up a brand new vitesse project, anu will make the build to fail saying "Unknown Word".
Steps to reproduce:

Create new vitesse project
Install anu according to the docs with auto-import (side-note: besides the installation instructions for auto-import, I updated the unocss.config.ts as written before (in Usage, step 2)
Add the following to pages/index.vue:

<ACard variant="outline" title="MyCard" subtitle="This is the subtitle" />

run pnpm dev

The page now shows the following error:

Thanks for raising the issue, are you able to run the vitesse project without anu using UnoCSS?

Yup, is working. Using unocss inspector i found the issue seems to come from a wrong escaping in the stylesheet, generating the following line:
${t}.a-layer-active::before{opacity:var(--\{a\});}

Thanks! I will check that out 😇

It seems not to be a problem in master, as the corresponding lines were removed in this commit. Thus I only find the rules in the bundle but not in the repository anymore.

Okay, confirmed. Using anu from master works fine! (Conflicts with vue reactivity transform then, but that is probably part of another story)

How did you tested from master branch?

Cloned the repo, pnpm buld it and then pnpm add ../anu/packages/anu-vue in my Vitesse Project (considering the anu repo directory resides next top the vitesse's one)

If this is fixed in the latest commit, can we close this?

I think so


Question about Manager:execute()

Hi there, first of all I love this idea and I'm evaluating it at work to replace our deeply nested transaction issues. I had a question about the Manager::execute() callback. This call seems to only work if you successfully complete the transaction - If an exception or error is thrown we need to wrap it in a try catch:
try {
  $result = $manager->execute(function () {
    //done
  });
} catch (\Exception $ex) {
  //fail
} catch (\Throwable $ex) {
  //fail
}

Since this would be a common use case I'm trying to find a reason to actually pass something in to the execute method (since the code is blocking). I would probably end up writing something like this:
try {
  $result = $manager->execute();
  done();
} catch (\Exception $ex) {
  //fail
}

Would it make sense to not re-throw the Exception and pass some callbacks instead?
$result = $manager->execute(function() {
  //success
}, function(\Throwable $e, TransactionInterface $offendingTransaction) {
  //fail
}, function() {
  //always
});

Just thinking out loud here. Thanks for your time!

Hey, first issue, that's wort a ⭐ :-)
I never thought about adding more callbacks (your example looks Promise-esque), as I'm fine using the existing exception mechanism with catching/finally to do this. At least that's what we're doing in my company.
What I did (using Laravel) was defining a AppTransaction like this:
class AppTransaction
{
    protected $manager;
    public function __construct(Application $app)
    {
        $this->manager = $app->make(Manager::class, [
                $app->make(TransactionBag::class)
                    ->add($app->make(DbTransactionMain::class))
                    ->add($app->make(DbTransactionPostgres::class))
                    ->add($app->make(JobBagTransaction::class)),
            ]
        );
    }
    public function execute(Closure $callback)
    {
        return $this->manager->execute($callback);
    }
}

and just passing through whatever $callback I have.
I'm fine with extending the execute to take more callbacks, optional ones, as long as the default behaviour doesn't change and it's covered with tests :)
It would probably make sense to have default callbacks "emulating" the current behavior.

I'm not personally a fan of the callbacks at all for my use case - I'm thinking I can just avoid passing a callback to execute() and everything will be fine i,e
try {
  $manager->execute();
  doMoreStuff();
  doEvenMoreStuff();
} catch (\Exception $ex) {
  //fail
} catch (\Throwable $ex) {
  //fail
}


Better debug support

When something doesn't work, the internal data structure of Guice is confusing and toString() needs additional tools (like an external text editor) because it's huge.
I would like to suggest a couple of changes to make debugging easier:

Support to assign a name or ID to an injector. That would help to distinguish them when I have more than one.
An easy way to dump the high-level structures:
The injector hierarchy
All the modules which were added per injector
There is a graphviz based tool to dump the bindings; add a similar tool which dumps to XML.

Don't know about the first improvement, since I never needed it, but the second and third should be similar? For them +1, graphviz is not really user friendly.
And it could be used as a high-level documentation too - if you can display the bindings and the modules, you can have an interactive documentation. If you neatly separate the modules, displaying them should explain a lot of code underneath.
I'll try to cook something simple up in the next week or two.

I have five injectors in my app coz history (they were five different processes and now they are one and there is a web app hidden in there somewhere and ... we've all been there). I can tell them apart by toString() but the result is about 500KB each and yeah ... it's not pretty.
I think a simple delegating wrapper which just accepts an injector and a string as constructor arguments and which delegates all method calls to the wrapped injector would do the trick.

Here I added dumping to XML and dumping to vis.js, which is now web based (HTML + JS) and doesn't depend on any client program - #1023
BTW, why do you have five injectors? Can't you combine modules and merge them into one?


Support LLVM 15

🎊
Part of #12743. This PR removes the remaining explicit uses of typed pointers, and also adds a few other things that are not exactly related to opaque pointers.
The manual specs under spec/llvm-ir are not adjusted for LLVM 15's opaque pointers yet. This is not that important because those specs' focus was never about pointers.
Additional cleanup and refactoring is still needed before this could be merged into the main branch.

On my M2 retrieving the call stack will sometimes fail:
def foo(x)
  y = x
  if y
    if y < 0
      p caller
    end
  else
    return 12
  end
end

foo(-1)

Invalid memory access (signal 10) at address 0x1008c58a0
[0x100848e84] *Exception::CallStack::print_backtrace:Nil +104 in /Users/quinton/.cache/crystal/crystal-run-small.tmp
[0x100834b10] ~procProc(Int32, Pointer(LibC::SiginfoT), Pointer(Void), Nil)@src/signal.cr:127 +320 in /Users/quinton/.cache/crystal/crystal-run-small.tmp
[0x18b9802a4] _sigtramp +56 in /usr/lib/system/libsystem_platform.dylib
[0x196fd3878] _ZN9libunwind12UnwindCursorINS_17LocalAddressSpaceENS_15Registers_arm64EE4stepEv +1152 in /usr/lib/system/libunwind.dylib
[0x196fd60f0] _Unwind_Backtrace +348 in /usr/lib/system/libunwind.dylib
[0x100835f20] *Exception::CallStack::unwind:Array(Pointer(Void)) +80 in /Users/quinton/.cache/crystal/crystal-run-small.tmp
[0x100835ebc] *Exception::CallStack#initialize:Array(Pointer(Void)) +20 in /Users/quinton/.cache/crystal/crystal-run-small.tmp
[0x100835e94] *Exception::CallStack::new:Exception::CallStack +48 in /Users/quinton/.cache/crystal/crystal-run-small.tmp
[0x100831964] *caller:Array(String) +16 in /Users/quinton/.cache/crystal/crystal-run-small.tmp

I have no idea what is going on. This was built using Homebrew's LLVM package because LLVM 15 is currently unavailable in any stable nixpkgs archive. The same crash isn't reproducible on x86-64 Linux.


Contribution to akka-stream-contrib

Lightbend has recently promoted a repository for akka-streams contributions.  Some of your extensions seem particularly suitable for ending up in this project. I personally use some of the extensions in this project and so far I'm happy with them. However, some work needs to be done in order to update them to the recent Akka 2.4.4 version, and posibly to deprecate some artifacts as the standard library has been improved lately.
So, please, do you have any plans to contribute to this new contrib repo?. If not, do you have any objections to let me contribute adapting the code conveniently?.
Thanks in advance and keep up the good work.

Hey @juanjovazquez
You can of course take some ideas that we've implemented in this repo and push them to akka-streams contributions. No copyrights ;)

@atamborrino Thanks. I'll do that!


fix(udf): ensure always_retry_on_network_error does so for all tonic errors (#15458)

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
closes https://github.com/risingwavelabs/risingwave/issues/15494
cherry pick https://github.com/risingwavelabs/risingwave/pull/15458

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

Bump


Cache client when it's fetched from first personalAccessClient

In my project I'm using createToken function from HasApiTokens trait and laravel-passport-memoized is used to avoid duplicated db queries caused by Passport.
But there still a duplicated query as the following:

Both queries are called by ClientRepository class's functions, first one is called by find and second by personalAccessClient.
Currently, personalAccessClient is not caching, so this pull request add an override to this function in order to cache the client when fetched.

Have you tested these changes? Because looking over the code I am unsure this works as you describe.
If you have set the config option passport.personal_access_client.id it should already use ->find which is already memoized. Do you have that config setup or have you left that empty?

Have you tested these changes? Because looking over the code I am unsure this works as you describe.
If you have set the config option passport.personal_access_client.id it should already use ->find which is already memoized. Do you have that config setup or have you left that empty?

Sure I've tested code changes in my own project and it removes the query duplication.
Actually, setting the passport.personal_access_client.id resolved the problem in my case, thank you for reminding me of that.

Interesting, I still wouldn't think this would remove the duplicate query... but maybe it's retrieved another way somewhere else. Anyway, give me some time to test this out and I'll merge it.
In the meantime explicitly setting the id of the personal access client in the config is a good workaround.

Interesting, I still wouldn't think this would remove the duplicate query... but maybe it's retrieved another way somewhere else. Anyway, give me some time to test this out and I'll merge it.
In the meantime explicitly setting the id of the personal access client in the config is a good workaround.

Don't worry, take your time.
When you're testing it plz consider the following:
Here is the function we are overriding in Passport (which calls the first query): https://github.com/laravel/passport/blob/ee4a82630f0334a3120621b4970320d1a86ee732/src/ClientRepository.php#L113
When config passport.personal_access_client.id isn't set, the $this->personalAccessClientId will be null so find won't be called (which means $client will returned without being memoized) and this is the reason of query duplication.


Cleanup imports

Unused imports / isort / black

Codecov Report

Merging #59 (e87fcb6) into develop (e87fcb6) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head e87fcb6 differs from pull request most recent head 06743f5. Consider uploading reports for the commit 06743f5 to get more accurate results

@@           Coverage Diff            @@
##           develop      #59   +/-   ##
========================================
  Coverage    60.89%   60.89%
========================================
  Files           14       14
  Lines         1524     1524
========================================
  Hits           928      928
  Misses         596      596


Implement delete: action for cells

Now possible (and much easier) for the library to provide since merging #811

work in-progress @ 9859d3a.
currently weird crashing issues.

Hello, @jessesquires
I update to  development branch and it looks like there are no crashes. Is this issue still valid?

How do we implement a custom action for delete? Example maybe create a UIAlertController with a NO(dismiss) and a YES(execute delete) UIAlertAction


Fix HACS "The version xxxxx for this integration can not be used with HACS"

2024-11-27 16:12:09 2024-11-27 16:12:09.339 DEBUG (MainThread) [custom_components.hacs] <Integration uhppoted/uhppoted-app-home-assistant> Running checks against main
2024-11-27 16:12:09 2024-11-27 16:12:09.692 DEBUG (MainThread) [custom_components.hacs] <Integration uhppoted/uhppoted-app-home-assistant> Getting documentation for version=655e41e,filename=README.md
2024-11-27 16:12:09 2024-11-27 16:12:09.692 DEBUG (MainThread) [custom_components.hacs] Trying to download https://raw.githubusercontent.com/uhppoted/uhppoted-app-home-assistant/655e41e/README.md
2024-11-27 16:12:10 2024-11-27 16:12:10.095 DEBUG (MainThread) [custom_components.hacs] <HacsData async_write> Saving data
2024-11-27 16:12:11 2024-11-27 16:12:11.935 DEBUG (MainThread) [custom_components.hacs] <Integration uhppoted/uhppoted-app-home-assistant> Getting hacs.json for version=655e41e
2024-11-27 16:12:11 2024-11-27 16:12:11.935 DEBUG (MainThread) [custom_components.hacs] Trying to download https://raw.githubusercontent.com/uhppoted/uhppoted-app-home-assistant/655e41e/hacs.json
2024-11-27 16:12:12 2024-11-27 16:12:12.122 ERROR (MainThread) [custom_components.hacs] <Integration uhppoted/uhppoted-app-home-assistant> The version 655e41e for this integration can not be used with HACS.

Missing hacs.json file:
2024-11-27 16:12:11 2024-11-27 16:12:11.935 DEBUG (MainThread) [custom_components.hacs] <Integration uhppoted/uhppoted-app-home-assistant> Getting hacs.json for version=655e41e

Added hacs.json and verified uhpppoted-app-home-assistant is installable from HACS.


DCT-IV, DST-IV and DCT-I, DST-I orthonormalization support in scipy.fftpack

Implementation of norm='ortho' option for type 1 dct and dst.
I would appreciate if someone with access to Matlab could produce an equivalent to gendata.m and test.mpz in the test directory to improve the unit tests.
edit: added DCT-IV and DST-IV, description below

@zywina Thanks for the PR. Is there any example that the tests are written in such a way that the result is known beforehand? Relying on matlab is ok of course but still makes it very difficult to debug if something else breaks this function and we would need matlab once again to track where it goes wrong.

I've checked the results against the textbook definitions. Below is some sample code. All of the Fourier related transforms can be reduced to a matrix multiplication. All that needs to be done is to construct the appropriate matrix and verify that the transform produces the same outputs.  This sort of approach may be a better long term option for unit tests as it could be applied to other transforms and use randomized inputs.
I don't believe contributing to FFTPACK is viable as the project is inactive. The last release was in 2011 and the version used in scipy is much older than that, perhaps from the 90s.

from scipy import *
from scipy.fftpack import *

def dct1_matrix(N):
    M = zeros((N,N))
    for i in range(N):
        for j in range(N):
            m = 1
            if j==0 or j==N-1:
                m = sqrt(1.0/2)
            if i==0 or i==N-1:
                m*= sqrt(1./2)
            M[i,j] = m*cos(pi*i*j/(N-1))
    M *= sqrt(2.0 / (N-1))
    return M

def dst1_matrix(N):
    M = zeros((N,N))
    for i in range(N):
        for j in range(N):
            M[i,j] = sin(pi*(i+1)*(j+1)/(N+1))
    M *= sqrt(2.0 / (N+1))
    return M

N=10
M = dct1_matrix(N)
a = arange(N)+1
b = M.dot(a)
c = M.dot(b)
d = dct(a,type=1,norm='ortho')
e = idct(d,type=1,norm='ortho')
print(a)
print(b)
print(c)
print(d)
print(e)
print("dct1 specrta close: ",allclose(b,d))
print("dct1 inverse close: ",allclose(c,e))
print("dct1 original close:",allclose(e,a))

M = dst1_matrix(N)
a = arange(N)+1
b = M.dot(a)
c = M.dot(b)
d = dst(a,type=1,norm='ortho')
e = idst(d,type=1,norm='ortho')
print(a)
print(b)
print(c)
print(d)
print(e)
print("dst1 specrta close: ",allclose(b,d))
print("dst1 inverse close: ",allclose(c,e))
print("dst1 original close:",allclose(e,a))

I have decided to expand this PR to include the DCT-IV and DST-IV algorithms. The DCT-IV variant in particular has a number of important applications and is long overdue to be included in scipy.fftpack. Including them completes the set of "even" trigonometric transforms numbered 1 to 4.
The algorithm used is from this paper. The algorithm relies on the DCT-II with some pre and post operations on the data. It shares the same property as the rest of the DCT/DST variants of supporting all input sizes. On my machine, benchmarks have shown it to be ~1% slower than DCT-II.
The code has been tested for correctness against FFTW in unnormalized mode. With orthonormalization, I have added unit tests to check against naive implementations of the algorithms. In all of the affected cases (DCT/DST-1/4) the transforms serve as their own inverse when norm='ortho' is selected, which in itself is a worthwhile unit test.

That sounds worth it for the time savings.

(@ilayn it looks like you had comments previously)

@larsoner I think we're good to go.

It says there is a merge conflict, can you resolve it?

Thanks @zywina!

Nice. @zywina could you please add a short description to the release notes at https://github.com/scipy/scipy/wiki/Release-note-entries-for-SciPy-1.2.0?


Can DockerSlim support using DockerImage as a target for lint？

Expected Behavior
Is it possible to support the result of 【docker history image】 as  the input parameters for lint?

Actual Behavior

Steps to Reproduce the Problem

Specifications

Version:
Platform:

You get a reverse engineered Dockerfile when you run the xray and build commands, which can be used as input to the lint command. The lint command will have this capability natively, but it hasn't been a priority recently. Definitely an opportunity to contribute :-) One of the goals for the lint command is to support this use case where you can point at an image and it would lint the instructions used to build it and other interesting things in the container itself.


Add XMonad.Prompt.Unicode

I have been using this code locally for years now, and it turned out to
be quite useful in many cases, so I thought it is about time to submit
it to the repository.

Looks great, thanks!


Sample Project generated by CLI does not launch in Visual Studio 2022

System Information (please complete the following information):

OS & Version: Windows 11
ML.NET Version:  ML.NET CLI version 16.3.6
.NET Version: 6.0

Describe the bug
When I try to create a sample project using ML.NET CLI, I get an error message in launching the library / application.
To Reproduce
Steps to reproduce the behavior:

Create a classification model using ML.NET CLI
Try to open up the Sample Project generated
See an error on Visual Studio 2022 17.3.0 Preview 1.1

Expected behavior
It should open up the file without any issues

@v-Hailishi Can you try to reproduce this?

@beccamc The bug is not repro on the latest MLNET CLI version 16.13.8.
The following are my repro steps:

Install install MLNET CLI by run command:
dotnet tool install -g mlnet-win-x64 --add-source https://mlnetcli.blob.core.windows.net/mlnetcli/index.json

Run the following ML.NET CLI command to generate a sample project.
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10

I can open the sample project successfully.

Hey team. The latest version does not have this issue so I am happy to close it. I think dotnet CLI is still installing the older version which is 16.13.6

@luisquintanilla Can you look at the dotnet CLI installing the older version? Is that something you can look at?

Just did a fresh install from Windows using Docs and the right version installed. I think we can close this issue. However to avoid confusion we might want to deprecate or unlist the mlnet global tool in NuGet because it still shows up.
https://docs.microsoft.com/dotnet/machine-learning/how-to-guides/install-ml-net-cli?tabs=windows


Fetch the blob and not the attachment with the file id in proxy_controller#show

Closes #875

Aren't we already constructing urls using the attachment id?
https://github.com/pod4lib/aggregator/blob/ebb3fd9c4c09ef3c0ed8af8103c48bcb13ff86f8/config/routes.rb#L82

@stream.files are blobs though, right?: https://github.com/pod4lib/aggregator/blob/ebb3fd9c4c09ef3c0ed8af8103c48bcb13ff86f8/app/views/streams/show.xml.builder#L13

Ha. Stream#files are blobs, Upload#files are attachments.

Makes sense to me. Stream#files seems like it'll be easier to track down all the references?


Task/a11y

resolves DawgPath-96 and DawgPath-97

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 71.636%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
394

Relevant Lines:
550

💛  - Coveralls


ImageLoader can't load grayscale JPEG image

Tested versions
4.2.1
System information
macOS 14.3
Issue description
It seems the JPEG format supports multiple color space models, (The first answer here seems to give good information about this: https://stackoverflow.com/questions/50798014/determining-color-space-for-jpeg ) but it seems the Godot image_loader jpeg parser does at least not support Grayscale jpeg images.
Trying to load/import such an image just fails with the following error:
core/io/image_loader.cpp:101 - Error loading image: res://graphics/Amelia-Earhart.jpg
Steps to reproduce
Try to load a grayscale jpeg image, for example by adding it into your project. Like this sample file: Amelia-Earhart.jpg
Minimal reproduction project (MRP)
Just the file above should be enough

Seems similar to issue #45523. Godot is using a third-party library for loading JPEGs. I debugged locally, and the loader is failing on the same error as reported on the issue. I believe this is just a limitation of the Engine for now.

Thanks for looking into it @FantasmaGolicon, perhaps it is the same issue then. However, in #45523 it seems the sample file was using some unusual sampling factors. In this case I thought this file was just using a grayscale color space (single channel) which according to https://code.google.com/archive/p/jpeg-compressor/ should be supported in decompressing?

Grayscale should be supported. By looking in the debugger, it looks like the image has unexpected sampling factors. The jpeg decoder is expecting grayscale images to have a sampling factor of 1 for both horizontal and vertical sampling. The image you provided has a sampling factor of 2, and therefore it fails decoding the image with that same error (JPGD_UNSUPPORTED_SAMP_FACTORS)
Where is this image coming from? Do you have control of exporting the image?

I see, then this is just a duplicate of https://github.com/godotengine/godot/issues/45523 so I'll close this issue. The grayscale colorspace was the only thing I could tell was different about this JPEG, so I assumed that was the issue.
As for the source I'm afraid I'm not sure what it is encoded in. It's part of a set of old portrait photos I use as test files for various graphics apps, originally from various creative commons sources. Since they're so old it might be that the files are also quite old and were encoded in old software that used more unusual jpeg configurations.
If you think adjusting the sampling factor to an accepted value would fix the issue without corrupting the image that is decoding that would be great, I don't know enough about how the sampling factor is used in jpeg decoding to know if that's feasable. But since it's defined in the file and the decoder rejects non-1 instead of using the values I'd assume it has some non-trivial impact on how the data should be interpreted.


Added Albanian locales

Codecov Report

Merging #470 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #470   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          14     14
  Lines        3189   3198    +9
  Branches      229    229
=====================================
+ Hits         3189   3198    +9

Impacted Files
Coverage Δ

arrow/locales.py
100% <100%> (ø)
:arrow_up:

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 b33925e...dc48b8e. Read the comment docs.

Hi @endritqerreti, thanks for the contribution!
Can you please add tests for this new locale?  You can pattern them off of IndonesianLocaleTests.


Write permission removal for Non Admin Users on ACL Templates

University of Heidelberg here,
We want to inform you that there is a critical bug messing with our Users:
When a non admin user selects an ACL template for his own Event, the User loses his own write permissions to this specific event. Loosing the permission to even further configure their own event. (Because it disappears from admin-ui)
To Reproduce
Steps to reproduce the behavior:

Use a non admin user, upload a video.
Go to 'event-details:access policy'
Click on 'template' and select any ACL Template
See Problem

Environment Information

OS: [CentOS 7]
Browser [all]
Opencast latest

I can confirm this happens on stable.opencast.org.
Likely an admin interface issue.


Rewrite parser using cats-parse

Opening this to get feedback on the parser changes. The backtracking in particular feels quite arbitrary and unsatisfying at the moment - would love feedback on a more idiomatic way to structure it.

@johnynek we'd be very grateful for your input on this ...

made some comments, I hope they are helpful.

Thanks SO much @johnynek! They are massively helpful! I'm away for the next week but will go through them properly when I come back.

(That test failure is sporadic.)

This is awesome ... thanks!

This is awesome ... thanks!

Pleasure! :)

This is great, thanks!

Pleasure! :)

Looks like the flaky subscription test again ... re-running ...

It would be interesting to see some benchmarks to see if the parsing speed changed in a noticeable way or not.
Please let me know if you hit any issues with cats-parse!


Provide APIs for interacting with dats

Having a daemon for easily saving dats locally is useful, but I think people would get even more out of it if the daemon could allow them to actually interact with the dats.

Ability to read data from a dat (read file, directory, stats, etc)
Ability to listen on changes to a dat
Ability to create new dats
Ability to modify dats that have been created (add / update / remove)

My end goal is to abstract interaction with the daemon using the same interface as the DatArchive API in the Beaker Browser.

It wonder if it'd be possible to in fact re-use the DatArchive module. It's not exposed as a module on npm though and it'd be a shame to write it again. Thoughts @pfrazee ?

The related source code in beaker is the web API for the web-side and Background app API for the non-web side.

Which all seems to be wrapping over pauls-dat-api

Maybe the daemon could expose pauls-dat-api using the manifest here over a protobuf RPC

There's a somewhat hacked-together module on npm right now, https://github.com/beakerbrowser/node-dat-archive
pauls-dat-api is the core of the logic, if you want to mimic its interface, that's where I'd start. The question I'd ask is, how do you plan to expose the API? Is the idea that dat-daemon could be embedded in a node app and then leverage DatArchive, or are you planning to have apps connect to an active daemon process and leverage DatArchive as a wrapper around RPC?

Yes but the high-level API is also neat

@soyuka at one point I found myself needing the DatArchive interface in Beaker's background process, and I had to re-implement the interface there: https://github.com/beakerbrowser/beaker/blob/beaker-0.8/app/lib/bg/dat-archive.js. Not my proudest but I couldn't think of a better solution. I think I ended up getting rid of the code that required that though.

are you planning to have apps connect to an active daemon process and leverage DatArchive as a wrapper around RPC?

This. With the help of websockets for example, it'd allow to build dat-aware extensions or whatever.
Though, my first intent was to be able to have a daemon that shares dat on my own server and/or 24/24 low-power computer at home. As we're seeing more interest/ideas that could wrap arround an RPC I'm all ears :).
About the last message, thanks might be useful.

Yeah an RPC-able DatArchive daemon/backend has been on my mind. Should be useful.

Well, Hyperdrive uses a random-access-... storage approach to collect data. random-access-datdaemon could allow transparent communication to the dat's managed by dat-daemon?

IMO using hyperdrive or random-access is too low level for this library which should try to stick with dat-node and high-level stuff.

@martinheidegger Yeah that's an interesting idea, Id ask: 1) would the low-level semantics make it difficult to add things like permissions, if ever needed? 2) would that access level be inefficient because it puts messaging at the wrong layer? Point 2 would concern me because of how hyperdrive does lookups (against the metadata log).

@pfrazee From the work the IPFS community has been doing on their daemon, access restrictions are being done within the browser extension.
The IPFS-companion extension has full access to the IPFS daemon, and then it provides the web with an IPFS global that has access restrictions scoped to the origin being served (kinda like how browser permissions work for webrtc and the such already).

So the daemon would allow anything running locally to connect to it, and higher-level applications that require access restrictions based on some sort of criteria can then do so.

There's already a library, node-dat-archive which implements the same API as DatArchive in the beaker browser.
What about providing an RPC API that looks like this?

What about providing an RPC API that looks like this?

Totally! I've some pending work on this but there are some edge cases to consider when trying to translate this to an RPC API.
I'm going to document my progress on the protocol this weekend. One thing that bother's me with the DatArchive API are the readFile/writeFile things. I'd prefer if the RPC was only working with streams when writing/reading. I have a proof of concept with streams and it works really great.
Also, if I want to continue to use protocol buffers, I need to structure everything. For example say we want to readdir, how is the response? Do we allow some kind of "generic" data in the response protocol or do we "type" everything?
When talking about streams there's also the same problem. If we stick with the following statement:

The daemon receives an "Instruction" and sends an "Answer"

How would streaming work? I don't really want to wrap binary data with metadata. Therefore I've come up with file access "endpoints" (https://github.com/soyuka/dat-daemon/pull/11#issuecomment-368001767). I'm still not sure that this is the best solution but it allows to:

keep "instruction" "answer" thing for standard instructions
having a streaming fs interface to read/write

Anyway I'm going to first document the RPC protocol before I implement it :).

Good point about readFile/Write file. It's a higher level API to make it easier to work with so it makes sense to do something with more control for the protocol.

Do we allow some kind of "generic" data in the response protocol or do we "type" everything?

From what I've seen, people will set up multiple message types for the responses and requests. That way if you know you're sending a "ReadDirmessage, you're going to expect aDirResults` in the response.
If you allow for "generic" data, you might as well just go with JSON or something else more dynamic since you're losing a lot of the benefit of protobuf structured messages.
What about having using websockets but instead of having the "endpoints" in the URL, having that information in the first protobuf message sent to the daemon?

What about using pauls-electron-rpc as a basis? It's what beaker already uses for RPC between the browser window and the node process for the DatArchive API

If you allow for "generic" data, you might as well just go with JSON or something else more dynamic since you're losing a lot of the benefit of protobuf structured messages.

Exactly! I'm going to stick with protobuf.

What about having using websockets but instead of having the "endpoints" in the URL, having that information in the first protobuf message sent to the daemon?

Yes I thought about this as well but it's not that easy. Say it works like that:

[client] => I want to write a File
[daemon] => ok I'm ready (and now only accepting a stream)
[client] => sends stream

Now, how do we know that the stream ends? Is the client sending an End instruction? But what if the daemon only accepts streams without checking for more instruction?
I've prototyped something that works like this but I it's less developer-friendly and more complicated to handle then just to open a stream when you want to write/read.
Translated to javascript it's ~10 lines of client code vs only 1 with streams for example.

What about using pauls-electron-rpc as a basis? It's what beaker already uses for RPC between the browser window and the node process for the DatArchive API

Because I'm not fond of the abstraction proposed in this module. I dunno why.  I'm still trying to re-use the more code I can from paul's dat api!

Now, how do we know that the stream ends
I assumed you were using one connection per request, so the socket closing would be enough.
Alternately one could have a content length in the first message.
Another option is to use something like multistream from IPFS which allows you to multiplex several streams over one along with all the stream lifecycle events.

The main worry I have with putting information in the URL is that it doesn't scale to arbitrary streams, so it won't work for unix sockets or TCP sockets (or arbitrary streams)

I assumed you were using one connection per request, so the socket closing would be enough.

Opening a connection for each request looks weird, usually you keep the connection open and send a bunch of requests no?

The main worry I have with putting information in the URL is that it doesn't scale to arbitrary streams, so it won't work for unix sockets or TCP sockets (or arbitrary streams)

My though as well. Though, I could still implement simple readFile, writeFile that transfers the whole data in one call as a fallback. Or we could just use websockets everywhere :D.

I think that we also have to keep in mind that this daemon is only used to interact with local dats and will not be available from the outside. Low interest in tcp/unix sockets as a websocket also works well.

If you're not opening a socket per request, how are you specifying the data you want in the URL? Is the URL just the dat archive ID?
Do you have any code I could read for this yet? I think I'm misunderstanding and confusing myself. :P

Haha sorry this is my bad.
You're indeed having one socket per stream or live data.
On the other hand you should have one and only one socket opened to interact with the daemon (add, list, remove, readdir etc.)
For example (say it's a client interface in JS):
var client = new Client() // this keeps an open connection, now that I think about it maybe it doesn't need to keep it open but it definitely could

var answer = await client.send({action: LIST})
// answer is a list of dats

var write = client.createWriteStream('key/path/bar') // creates a new connection
write.write('foo')
write.end() // which closes here

var readdir = await client.send({action: READDIR, path: 'path'})

assert(readdir[0] === 'bar')

var statistics = client.createFileActivityStream() or createNetworkActivityStream() // these are also opening new connections

statistics.on('data', function(stats) {
  //do something
})

FYI the only reason the DatArchive interface doesn't have streams yet is because I'm waiting to see if browser stream APIs stabilize more

What about targeting async iterators instead of actual streams for the DatArchive API?
Plus, with Firefox and Chrome both supporting WHATWG streams I doubt they'll be doing massive changes there.

@RangerMauve If WHATWG streams have taken the lead then I'll probably use them. Based on https://streams.spec.whatwg.org/#example-manual-read it looks like you can do async iterators in that spec. (https://jakearchibald.com/2017/async-iterators-and-generators/ seems to confirm that)

I have given this a little more thought and to me it seems that the best API of interacting with dats is the same API that dats use to sync each-other. Once dat-daemon returns the list of DATs. the web/desktop app could simply open the dats "sparse".
const client = new Client()
const Dat = require('dat-node')
client.watch({ action: LIST_DATS }, (datsDiff) => {
  removeDats(datsDiff.removed)
  addDats(datsDiff.added)
})

const dats = {}

function addDats (datKeys) {
   datKeys.forEach(datKey => {
      dats[datKey] = new Dat(new HyperDrive(ram), datKey, {sparse: true, sparseMetadata: true})
   })
}

// etc.

The new data could now show what files there are, what the latest version is, what versions exist, etc. all given by the Dat API. Now: going through the bittorrent stuff for a local up talking to a local service is definitely overkill, but lucky for us Dat doesn't really specify which transport protocol is supposed to be used. It could simply run over a tcp port that its automatically connected to.

Are there docs on what the protocol can do?

@RangerMauve What do you mean? It contains all the information on everything about a dat. https://github.com/datproject/docs/blob/master/papers/dat-paper.pdf

That's awesome. Have you looked into the approach I did that accomplishes a similar goal?
Instead of having more API in the gateway, I had the gateway provide a replication stream through websockets and create a hyperdrive instance client-side.
https://github.com/RangerMauve/dat-archive-web

Sorry, I got really engrossed in the devlopment and didn't think to. :D
You should check out this issue, there's gonna be a video call between some people interested in this stuff.

Oh real nice thanks for this one :D.


Units in precipitation - amount vs slope

Hi,
at first - thanks for the integration, worked flawlessly so far.
There is one thing that irritates me, wanted to discuss this prior to creating a PR.
The GW1100A web interface has these units for rain:
Rain Event 24.4 mm
Rain Rate 0.0 mm/Hr
Rain Day 23.4 mm
Rain Week 24.7 mm
Rain Month 35.6 mm
Rain Year 35.6 mm
In the integration, time is added everywhere. IMHO, this makes no sense.
Let's start with the "Rain Event" - this is how much rain we had during the current/last rain event, no matter how long it was. Therefore, you can't say 24.4mm/hr - it may have been 24.4mm in half a day or only one hour.
"Rain Rate" needs the /h, as it is the slope at the current moment.
The other figures (Day, Week, Month, Year) are the amount, not the slope. Like you pay for kWh in your yearly engery bill, not kWh/year. Consumed energy vs. average power draw.
The counters reset at the start of the timespan, so if you are 3h into the day, and it rained 3mm so far, it says '3mm/day' - what is technically wrong, it must be '3mm/3h' , or '24mm/d'  so that you get the correct amount when caluclating "rain day * day" to get the amount of water on the soil.
Another example, if you have a look at https://www.currentresults.com/Weather/Germany/average-yearly-precipitation.php, the normal unit for annual precipitation is Inches / Millimetres.
Regards
Moritz

Thanks for explaining this! It'd be great if we can get a fix in asap, even if this is only a display issue

Agreed, I used customize: to change the units for my entities from mm/h etc. but it causes a warning in the logs.

Just an update on above:
You can fix the warning in the logs by going to https://my.home-assistant.io/redirect/developer_statistics and pressing 'fix issue', it will allow you to change historical units to match.
my customize.yaml file includes (as I break my yaml in to separate file using !include):
  unit_of_measurement: mm
sensor.event_rain_rate:
  unit_of_measurement: mm

and so on


Enable sorting by cost

This change enables sorting by cost on the cost details page.
Note that sorting by groups; account, region, & service has been disabled. This is a temporary workaround, to avoid a 404/bad request, until the API supports group_by and alias sorting.
See: https://github.com/project-koku/koku/issues/398
Sort Cost Descending

Sort Cost Ascending

Deploy preview for project-koku ready!
Built with commit 053b5c3a4bb94e2814662bfeb7e7cbe3eb228410
https://deploy-preview-147--project-koku.netlify.com

Codecov Report

Merging #147 into master will decrease coverage by 0.07%.
The diff coverage is 75%.

@@            Coverage Diff             @@
##           master     #147      +/-   ##
==========================================
- Coverage    90.7%   90.63%   -0.08%
==========================================
  Files         113      113
  Lines        1173     1174       +1
  Branches      147      148       +1
==========================================
  Hits         1064     1064
- Misses        101      102       +1
  Partials        8        8

Impacted Files
Coverage Δ

src/pages/dashboard/dashboardWidget.tsx
87.5% <ø> (-0.38%)
:arrow_down:

src/utils/getComputedReportItems.ts
97.5% <75%> (-2.5%)
:arrow_down:

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 ddb821f...053b5c3. Read the comment docs.

I enabled sorting for all. Now that the APIs are available to sort by account_alias, region, and service.


@import CSS at-rule not always respected when determining order

Bug report

What is the current behavior?
Despite a.css being imported by b.css, it comes later in the resulting css file.
If the current behavior is a bug, please provide the steps to reproduce.
https://github.com/Hypnosphi/webpack-css-order
npm install
npm run build

What is the expected behavior?
a.css should go before b.css because it's imported. The spec explicitly states that the imported rules should be treated as if they were written in place of the @import rule.
It works OK in 5.90.0. The issue is probably caused by https://github.com/webpack/webpack/pull/18009

Other relevant information:
webpack version:  5.90.3
Node.js version: 18.18.2
Operating System: macOS

I would like to work on this issue

/cc @JSerFeng friendly ping
/cc @ahabhgk How do rspack solve this problem?

@Hypnosphi Anyway I recommend to avoid rely on CSS order when you have multiple import ... from ... and @import, there are a lot of limitations

I believe the same problem exists in Rspack. I will look into this


Chemical Treatment record page edits

simple ones first:

[x] Add new 'Treatment Organization' field before first Pesticide Applicator name field.
[x] Change the name of the field "pesticide applicator number" to be "Service License Number".  Drop down remains the same.
[x] if wind is 0, there should be no direction chosen.  Ideally auto fill no direction if 0 is chosen, at minimum show an error at sync if user choses anything other than no direction.
[x] Pest Management Plan field needs to have options to choose from drop down, enter a number manually, OR choose "n/a". (#695 )
[ ] remove tank volume (@CrystalChadburn to confirm this is required)
[x] Fix typo in herbicide code table for milestone

tackle these after (maybe separate issue)

[ ] Add UTMs as well as lat/longs, or if only one can be there, should be UTMs. (also in 607).
[ ] Temperature and wind and herbicide values need to have an "are you sure" pop up warning instead of a red box forcing you to lie.  If the user clicks "yes" that they are sure, then they can be allowed to add something outside of the acceptable range.
[ ] Pesticide User License field should be autofilled based on log-in (attached to user entering IDIR or BCeID) and then autofilled.  Doesn't need to be on form, but needs to be recorded upon syncing/submitting record.


'ConfigDict' object has no attribute 'device'

Hello, I tried to change the config file to kitti dataset, and get the below error message. I did not find any device cfg info in other config files, should I add the device info in config file?

Traceback (most recent call last):
File "tools/train.py", line 230, in
main()
File "tools/train.py", line 220, in main
train_model(
File "/home/tan/SST/mmdet3d/apis/train.py", line 27, in train_model
train_detector(
File "/home/tan/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/mmdet/apis/train.py", line 163, in train_detector
model = build_dp(model, cfg.device, device_ids=cfg.gpu_ids)
File "/home/tan/anaconda3/envs/mmdet3d/lib/python3.8/site-packages/mmcv/utils/config.py", line 48, in getattr
raise ex
AttributeError: 'ConfigDict' object has no attribute 'device'

solved by added "device='cuda'" in config file


feat(varnish metrics): Add client request error code metrics

Proposed Change
This pr updates the metadata to reflect the scope doc. Small plural changes have been made to the names and a client.request.error.count metric is now collected with 3 codes(400, 417, 500).
Note, attributes of ints cannot be generated in the metadata and in the past the enum has been left blank intentionally like in couchdb. I have posted an image to show that the attribute can still be labeled though.

Checklist

[ ] Changes are tested
[ ] CI has passed

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Dll load failed

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

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

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

System information

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

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

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

Hello so should I have a GPU model to solve this problem?

No. Solution is at
https://github.com/tensorflow/tensorflow/issues/36167#issuecomment-577886156
If neither of those apply, please open a new issue,fill in template and mention that these steps don't work and why


remove Hybrid Joined device from On-Premise AD

Hi,
After MDM is enabled and device are Hyrbrid joine and managed by Intune is there a way to remove these devices from on premise AD?

@memento77 -
Thank you for your question.
Can you please share with us the URL of the document that you are having issues with?
Please note that we scope issues on this repo to feedback related to the docs. If you have a product question, please post it on Microsoft QnA or Stack Overflow. Thank you for your understanding.

sorry about it
this was question for the product.
Thanks

@memento77 - Sure no worries. Please raise your question on Microsoft QnA  so our engineers and community can help answer the questions.
At this moment, Since there is no doc update required, We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Make RevoltSharp usable in Revolt clients.

(You may also know me as Raph. on Revolt :))
In it's current state, it seems like RevoltSharp can only be used for bots.
Please make it usable for Revolt clients (such as the WinUI 3 frontend i'm writing)
Thanks!

Here's the latest updates for making RevoltSharp usable with user accounts :)


deis-router service hangs when deployed by stackpoint.io

Dec 1, 2016
Created new project on Google Compute Engine and deployed cluster that included haproxy, Calico, Prometheus, and Deis using http://stackpoint.io.  I was able to create apps in deis using deis create, but when I tried to push to deis using git push deis master it fails.
Tried again with a cluster that only had haproxy and deis and got the same issue.
I then tried to just use helm directly on a local kubernetes cluster and encountered a similar issue (deis-router service hanging). The cluster doesn't have Calico.  Below is the info rom my Google Compute Engine cluster.
ssh: connect to host deis-builder.<redacted>.xip.io port 2222: Connection refused

On additional investigation, it appears that the deis-router service never leaves pending state (all pods are running successfully).
kubectl --kubeconfig ~/dev/gcloud/stackpoint-damp-mountain-kubeconfig get services --namespace deis
NAME                     CLUSTER-IP       EXTERNAL-IP   PORT(S)                            AGE
deis-builder             <IP_ADDRESS>     <none>        2222/TCP                           12h
deis-controller          <IP_ADDRESS>   <none>        80/TCP                             12h
deis-database            <IP_ADDRESS>    <none>        5432/TCP                           12h
deis-logger              <IP_ADDRESS>    <none>        80/TCP                             12h
deis-logger-redis        <IP_ADDRESS>    <none>        6379/TCP                           12h
deis-minio               <IP_ADDRESS>     <none>        9000/TCP                           12h
deis-monitor-grafana     <IP_ADDRESS>   <none>        80/TCP                             12h
deis-monitor-influxapi   <IP_ADDRESS>     <none>        80/TCP                             12h
deis-monitor-influxui    <IP_ADDRESS>    <none>        80/TCP                             12h
deis-nsqd                <IP_ADDRESS>   <none>        4151/TCP,4150/TCP                  12h
deis-registry            <IP_ADDRESS>   <none>        80/TCP                             12h
deis-router              <IP_ADDRESS>    <pending>     80/TCP,443/TCP,2222/TCP,9090/TCP   12h
deis-workflow-manager    <IP_ADDRESS>   <none>        80/TCP                             12h

Here is the service descriptor:
kubectl --kubeconfig ~/dev/gcloud/stackpoint-damp-mountain-kubeconfig get service/deis-router -o yaml --namespace deis
apiVersion: v1
kind: Service
metadata:
  annotations:
    chart.helm.sh/description: Deis Workflow
    chart.helm.sh/file: /root/.helmc/workspace/charts/workflow-v2.5.0/manifests/deis-router-service.yaml
    chart.helm.sh/name: workflow-v2.5.0
    chart.helm.sh/version: v2.5.0
    helm-keep: "true"
    kubectl.kubernetes.io/last-applied-configuration: '{"kind":"Service","apiVersion":"v1","metadata":{"name":"deis-router","namespace":"deis","creationTimestamp":null,"labels":{"heritage":"deis"},"annotations":{"chart.helm.sh/description":"Deis
      Workflow","chart.helm.sh/file":"/root/.helmc/workspace/charts/workflow-v2.5.0/manifests/deis-router-service.yaml","chart.helm.sh/name":"workflow-v2.5.0","chart.helm.sh/version":"v2.5.0","helm-keep":"true"}},"spec":{"ports":[{"name":"http","port":80,"targetPort":8080},{"name":"https","port":443,"targetPort":6443},{"name":"builder","port":2222,"targetPort":2222},{"name":"healthz","port":9090,"targetPort":9090}],"selector":{"app":"deis-router"},"type":"LoadBalancer"},"status":{"loadBalancer":{}}}'
  creationTimestamp: 2016-12-01T16:43:55Z
  labels:
    heritage: deis
  name: deis-router
  namespace: deis
  resourceVersion: "609"
  selfLink: /api/v1/namespaces/deis/services/deis-router
  uid: 5905264a-b7e5-11e6-9094-42010a8a0002
spec:
  clusterIP: <IP_ADDRESS>
  ports:
  - name: http
    nodePort: 31912
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    nodePort: 31642
    port: 443
    protocol: TCP
    targetPort: 6443
  - name: builder
    nodePort: 31239
    port: 2222
    protocol: TCP
    targetPort: 2222
  - name: healthz
    nodePort: 32507
    port: 9090
    protocol: TCP
    targetPort: 9090
  selector:
    app: deis-router
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer: {}

Here's my version info:
kubectl --kubeconfig ~/dev/gcloud/stackpoint-damp-mountain-kubeconfig version
Client Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.4", GitCommit:"3b417cc4ccd1b8f38ff9ec96bb50a81ca0ea9d56", GitTreeState:"clean", BuildDate:"2016-10-21T02:48:38Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.6", GitCommit:"e569a27d02001e343cb68086bc06d47804f62af6", GitTreeState:"clean", BuildDate:"2016-11-12T05:16:27Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}

can you do describe of the router pod kubectl --kubeconfig ~/dev/gcloud/stackpoint-damp-mountain-kubeconfig describe service deis-router --namespace deis
It will more details on why it is in pending state.

kubectl --kubeconfig ~/dev/gcloud/stackpoint-damp-mountain-kubeconfig describe service deis-router --namespace deis
Name:			deis-router
Namespace:		deis
Labels:			heritage=deis
Selector:		app=deis-router
Type:			LoadBalancer
IP:			<IP_ADDRESS>
Port:			http	80/TCP
NodePort:		http	31912/TCP
Endpoints:		<IP_ADDRESS>:8080
Port:			https	443/TCP
NodePort:		https	31642/TCP
Endpoints:		<IP_ADDRESS>:6443
Port:			builder	2222/TCP
NodePort:		builder	31239/TCP
Endpoints:		<IP_ADDRESS>:2222
Port:			healthz	9090/TCP
NodePort:		healthz	32507/TCP
Endpoints:		<IP_ADDRESS>:9090
Session Affinity:	None

any thing useful on the describe of the router pod because it is clear that for some reason k8s is not able to create an LB for the router.

$ kubectl --kubeconfig ~/dev/gcloud/stackpoint-damp-mountain-kubeconfig describe pod/deis-router-1854000272-6sfxg --namespace deis
Name:		deis-router-1854000272-6sfxg
Namespace:	deis
Node:		<IP_ADDRESS>/<IP_ADDRESS>
Start Time:	Thu, 01 Dec 2016 09:43:59 -0700
Labels:		app=deis-router
		pod-template-hash=1854000272
Status:		Running
IP:		<IP_ADDRESS>
Controllers:	ReplicaSet/deis-router-1854000272
Containers:
  deis-router:
    Container ID:	docker://db6b0848760cce192c72b3e657ad3572c9eacdccaa642960e558b365eba3940e
    Image:		quay.io/deis/router:v2.5.0
    Image ID:		docker://sha256:4702de9ac07bc20970ca6416ed09dd34b0433529e92c24ce0e9cd0e58fcd441f
    Ports:		8080/TCP, 6443/TCP, 2222/TCP, 9090/TCP
    State:		Running
      Started:		Thu, 01 Dec 2016 09:45:24 -0700
    Ready:		True
    Restart Count:	0
    Liveness:		http-get http://:9090/healthz delay=1s timeout=1s period=10s #success=1 #failure=3
    Readiness:		http-get http://:9090/healthz delay=1s timeout=1s period=10s #success=1 #failure=3
    Volume Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from deis-router-token-ax0ta (ro)
    Environment Variables:
      POD_NAMESPACE:	deis (v1:metadata.namespace)
Conditions:
  Type		Status
  Initialized 	True
  Ready 	True
  PodScheduled 	True
Volumes:
  deis-router-token-ax0ta:
    Type:	Secret (a volume populated by a Secret)
    SecretName:	deis-router-token-ax0ta
QoS Class:	BestEffort
Tolerations:	<none>

FYI calling kubectl --kubeconfig ~/dev/gcloud/stackpoint-damp-mountain-kubeconfig get events --namespace deis doesn't provide any events.

So, not to confuse things... the above all of the above were with my failures in deploying from stackpoint.io ). I still am seeing that issue and hope to get that resolved.
With doing this on my local lab system I got more info in the event logs and manually worked around getting the service running, but I'd like to know how I should be doing this properly.
4h         20h         3446      deis-router-2457652422-5fhuy       Pod                                          Warning   FailedScheduling   {default-scheduler }         pod (deis-router-2457652422-5fhuy) failed to fit in any node
fit failure on node (horizon-hlm-dev2): PodFitsHostPorts

In looking at the deployment spec for the pod the hostport was likely colliding with several other processes on the system. I switched all of the ports (manually in kubernetes) to different ports and the deis-router pod is up.  How should I do that properly (not going in and changing ports manually after helm deploys)?

That is actually what is recommended, either that or running more than one node so at least one of the nodes has port 443 available: https://github.com/deis/router/issues/95#issuecomment-173336645

ping @ttripp, if you're using workflow v2.10.0 with helm v2.1.3 there is now a configurable setting in values.yaml that'll disable hostPorts. See https://github.com/deis/router/pull/296
Were you able to get this running on stackpoint?

@bacongobbler Re: Stackpoint. No, I ended up deleting my clusters managed by Stackpoint... Had a few too many things going on to try to debug it further there.

Cool. I'm going to close this out as I believe we have a good summary of the issue as well as a fix for this cloud provider, which we're fairly certain fixes your issue. Thank you very much for the report!


Allow variables in themes

Describe the feature request
When creating a theme, it would make sense to use the variables of the global design system, instead of hard-coding and repeating it (e.g. hex values of colors).

tokens.stylex.ts
// Design system colors
const colors = stylex.defineVars({
  white: 'hsl(0, 0%, 100%)',
  gray100: 'hsl(0, 0%, 78%)',
  gray200: 'hsl(0, 0%, 67%)',
  // ...
  gray800: 'hsl(0, 0%, 11%)',
  gray900: 'hsl(0, 0%, 7%)',
});

// System colors (these will be themed)
const systemColors = stylex.defineVars({
  textBlack: colors.gray800,
  textDark: colors.gray700,
  textMuted: colors.gray400,
  border: colors.gray100,
  // ...
});

themes.ts
// This does not work. The values need to be copy-pasted from `tokens.stylex.ts` unfortunately.
const darkBackgroundTheme = stylex.createTheme(systemColors, {
  textBlack: colors.white,
  textDark: colors.gray100, // Instead I should copy-paste the value 'hsl(0, 0%, 78%)'.
  textMuted: colors.gray200,
  border: colors.gray600,
  // ...
});

App.tsx
// Assuming the Text component has `color: systemColors.textDark`.

export const App = () => {
  return (
    <>
      <div {...stylex.props(styles.boxWithWhiteBackground)}>
        <Text>This text will be colors.gray800</Text>
      </div>

      {/* Applying the theme to flip all colors */}
      <div {...stylex.props(styles.boxWithBlackBackground, darkBackgroundTheme)}>
        <Text>This text will be colors.gray100</Text>
      </div>
    </>
  );
};

The problem in my example is that tokens need to be duplicated, which is error prone when someone forgets to update a token in all places. Ideally, the original colors token can be used in the theme.
However, allowing tokens in theme definitions could cause a recursive loop, which does not make it obvious what the value should be. Although a developer might not write code like this, StyleX is unaware of the hierarchy of tokens.
// Example of a theme based on a var group `myTokens`, which references the same var group inside its definition.
const darkTheme = stylex.createTheme(myTokens, {
  textDark: myTokens.textLight,
});

Perhaps using variables inside themes could be allowed, and it is up to the developer to prevent writing unlogical loops like this.

Alternative proposal
If it would be impossible to use variables in a theme because of the above recursion issue, I would suggest that there needs to be a way to define global variables without creating actual tokens.
In my original example, there are two types of variables:

colors: a collection of hsl values
systemColors: variables that reference the colors. These need to be themed.

The colors variables are static at the top of the token hierarchy. They don't need to be CSS variables, so they might as well be simple JavaScript strings. The only reason they are not is because StyleX doesn't allow referencing variables from other files. Another possible solution would be to be able to define constants so that StyleX supports importing them from other files. Then we could use these special constants in themes, style definitions, ... but in essence they are simple strings (or numbers?). This would also solve some requests about reusable media queries (I've seen the PoC about defining media queries in StyleX but that seems unnecessarily complicated. I think all we need is a way to share constants across files.)
// `colors` remains an object with string values. StyleX does not process it except for the fact that it allows importing/exporting.
const colors = stylex.letStylexKnowThatTheseCanBeSafelyImportedAcrossFiles({
  white: 'hsl(0, 0%, 100%)',
  gray100: 'hsl(0, 0%, 78%)',
  gray200: 'hsl(0, 0%, 67%)',
  // ...
  gray800: 'hsl(0, 0%, 11%)',
  gray900: 'hsl(0, 0%, 7%)',
});

assert.equal(colors.white, 'hsl(0, 0%, 100%)');

See #601

#601 is related but I think this is still a different issue

See #724
I believe you want to be able to define a set of global constants and then use them within your themes.

@nmn Thanks for linking to the defineConsts API, I believe this will solve my issue. Thanks!
One quick question, will I be able to use those consts as values directly?
export const colors = stylex.defineConsts({
  white: stylex.types.color('#FFFFFF'),
});

export const styles = stylex.create({
  base: {
    color: colors.white,
  },
});

One quick question, will I be able to use those consts as values directly?

Yes!
(Closing this issue, please follow the linked issue for updates on stylex.defineConsts


Review request: add merging functionality to duplicates plugin

This patch is based on the ordering imposed by the tiebreaking facility
introduced in 6be98b0a369aa148acee8906d55076ac824b5108. Once a natural
duplicate ordering is in place, then the strategies for merging are:
Items
Iterate through each available field:
    Iterate through each duplicate:
        If current duplicate has a field not set in the original, set it there
        Break

This is, I believe, solved.
Albums
Iterate through each duplicate:
    Iterate through each item in duplicate:
        If current item is not present in original, copy it there
        Continue

Problems:
What to use to check for identical items in the album merging logic:
currently I use mb_trackid; this is bound to break later on, or possibly
right away on some libraries that don't use musicbrainz, or have items
with not musicbrainz IDs.
I also don't completely understand how to cleanly move an item to a
different album.
Questions, comments, solutions welcome!

I'm not sure what is going on with the build fails. They appear to have started with a commit prior to mine. Everything builds cleanly on my machine...

You're right; the build failures are independent. See #1461.

Looks like a great addition!
I don't have a brilliant idea for unambiguously mapping the tracks when merging albums. It seems like using the MBID for now would be fine, since this is the closest we have to a universal identifier.
On moving items: I'm almost certain that what you're doing already—just changing the album's ID—is fine, with one extra caveat: we should probably check whether the album is empty afterward and remove it. (Or, maybe it's guaranteed to be empty, in which case we can unconditionally remove it?) If this gets messy, we could even provide an API in library.py for adding items to an album (and removing them from their old album, if any).

Regarding your point on moving items: what I intended with the merge functionality for albums was to run beet dup --album --merge --delete. But I suppose it would be least surprising if merge really didn't leave anything behind.

Aha; that makes sense. In any case, I don't think your current strategy will do anything bad to the database. :sparkles:

Rebased into trunk in 3be593693d3f7f60eb07e8445ec669fe9ce84c68

Fantastic! :sparkles: