Add main async code match test

Description of the change
Add a centralized async code match test
Might need some tweaking here. This is a very raw implementation.
Motivation
Remove repetition for each module
Checklist

[x] I have performed a self-review of my code.
[x] I have added detailed comments to my code where applicable.
[x] I have verified that my change does not break existing code.
[x] My PR is based on the latest changes of the main branch (if unsure, please run git pull --rebase upstream main).
[x] I am familiar with the Google Style Guide for the language I have coded in.
[x] I have read through the Contributing Guide and signed the Contributor License Agreement.

How does this handle GenerateContentResponse vs. AsyncGenerateContentResponse?
https://github.com/google-gemini/generative-ai-python/blob/37eb4cb/google/generativeai/types/generation_types.py#L446-L576

It doesn't. It checks individual methods though.


Nuget?

@Arshia001 @sergeybykov is there a working Nuget package for Cassandra Persistance?

I doubt it.

Remember I said there wasn't much to add? Forget that. Nuget package incoming.

Would be great to test with Orleans 3.x

I've been running it in production with Orleans 3.x for quite some time now. Just let me get the code in shape real quick.

@Arshia001 if you start by making it a Nuget package then you will be able to maintain the code whenever and just increment the package version each time you change something ;)

Yes, I know how that works.

Here you are: https://www.nuget.org/packages/Orleans.CassandraUtils/1.0.0
Turns out I've been maintaining a private copy of this code. There are relatively few changes as you can see, but I had a good laugh when I realized the project file in this repo was targeting .Net framework... anyway, that's all fixed now.
As I said, I've been using this code in production for quite some time now, so it should be stable. There may be edge-cases I haven't run into though, so don't just take my word for it.

Thank you so much!


Coin selection bug in walletconsole.

Describe the bug
A clear and concise description of what the bug is.
typing "coin bch" in walletconsole and generating an address produced an etherium send address
To Reproduce
Steps to reproduce the behavior:

Fire up walletconsole
Type "coin bch"
type generateDefault
Observe an etherium address

Expected behavior
I expected a Bitcoin Cash address
Screenshots
Sorry, already fixed my version.
Additional context
Add any other context about the problem here.
The problem is in Coins.h and/or registry.json, depending on how you look at it.
The registry.json issue is that both BitcoinCash and SmartBCH were listed with an id of BCH.  Since Bitcoin Cash went into the map first, it was displaced by SmartBCH, an Etherium Token.
For the time being, I chanced the id in registry.json for my fork to call it sbch.
I also changed the Coins.cpp code to check for duplicates in all four maps ( id/name/number/symbol ) that it used to index it's collection of coins.  I also modified the Coins class to store all of the coin objects in a vector, and changed the index maps to be map<string,int> and map<int,int> as appropriate, where the int value corresponded to the vector index.  This fixed it.
I was working on some other things when I found this, but here is a patch that includes the fixes.
There is also a problem where consolewallet goes into an endless loop of printing prompts when it receives a ctrl-d.  I fixed this in CommandExecutor.cpp by checking the result of the call to getline, and breaking the loop when it went false.
fixes.gz

Well, after "fixing" this "bug", i noticed that the unit test which makes sure that the behavior I observed is maintained started failing ... so go figure?
Sorry about that.
Still would not hurt to fix the endless loop on eof.


Add keywords 'null' and 'documentation' to the VS Code syntax highlighting

null is already a keyword as of 0.0.4 (Possibly earlier), however documentation is not a keyword yet!


Help docs (second pass)

Need to do a second pass on the help docs.

Task completed in eb1a22b - closing.


⚠ Bofrost.at has degraded performance

In d17baba, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1876 ms

Resolved: Bofrost.at performance has improved in 6a2d5ae.


Set radio button "value" to the poppler button state

The problem was that was it was impossible to figure out which radio
button is selected when reading the pdf form.
The possible values for the radio button are true or false,
same as a checkbox.

Thank you, very good!

 My name is Mihai Saru.
Very useful library BTW!


notifier.send_sync() segfault on macOS

Desktop Notifier version: 4.0.0
Python version: 3.12.4
Operating System: macos 13.6.7

Description
Calling send_sync() like this:
    notifier.send_sync(
        title='Test',
        message="This is a test message."
    )

yielded a segmentation fault:
[notifier] requesting authorisation for the first time
[notifier] was granted? True, error:
[notifier] error: Couldn’t communicate with a helper application.
Segmentation fault: 11

(was granted? might be  my annotation to see what might be going on and make sure my signed application bundle had permission to send notifications...)
but this worked fine:
import asyncio
from desktop_notifier import DesktopNotifier
from rubicon.objc.eventloop import EventLoopPolicy

notifier = DesktopNotifier()

async def send_it() -> None:
    await notifier.send(
        title='Test',
        message='Long messages',
    )

asyncio.set_event_loop_policy(EventLoopPolicy())
loop = asyncio.get_event_loop()
loop.run_until_complete(send_it())
loop.close()

suspect it's related to the EventLoopPolicy() but i really have no idea.
fwiw i was just running asyncio not a CFRunLoop (unless under the hood asyncio library is handing off to CFRunLoop, which i was under the impression it did not, but i could be totally worng).

Thanks for the report!
Do you also have a stack trace from macOS? And how about the second example without installing rubicon's EventLoopPolicy? Does this also segfault?

fwiw i was just running asyncio not a CFRunLoop (unless under the hood asyncio library is handing off to CFRunLoop, which i was under the impression it did not, but i could be totally worng).

It's almost certainly not using a CFRunLoop under the hood.
The send_sync API is a bit hacky and I am considering to remove it completely. It does not work at all on Linux, where the async dbus interface gets initialised and sets up asyncio queues in a different run loop. So if it's really just this API, I am tempted to close as "won't fix", but I may be more fundamental.

Do you also have a stack trace from macOS?

did not get any meaningful stack trace, only got what i copy/pasted here. makes sense given that it's a segfault - python doesn't have the ability to catch that.

_And how about the second example without installing rubicon's EventLoopPolicy? Does this also segfault?

can try and report back

python doesn't have the ability to catch that.

But the operating system does! If not shown automatically to the user, you might find it in the Console.app in "Crash Reports" or "Spin Reports"

Is it possible that you are seeing the segfault only when notifications are disabled for the app?

notifications were definitely enabled but another important piece of info might be that the overall context was a Twisted application using an asyncio based reactor

this doesn't seem to be a problem anymore (at least not in a segfault kind of way). while i still cannot use DesktopNotifierSync.send() in my Twisted app (not that i actually need or want to do this, was just testing) now I at least get an exception that makes sense:
RuntimeError: Cannot run the event loop while another loop is running

here's the gory details:
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/uzor/myproject/helpers/notificatio                                                        │
│ n_helpers.py:51 in send_notification                                                             │
│                                                                                │
│    48 │   }                                                                                │
│    49 │                                                                                │
│    50 │   try:                                                                                │
│ ❱  51 │   │   notifier_sync.send(**notification_kwargs)                                          │
│    52 │   except Exception as e:                                                                 │
│    53 │   │   console.print_exception()                                                          │
│    54                                                                                │
│                                                                                │
│ /Users/uzor/myproject/lib_repos/desktop-notifier/src/desktop_notifier/syn                        │
│ c.py:117 in send                                                                                │
│                                                                                │
│   114 │   │   │   timeout=timeout,                                                               │
│   115 │   │   )                                                                                │
│   116 │   │   coro = self._async_api.send_notification(notification)                             │
│ ❱ 117 │   │   return self._run_coro_sync(coro)                                                   │
│   118 │                                                                                │
│   119 │   @property                                                                              │
│   120 │   def current_notifications(self) -> List[Notification]:                                 │
│                                                                                │
│ /Users/uzor/myproject/lib_repos/desktop-notifier/src/desktop_notifier/syn                        │
│ c.py:57 in _run_coro_sync                                                                        │
│                                                                                │
│    54 │   │   │   future = asyncio.run_coroutine_threadsafe(coro, self._loop)                    │
│    55 │   │   │   res = future.result()                                                          │
│    56 │   │   else:                                                                              │
│ ❱  57 │   │   │   res = self._loop.run_until_complete(coro)                                      │
│    58 │   │                                                                                │
│    59 │   │   return res                                                                         │
│    60                                                                                │
│                                                                                │
│<EMAIL_ADDRESS>│
│ /asyncio/base_events.py:663 in run_until_complete                                                │
│                                                                                │
│    660 │   │   Return the Future's result, or raise its exception.                               │
│    661 │   │   """                                                                               │
│    662 │   │   self._check_closed()                                                              │
│ ❱  663 │   │   self._check_running()                                                             │
│    664 │   │                                                                                │
│    665 │   │   new_task = not futures.isfuture(future)                                           │
│    666 │   │   future = tasks.ensure_future(future, loop=self)                                   │
│                                                                                │
│<EMAIL_ADDRESS>│
│ /asyncio/base_events.py:624 in _check_running                                                    │
│                                                                                │
│    621 │   │   if self.is_running():                                                             │
│    622 │   │   │   raise RuntimeError('This event loop is already running')                      │
│    623 │   │   if events._get_running_loop() is not None:                                        │
│ ❱  624 │   │   │   raise RuntimeError(                                                           │
│    625 │   │   │   │   'Cannot run the event loop while another loop is running')                │
│    626 │                                                                                │
│    627 │   def run_forever(self):                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
RuntimeError: Cannot run the event loop while another loop is running


a translation mode in the form of a task list

### Request to add a translation mode in the form of a task list.
Single task is not easy to view.
Thanks

Could you provide a little more explanation? would be great to have some examples/screenshots

Thank you for your reply. What I mean is to make the tasks arranged like a list, like the picture below.


how i use my own dataset？

my own dataset is coco style，how to write dataset.py？

Hello, the author gave advice at #16 , you may check that.


How to check the searched formula?

Thanks for your contribution to symbolic regression! I am very interested in your work. I ran the code and found that there are only various indicators in the .csv log file, not the formulas searched during the training process. Is there an easier way to view it?

Hey, thanks for your interest! The code currently saves only the final expression at the end of each training run. If you do a simple run with python -m dsr.run config.json it will save each run summary as a single line in benchmark_dsr.csv. The column "traversal" will show you the best found expression. The logs like dsr_Nguyen-1_0.csv show batch statistics each training step.
In a recent update, we've added two additional logging features: 1) saving the "hall of fame" (top N expressions found during all of training) and 2) saving the Pareto front (based on a complexity measure). Would this be what you're looking for?
Also please note we will push a new release version shortly, which will include these features.

Also, if you're in using the instantiated expression (e.g. as an executable function), this came up in #5 and support for this will also be added shortly.

Hi @pone7 , the requested feature has been added. You can now specify a "hall of fame" and/or Pareto front. If using the sklearn interface, you can also interact with the best expression via DeepSymbolicRegressor.program_.

Hi @pone7 , the requested feature has been added. You can now specify a "hall of fame" and/or Pareto front. If using the sklearn interface, you can also interact with the best expression via DeepSymbolicRegressor.program_.


phonetics searching

it would make sense to index the phonetics of word tokens, maybe in different phonetic systems. The ideal would be that gampopa finds སྒམ་པོ་པ. A reason it would be best to make that on a word level is that if we do it on a syllable level, users will need to search gam po pa, and special word pronunciations (dorje, labrang, yabshi, etc.) necessitate a word analysis, not just a syllable one.

duplicate of #48


Offer clone/copy item

The user wishes to add a High Voltage Tower next to an existing one.
All the details are almost the same.
It would be so nice if he could click copy, from some context menu,
and then in a point he just made, dump all the details in from the old node, make minor adjustments, and then save.
In fact there are two ways of doing this: copying just the key / value pairs, or even cloning a whole node to a new spot.

For now, copy and pasting the tower node with ⌘C ⌘V will work.  Just paste more towers near the power line and drag them onto where they should be.
We have some other open issues for copy/pasting tags (#839), or creating new items with the same tags as the previous items (#590).  Whenever we add these, editing similar things will become much more efficient.


kafka or rocketmq support problem

Your question
Did mosn support MQ component such as Kafka, RocketMQ?
If not, do you have any plan?
If ok, can I get some docs to try a quick start? I'm always has a question, did I have to make some change to Kafka/RocketMQ native SDK to support mosn/envoy, because I don't known how to process native sdk config parameters, like bootstrap.server, name.server etc
Thanks.

Do not support yet.
You can follow information from mosn WG


[SMALLFIX] Add documentation for Tachyon fault tolerant in standalone mode

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

Jenkins, test this please

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

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Tachyon-Pull-Request-Builder/6903/Failed Tests: 1org.tachyonproject:tachyon-integration-tests: 1tachyon.worker.DataServerIntegrationTest.readMultiFiles[0]
Test FAILed.

LGTM


Support reading in object files for executables on macOS

By default, the linker doesn't include debug info into the resulting executable. It's either left in the .o files or put in a dsym file. In the situation where it's left in the .o files there are OSO stabs entries that give the paths of the .o files. We should read those in as needed to resolve the addresses.

There's some code to do this at https://github.com/mstange/profiler-dwarf-lookup

Do you think it makes sense to add something to the object crate that performs the task of Resolver in that code? I'd probably make it return Vec<(file_name, Vec<Symbol>)> (or a similar iterator) and let the caller figure out which symbols contain the addresses they want.

@mstange

@mstange I noticed a couple of differences in how LLVM parses the symbol entries in MachODebugMapParser:

It uses N_FUN with null names to terminate functions, instead of waiting for the next N_FUN with a name. It looks like using the terminating N_FUN is better because it gives the function size.
It doesn't handle N_SO. Did you encounter a case where the N_SO handling is required?

Oh, the terminating N_FUN comes with the size! I didn't realize that, that's great!
I did not encounter a case where N_SO handling is required. I think all N_FUN symbols are always between an N_OSO and a terminating N_SO, so we might as well treat the N_OSO as the separator and ignore the section terminator.
One important thing that the current profiler-dwarf-lookup code doesn't handle is OSOs that point to archive files: For example, you can have an OSO symbol with the string /Users/mstange/code/obj-m-opt/toolkit/library/../../js/src/build/libjs_static.a(JSAtom.o). Then you need to load libjs_static.a as a goblin::archive::Archive and extract the member with the name /Users/mstange/code/obj-m-opt/toolkit/library/../../js/src/build/libjs_static.a(JSAtom.o). This probably requires a change to your proposed API in order to be represented properly.

It's either left in the .o files or put in a dsym file. In the situation where it's left in the .o files there are OSO stabs entries that give the paths of the .o files.

I don't know much about macOS, but it appears that the OSO entries are what dsymutil uses. Can you run dsymutil to get a dsym and use that instead? Using the .o files seems like a niche use case.

Running dsymutil is pretty time consuming (see https://github.com/rust-lang/rust/issues/47240) so it's nice to avoid it if at all possible. Further, most tools (lldb, gdb, nm, Instruments, ...) on macOS support using the OSO entries directly without needed a dsym file.

My current thinking is to change object::SymbolMap to also include the object file name. I've done some work to start on that here, but it might be a while before I get to do the corresponding addr2line changes.

This got a fully-fleshed-out implementation in the fix-stacks binary:
https://github.com/mozilla/fix-stacks/blob/c30daaef43bd15486fba189b06487aa24dad3492/src/main.rs#L433-L502

object now exposes these references in Object::object_map. That's what I use in profiler-get-symbols: https://github.com/mstange/profiler-get-symbols/blob/3c315ba523e2c876e3de493ba36ef9fc0d01affa/lib/src/macho.rs#L317-L319

backtrace-rs implemented this in https://github.com/rust-lang/backtrace-rs/pull/377. This needs to be handled at a higher level than the addr2line API, so closing this issue.

@jrmuizel Did you file this issue about the addr2line crate API or about the addr2line CLI example in this repo?

Ah sure, that probably isn't too hard to do (rough version at https://github.com/philipc/addr2line/commit/65f215492371a153b211e59959239061bdfbd376). I don't currently have a macOS system to develop on though.

I think https://github.com/mstange/samply/tree/main/wholesym-addr2line supports this, so hoping that is sufficient now.


Multiple "If" statements on one line and expressions bug

This line:
    If code# eq 0 If tmp# ge 0 Move (rval#+tmp#) to rval#
becomes:
    If code# = 0 If (tmp# >= 0) Begin
        Move (rval#+tmp#) to rval#
   End
but should have been:
    If (code# = 0 If (tmp# >= 0) Begin
        Move (rval#+tmp#) to rval#
    End

This was caused by a bug in the _HasLegacyOperatorPos function.
Fixed!


[Preview 4] TitleBar is overriden by Window Content

Describe the bug
I tried the ExtendsContentIntoTitleBar in the new preview, but when I set it to true the TitleBar is overriden by the content of the Window (in my case a Frame). When I navigate between pages in the frame, I can see for a little moment the TitleBar behind the page while the transition between pages is playing.
Steps to reproduce the bug
Steps to reproduce the behavior:

Create a Window
Add a Frame that occupies the whole Window
Enable ExtendsContentIntoTitleBar

Expected behavior
TitleBar have to be always shown.
Screenshots

Version Info
Win32 WinUI Preview 4
NuGet package version:
Microsoft.WinUI 3.0.0-preview4.210210.4

Windows app type:

UWP
Win32

Yes

Windows 10 version
Saw the problem?

Insider Build (xxxxx)

October 2020 Update (19042)
Yes

May 2020 Update (19041)

November 2019 Update (18363)

May 2019 Update (18362)
Yes

October 2018 Update (17763)

April 2018 Update (17134)

Fall Creators Update (16299)

Creators Update (15063)

Device form factor
Saw the problem?

Desktop
Yes

Xbox

Surface Hub

IoT

Additional context

@pratikone FYI

The Titlebar Window Controls MUST always render on top of the content within the window. even above content dialog smoke layers, and any flyouts and popups (exception for Tooltips)

@mdtauk  is correct,. Also, the window buttons should be on the top right side always. This is a bug. @pratikone FYI.

This should be fixed in WindowsAppSDK 1.1. If you're still seeing the same problems with the latest version, I'll reopen this issue.


Get Started with the SAP BTP Command Line Interface (btp CLI)

Tutorials: https://developers.sap.com/tutorials/cp-sapcp-getstarted.html
In step 3 change the name in the question from sapcp CLI to btp CLI ...
For which of the following tasks do you use the sapcp CLI?
Thanks,
Dominik

Thanks for noticing! I updated the tutorial accordingly. Have a good day!


Learning rate

Where can we change the learning rate of nadam optimizer? Which optimizer is chosen if we don't specify in the params constructor?

By default, nadam is chosen.
You can change the learning rate updates in the following way:
model = BiLSTM(params)
model.setMappings(mappings, embeddings)
model.setDataset(datasets, data)
model.learning_rate_updates = {'nadam': {1:0.01, 5:0.002}}

If nadam is chosen as optimizer, it will start with a learning rate of 0.01. In epoch 5, it is updates to 0.002 learning rate.
If you choose a different optimizer, for example adam, replace 'nadam' by 'adam'

But in BiLSTM.py i have this line 61,
self.learning_rate_updates = {'sgd': {1: 0.1, 3: 0.05, 5: 0.01}}
Does that mean 'sgd' has been chosen for now?

No.
In the dict you can specify the learning rate updates for different optimizers, e.g.
self.learning_rate_updates = {'sgd': {1: 0.1, 3: 0.05, 5: 0.01}, 'nadam': {1:0.01, 5:0.002}}

if SGD is used, the updates from self.learning_rate_updates['sgd'] are used. If nadam is used, self.learning_rate_updates['nadam'] is used. If self.learning_rate_updates[optimizer] is not specified, the default learning rate from Keras is used.

OK thanks.


As a User, I need to accept the grant conditions before I can use the service

Context
In order for a user to use the service they must accept the grant conditions, this change adds a page to ensure that accept it before using the service
Changes proposed in this pull request
We now enforce they accept the conditions before proceeding. And redirect back to the page if they try navigate away.
Guidance to review

View a school
You should see that page if it has not already been accepted

Link to Trello card
https://trello.com/c/sQAPaOkv/408-as-a-user-i-need-to-accept-the-grant-conditions-before-i-can-use-the-service

Can you add in this change to this PR too please?
https://itt-mentoring-beta-dev-a238297da236.herokuapp.com/organisations/8bac1580-6540-4b60-b46e-0857b7561fed/details

Can you add in this change to this PR too please?
https://github.com/DFE-Digital/itt-mentoring-beta-prototype/pull/87
https://itt-mentoring-beta-dev-a238297da236.herokuapp.com/organisations/8bac1580-6540-4b60-b46e-0857b7561fed/details

It'll make things easier to manually review :)


0.13.0 Installation

Environment
Windows build number: Microsoft Windows [Version 10.0.18362.449]
PowerToys version: 1.3.0
PowerToy module for which you are reporting the bug (if applicable): 1.3.0 Update

Steps to reproduce
1. PT Version 1.2.0 version running (starts at system start)
2. Downloaded 1.3 MSI
3. Try to update 1.2.0 > 1.3.0
4. "Next" is not activated, "Change" does nothing, only "Repair" and "Remove"
Expected behavior
Ability to update from previous version...
Actual behavior
Not able to update, only "Repair" or "Remove".
Screenshots

Hi @tjsuominen
I tried to repro the problem without success.
Are you sure you executed the .msi for the 0.13.0 version?
The way the installer works, it requires the .msi to have the same GUID of the installed version in order to show the Change, repair, or remove installation dialog.
Since the installer for 0.13.0 has a different GUID, it would be a bug in the Windows installer if that dialog shows up.

That WAS weird... I'm 99% sure I run the 0.13.0 version on the first time as well as the re-download generated a PowerToysSetup (1).msi file to my downloads folder.
Anyhow, after launching the recent PowerToysSetup (1).msi download, installation went just fine.
Case closed.


[SR-7945] Ubuntu tarball breaks clang package

Previous ID
SR-7945

Radar
rdar://problem/41013178

Original Reporter
mcandre (JIRA User)

Type
Bug

Status
Reopened

Resolution

Environment
Ubuntu 16.04, 18.04

Additional Detail from JIRA

Votes
0

Component/s
Compiler

Labels
Bug

Assignee
None

Priority
Medium

Watchers: @shahmishal
md5: eba13b8da8c4d54d3ff221461a923e2d

Issue Description:
The official Ubuntu tarballs for installing Swift in Linux unfortunately appear to include a deprecated directory, /usr/lib/python2.7/site-packages, which results in `sudo apt-get install -y clang` failing when dpkg processes clang's `python2.7-minimal` dependency. Evidently, Python has shifted away from the /usr/lib/python2.7/site-packages structure and has trouble installing itself when this path is present on the system.

Source tars no longer contain this directory


[Bug]: HVAC mode icons missing on Climate cards after 3.4.0 update

Requirements

[X] I checked the troubleshooting section in the README to verify that I have the latest Mushroom version.
[X] I did a search to see if there is a similar issue or if a pull request is open.

Current Behavior
After an update to Mushroom Cards v 3.4.0, Issue persists in 3.4.1. I am observing that icons for HVAC mode selection in the Mushroom climate card are no longer visible. See attached screenshot.
This seems similar to #1359 but I am already running HA 2024.1.6, and it is not restricted to a particular device. Reproduced in Mozilla Firefox, Google Chrome, and IOS Companion App. Reverting Mushroom js files and refreshing the browser restores the icons.
Expected Behavior
HVAC Modes are shown with appropriate icons.
Steps To Reproduce

Update Mushroom card > 3.4.0 using HACS add-on
Refresh browser
Observe that HVAC mode icons have disappeared

Context
Lovelace configuration for a climate card:
type: custom:mushroom-climate-card
entity: climate.living_room
show_temperature_control: true
hvac_modes:
  - heat
  - cool
  - 'off'
tap_action:
  action: more-info

Environment
- Browser: Firefox, Chrome, and iOS companion app
- HA Version: 2024.1.6
- Mushroom: 3.4.1

Anything else?

I confirm the bug

Also getting this

Same here: HA 2024.1.6
Mushroom 3.4.1

Same here: Also on HA2024.1.6
Mushroom 3.4.1

Same problem

Same issue

Any updates on this bug?  Seems a lot of people are hitting this issue but no comments as to when this will be resolved?

+1 also having this issue

Issue is the same after clearing cache and on latest version

@piitaya issue is not fixed for cover cards:

And also some issues with entity card and humidifier card, see lower left side

Issue is still present for me too

Hello 👋 It's certainly a cache issue. Try to clear it : https://github.com/piitaya/lovelace-mushroom?tab=readme-ov-file#i-dont-see-the-last-changes. Do you have the 4.3.2?

Afaik google nest hub is not caching. Switched it of, powered it on but still the same result. Will test with a reboot of ha core.

Thank you resolved in 4.3.2

@piitaya followed your advice, removed resource, uninstalled, reinstalled. Rebooted google nest hub. No change. Rebooted ha core and google nest hub. No change. Icons are still not shown. And yes: I am on version 4.3.2

Is it only for climate card or also for all round icons?

Totally confusing. All worked well with ha core 2024.1.5 and/or mushroom cards 3.4.0.
after upgrade all my mushroom cover cards are not showing an icon.
And the most confusing is that one mushroom entity card is showing an icon but the other card with the same configuration but other entity is not.
had the same problem with three custom:button-cards. Setting an icon manually solved the problem.
I would definitely say that caching is not an issue here. But I have no idea what the problem is.

And this is the same here aswell: if I manually set the icons in my Lovelace config they are displayed. If I don’t set an icon it is sometimes displayed and sometimes not. Can’t figure out the reason. And can’t set icon for cover manually cause they are different depending on state.

Tried downgrade to 3.3.0 of mushroom - same issue. Tried downgrade to ha core 2024.1.5 - same issue. Absolutely no idea when this problem started occuring. 😫

Here is also a guy reporting about this issue in relation to button-card and a notice about a blog post that you wrote @piitaya see https://github.com/home-assistant/core/issues/109244


Adds a new HttpMessageConverter for Rest Proxy

Allows our Rest Proxy to handle wisc.edu/directory, wiscmail, and possibly google searching.

:+1:


development environment entry: ESP32 Linux Docker Builder

Summary
New development environment entry or container solution to compile Linux and develop it for ESP32 micro-controllers.

Hey @hpsaturn,
is your repository still WIP (v0.0.2)? If yes, please prefix it with :construction: :construction:.

Hey @hpsaturn, is your repository still WIP (v0.0.2)? If yes, please prefix it with :construction: 🚧.

mmm not. It is ready, and also it has some releases. Maybe I should change the version. But is ready for development or production.


updatecli can't cope with Ruby releases

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
The latest Ruby version is 3.2.2.
I would like updatecli to retrieve 3.2.2 and not 3.0.6.
SOURCES
=======

rubyLatestVersionByLatest
-------------------------
DEBUG: GitHub Api credit used used 1, remaining 4977 (reset at 2023-06-21T15:50:08Z)
DEBUG: 8 releases found
Searching for version matching pattern "latest"
✔ Github Release version "v3_0_6" found matching pattern "latest"

rubyLatestVersionByRegex
------------------------
DEBUG: GitHub Api credit used used 1, remaining 4975 (reset at 2023-06-21T15:50:08Z)
DEBUG: 8 releases found
Searching for version matching pattern "v3_(\\d+)_(\\d+)$"
✔ Github Release version "v3_0_6" found matching pattern "v3_(\\d+)_(\\d+)$"

rubyDockerImageLatestVersion
----------------------------
DEBUG: Searching tags for the image "index.docker.io/library/ruby"
DEBUG: 1130 Docker image tag(s) found

Searching for version matching pattern "\\d\\.\\d\\.\\d$"
✔ Docker Image Tag "3.2.2" found matching pattern "\\d\\.\\d\\.\\d$"

Expected Behavior
The latest Ruby version is 3.2.2.
I would like updatecli to retrieve 3.2.2 and not 3.0.6.
Steps To Reproduce
---
name: Bump the various docker images versions for the Ruby version

scms:
  default:
    kind: github
    spec:
      user: "{{ .github.user }}"
      email: "{{ .github.email }}"
      owner: "{{ .github.owner }}"
      repository: "{{ .github.repository }}"
      token: "{{ requiredEnv .github.token }}"
      username: "{{ .github.username }}"
      branch: "{{ .github.branch }}"

sources:
  rubyLatestVersionByRegex:
    name: "Get the latest Ruby version by regex"
    kind: githubrelease
    spec:
      owner: "ruby"
      repository: "ruby"
      token: "{{ requiredEnv .github.token }}"
      username: "{{ .github.username }}"
      versionfilter:
        kind: regex
        pattern: 'v3_(\d+)_(\d+)$'
    transformers:
      - trimprefix: "v"
      - replacer:
         from: "_"
         to: "."
  rubyLatestVersionByLatest:
    name: "Get the latest Ruby version"
    kind: githubrelease
    spec:
      owner: "ruby"
      repository: "ruby"
      token: "{{ requiredEnv .github.token }}"
      username: "{{ .github.username }}"
      versionfilter:
        kind: latest
    transformers:
      - trimprefix: "v"
      - replacer:
          from: "_"
          to: "."
  rubyDockerImageLatestVersion:
    kind: dockerimage
    name: "Get the latest Ruby version"
    spec:
      image: "ruby"
      tagFilter: >-
        \d\.\d\.\d$
      versionfilter:
        kind: regex
        pattern: >-
          \d\.\d\.\d$

conditions:
  testRubyAlpineImagePublished:
    name: "Test ruby:3.x.x-alpine-3.xx docker image tag"
    kind: dockerimage
    sourceid: rubyLatestVersionByLatest
    spec:
      image: "ruby"
      tag: '{{ source "rubyLatestVersionByLatest" }}'

On WSL2/Debian, I run the following command:
updatecli diff --debug --config updatecli/updatecli.d/ruby-github-release.yaml --values updatecli/values.github-action.yaml
gives:
+++++++++++
+ PREPARE +
+++++++++++

Loading Pipeline "updatecli/updatecli.d/ruby-github-release.yaml"
DEBUG: stage: git-clone

SCM repository retrieved: 1
DEBUG: cloning git repository: https://github.com/jenkins-infra/jenkins.io.git in /tmp/updatecli/github/jenkins-infra/jenkins.io
DEBUG:
DEBUG: fetching remote branches
DEBUG: stage: git-checkout

DEBUG: checkout branch "updatecli_c2baf2798f194cd1a3151fa722802086999a172ee2c3a46012a6f1942f7b49ec", based on "master" to directory "/tmp/updatecli/github/jenkins-infra/jenkins.io"
DEBUG:
DEBUG: branch 'updatecli_c2baf2798f194cd1a3151fa722802086999a172ee2c3a46012a6f1942f7b49ec' doesn't exist, creating it from branch 'master'
DEBUG: branch "updatecli_c2baf2798f194cd1a3151fa722802086999a172ee2c3a46012a6f1942f7b49ec" successfully created

++++++++++++++++++
+ AUTO DISCOVERY +
++++++++++++++++++

++++++++++++
+ PIPELINE +
++++++++++++

################################################################
# BUMP THE VARIOUS DOCKER IMAGES VERSIONS FOR THE RUBY VERSION #
################################################################

SOURCES
=======

rubyLatestVersionByLatest
-------------------------
DEBUG: GitHub Api credit used used 1, remaining 4977 (reset at 2023-06-21T15:50:08Z)
DEBUG: 8 releases found
Searching for version matching pattern "latest"
✔ Github Release version "v3_0_6" found matching pattern "latest"

CHANGELOG:
----------

Release published on the 2023-03-30 13:13:37 +0000 UTC at the url https://github.com/ruby/ruby/releases/tag/v3_0_6

## Security Fixes

* [CVE-2023-28755: ReDoS vulnerability in URI](https://www.ruby-lang.org/en/news/2023/03/28/redos-in-uri-cve-2023-28755/)
* [CVE-2023-28756: ReDoS vulnerability in Time](https://www.ruby-lang.org/en/news/2023/03/30/redos-in-time-cve-2023-28756/)

## What's Changed

* [Bug #19187: Ruby 3.1.3 testsuite fails after timezone 2022g update is applied](https://bugs.ruby-lang.org/issues/19187)
* [Rename --jit to --mjit by k0kubun · Pull Request #5248](https://github.com/ruby/ruby/pull/5248)
* [Merge URI-0.10.2 for Ruby 3.0 by hsbt · Pull Request #7607](https://github.com/ruby/ruby/pull/7607)
* [Bug #19161: Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7](https://bugs.ruby-lang.org/issues/19161)

Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.

## Full Changelog

https://github.com/ruby/ruby/compare/v3_0_5...v3_0_6

rubyLatestVersionByRegex
------------------------
DEBUG: GitHub Api credit used used 1, remaining 4975 (reset at 2023-06-21T15:50:08Z)
DEBUG: 8 releases found
Searching for version matching pattern "v3_(\\d+)_(\\d+)$"
✔ Github Release version "v3_0_6" found matching pattern "v3_(\\d+)_(\\d+)$"

CHANGELOG:
----------

Release published on the 2023-03-30 13:13:37 +0000 UTC at the url https://github.com/ruby/ruby/releases/tag/v3_0_6

## Security Fixes

* [CVE-2023-28755: ReDoS vulnerability in URI](https://www.ruby-lang.org/en/news/2023/03/28/redos-in-uri-cve-2023-28755/)
* [CVE-2023-28756: ReDoS vulnerability in Time](https://www.ruby-lang.org/en/news/2023/03/30/redos-in-time-cve-2023-28756/)

## What's Changed

* [Bug #19187: Ruby 3.1.3 testsuite fails after timezone 2022g update is applied](https://bugs.ruby-lang.org/issues/19187)
* [Rename --jit to --mjit by k0kubun · Pull Request #5248](https://github.com/ruby/ruby/pull/5248)
* [Merge URI-0.10.2 for Ruby 3.0 by hsbt · Pull Request #7607](https://github.com/ruby/ruby/pull/7607)
* [Bug #19161: Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7](https://bugs.ruby-lang.org/issues/19161)

Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.

## Full Changelog

https://github.com/ruby/ruby/compare/v3_0_5...v3_0_6

rubyDockerImageLatestVersion
----------------------------
DEBUG: Searching tags for the image "index.docker.io/library/ruby"
DEBUG: 1130 Docker image tag(s) found

Searching for version matching pattern "\\d\\.\\d\\.\\d$"
✔ Docker Image Tag "3.2.2" found matching pattern "\\d\\.\\d\\.\\d$"
DEBUG: empty changelog found for the source

CONDITIONS:
===========

testRubyAlpineImagePublished
----------------------------
✔ The Docker image index.docker.io/library/ruby:3.0.6 (amd64) exists and is available.

=============================

REPORTS:

- Bump the various docker images versions for the Ruby version:
        Source:
                ✔ [rubyDockerImageLatestVersion] Get the latest Ruby version (kind: dockerimage)
                ✔ [rubyLatestVersionByLatest] Get the latest Ruby version (kind: githubrelease)
                ✔ [rubyLatestVersionByRegex] Get the latest Ruby version by regex (kind: githubrelease)
        Condition:
                ✔ [testRubyAlpineImagePublished] Test ruby:3.x.x-alpine-3.xx docker image tag (kind: dockerimage)

Run Summary
===========
Pipeline(s) run:
  * Changed:    0
  * Failed:     0
  * Skipped:    1
  * Succeeded:  0
  * Total:      1

Environment
- OS: WSL2/Debian
- updatecli: 0.53.0

Anything else?
No response

The problem here is the we have different interpretation of "latest"
According the log v3_0_6  was released on 2023-03-30 21:41:03 +0900

git log -1 --format=%ai v3_0_6

While v3_2_2 was released on 2023-03-30 20:06:29 +0900

git log -1 --format=%ai v3_2_2

This means that v3_0_6 is more recent than v3_2_2
They are different ways to sort a list of tag but the challenge is to express the meaning we are looking for

Hopefully, the next ruby release will sort everything out... or make things even worse. 🤣

Using the github release seems to be what you are looking for
sources
  rubyLatestVersionGithubRelease:
    name: "Get the latest Ruby version"
    kind: githubrelease
    spec:
      owner: ruby
      repository: ruby
      token: '{{ requiredEnv "UPDATECLI_GITHUB_TOKEN" }}'
      username: '{{ requiredEnv "UPDATECLI_GITHUB_ACTOR" }}'
      typefilter:
        latest: true

I am closing this issue for now as I don't think it is an issue.
If you have a suggestion for a new versionfilter which could work in the current scenario feel free to reopen


Fix queue test

Fix #30643
The old test code is not stable due to the data-race described in the TODO added at that time.
Make it stable, and remove a debug-only field from old test code.
Without the key code, the test fails with:
=== RUN   TestWorkerPoolQueueWorkerIdleReset
    workerqueue_test.go:283:
        	Error Trace:	/Users/xiaoguang/work/gitea/modules/queue/workerqueue_test.go:283
        	Error:      	Should be false
        	Test:       	TestWorkerPoolQueueWorkerIdleReset
        	Messages:   	a slow handler should not block other workers from starting
--- FAIL: TestWorkerPoolQueueWorkerIdleReset (0.56s)

No 1.22 backport?

No 1.22 backport?

1.22 is totally broken, some other backports are also missing like #30417
That's why I have explained many times about restarting the 1.22 release from main branch.

I was unable to create a backport for 1.21. @wxiaoguang, please send one manually. :tea:
go run ./contrib/backport 30646
...  // fix git conflicts if any
go run ./contrib/backport --continue


[SPARK-11383][Docs] Replaced example code in mllib using include_example

I have made the required changes in mllib-naive-bayes.md/mllib-isotonic-regression.md and also verified them.
Kindle Review it.

Can one of the admins verify this patch?

ok to test

@yinxusen Could you help review this PR?

@rishabhbhardwaj Thanks for working on this! I saw some code style issues in your code. You might want to check the Spark Code Style guide first at https://cwiki.apache.org/confluence/display/SPARK/Spark+Code+Style+Guide.

Merged build triggered.

Merged build started.

Test build #44607 has started for PR 9353 at commit f40fcc1.

Test build #44607 has finished for PR 9353 at commit f40fcc1.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaIsotonicRegressionExample \n  * public class JavaNaiveBayesExample \n

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/44607/
Test FAILed.

@mengxr Thanks for your comments.I have corrected the code style issues and locally ran the style checks and they passed.

Jenkins test this please

Merged build triggered.

Merged build started.

Test build #44617 has started for PR 9353 at commit d9c143e.

Test build #44617 has finished for PR 9353 at commit d9c143e.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaIsotonicRegressionExample \n  * public class JavaNaiveBayesExample \n

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/44617/
Test PASSed.

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #44620 has started for PR 9353 at commit 11804bb.

@rishabhbhardwaj Please update the title with more specific infomation.

Test build #44620 has finished for PR 9353 at commit 11804bb.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaIsotonicRegressionExample \n  * public class JavaNaiveBayesExample \n

Merged build triggered.

Merged build started.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/44620/
Test PASSed.

Merged build finished. Test PASSed.

Test build #44623 has started for PR 9353 at commit 256fb3a.

Test build #44623 has finished for PR 9353 at commit 256fb3a.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaIsotonicRegressionExample \n  * public class JavaNaiveBayesExample \n

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/44623/
Test FAILed.

Merged build triggered.

Merged build started.

Test build #44628 has started for PR 9353 at commit d1f5afd.

Test build #44628 has finished for PR 9353 at commit d1f5afd.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaIsotonicRegressionExample \n  * public class JavaNaiveBayesExample \n

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/44628/
Test PASSed.

@yinxusen Thanks for your comments.

@mengxr This pr LGTM, except for some blank lines.

Merged build triggered.

Merged build started.

Test build #44653 has started for PR 9353 at commit b4a64a2.

Test build #44653 has finished for PR 9353 at commit b4a64a2.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaIsotonicRegressionExample \n  * public class JavaNaiveBayesExample \n

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/44653/
Test PASSed.

Merged build finished. Test PASSed.

@yinxusen I have removed the empty lines.Thanks for the comments.

Merged build triggered.

Merged build started.

Test build #44668 has started for PR 9353 at commit 331eab2.

Test build #44668 has finished for PR 9353 at commit 331eab2.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaIsotonicRegressionExample \n  * public class JavaNaiveBayesExample \n

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/44668/
Test PASSed.

Merged build finished. Test PASSed.

@mengxr Thanks for your comments and patience.I have made the required changes.


Use dep to encode and install dependencies

Pull Request Test Coverage Report for Build 90

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 31.321%

Totals

Change from base Build 88:
0.0%

Covered Lines:
166

Relevant Lines:
530

💛  - Coveralls

Looks fine. I'm only curious about the Gopkg.lock file, is that a temporary file or is it supposed to be there?

Thanks for clarifying, ship-it!


Add the possibility to scale derived scenarios

A pull request to scaled derived datasets. This also includes some clean-up to the Input class.

This doesn't work yet @antw 😆 but maybe you could take a look why it doesn't. The caching fetches the incorrect values somehow ... 🤔 but I modified the cache a little so it caches the scaled values for a Derived dataset. That seems to be working, but scaling an already scaled scenario (scale-ception (being derived or not derived)) is currently not working as expected (it looks as though the cache is not properly removed or it reads old values .... I'm not sure though ).
If you have time; could you take a quick peek into what seems to be the problem.

@grdw Is there a specific ETSource branch or config I need to run this? I tried with local-datasets-ameland-mock-dataset, but I get an error whenever I try to start a scenario in "ameland". I tried creating a new derived dataset in case "ameland" was out-of-date, but that has the same problem.
It appears this is because the "agriculture_chp_engine_biogas" node (a CentralProducer) is missing the a value for full_load_hours, which is one of the values supposedly exported by Atlas (it is likely this affects all central producers; just that this is the first one used). Indeed, "ameland.pack" does not have a value, but "nl.pack" does:
MessagePack.load(File.read('tmp/atlas/ameland.pack'))['nodes']['agriculture_chp_engine_biogas']['full_load_hours']
# => nil

MessagePack.load(File.read('tmp/atlas/nl.pack'))['nodes']['agriculture_chp_engine_biogas']['full_load_hours']
# => 8000.0
# https://github.com/quintel/etsource/blob/master/datasets/nl/central_producers.csv#L38

I don't see any sign of the attribute in the graph.yml in ETSource; I think it should be there since it is a dynamic attribute. I suspect that is the source of the problem, although I'm not sure why I have this issue but other's don't. 😕
NoMethodError - undefined method `*' for nil:NilClass:
  app/models/qernel/converter_api/capacity_production.rb:65:in `full_load_seconds'
  app/models/qernel/converter_api/helper_calculations.rb:15:in `block in number_of_units'
  app/models/qernel/dataset_attributes.rb:208:in `fetch'
  app/models/qernel/converter_api/helper_calculations.rb:12:in `number_of_units'
  app/models/qernel/plugins/merit/adapter.rb:47:in `producer_attributes'
  app/models/qernel/plugins/merit/producer_adapter.rb:37:in `producer_attributes'
  app/models/qernel/plugins/merit/always_on_adapter.rb:7:in `producer_attributes'
  app/models/qernel/plugins/merit/adapter.rb:30:in `participant'
  app/models/qernel/plugins/simple_merit_order.rb:72:in `block in setup'
  app/models/qernel/plugins/simple_merit_order.rb:122:in `block in each_adapter'
  app/models/qernel/plugins/simple_merit_order.rb:122:in `each_adapter'
  app/models/qernel/plugins/simple_merit_order.rb:71:in `setup'
  app/models/qernel/plugins/plugin.rb:28:in `block in trigger'
  app/models/qernel/plugins/plugin.rb:26:in `trigger'
  app/models/qernel/lifecycle.rb:62:in `block in with_callback'
  app/models/qernel/lifecycle.rb:61:in `with_callback'
  app/models/qernel/lifecycle.rb:26:in `calculate'
  app/models/qernel/graph.rb:289:in `calculate'
  app/models/gql/gql.rb:274:in `calculate_graphs'
  app/models/gql/gql.rb:214:in `block in prepare'
  lib/instrumentable.rb:5:in `block in instrument'
  activesupport (4.1.5) lib/active_support/notifications.rb:159:in `block in instrument'
  activesupport (4.1.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  activesupport (4.1.5) lib/active_support/notifications.rb:159:in `instrument'
  lib/instrumentable.rb:4:in `instrument'
  app/models/gql/gql.rb:214:in `prepare'
  app/models/scenario.rb:170:in `gql'
  app/controllers/data/base_controller.rb:21:in `initialize_gql'

I think you should just use local-datasets in ETSource. The local-datasets-ameland-mock-dataset should be removed from ETSource as a branch because I pushed it as en example for Berend.

but I modified the cache a little so it caches the scaled values for a Derived dataset [...] but scaling an already scaled scenario (scale-ception (being derived or not derived)) is currently not working as expected (it looks as though the cache is not properly removed or it reads old values .... I'm not sure though ).
If you have time; could you take a quick peek into what seems to be the problem.

That's your problem. 😉
Previously, Input.cache looked like this:
def self.cache(scenario = nil)
  if scenario && scenario.scaler
    scenario.scaler.input_cache
  else
    @_cache ||= Input::Cache.new
  end
end

... and now it looks like this:
def self.cache(scenario = nil)
  if scenario && scenario.scaler
    @input_cache ||= ScaledInputs.new(Input.cache, scenario.gql)
  else
    @_cache ||= Cache.new
  end
end

Previously, a scaled scenario used an input cache which was memoized on the scaler; this meant that the cache was scoped to the scenario. This is necessary since scenarios could be scaled to any value (therefore their values cannot actually be cached). You've moved the memoization into Input.cache and in doing so made the cache global: every scaled scenario will use it.

@antw Yes, that's the one! Probably related: https://github.com/quintel/etsource/issues/1215

This looks pretty good to me: scaling and re-scaling derived scenarios seems to work nicely. I do have one small issue:

I created a dataset derived from NL with 10000 households as the scaling value.
Opened a new scenario using that derived dataset.
ETModel is showing unscaled inputs:

App.settings.get_scaling() returns null. Is that supposed to return the derived dataset scaling? I suspect this happens because ETModel has a fixed-coded step value of 0.1 (defined in the DB) and there's no scaling present to adjust the step. The values coming out of ETEngine look to be correctly scaled, so perhaps this is intentional and you mean to get rid of the hard-coded ETM step?
{
  "min": 0.011262520978486833,
  "max": 0.04505008391394733,
  "default": 0.022525041956973666,
  "step": 0.0001,
  "code": "households_number_of_inhabitants",
  "unit": "#"
}

FYI: I scaled the scenario to 1k and then re-scaled to 100 households; that works perfectly:

App.settings.get_scaling() returns null. Is that supposed to return the derived dataset scaling?

It should. I'm wondering why it doesn't though. 🤔

It shouldn't. I'm wondering why it doesn't though. 🤔

I think I have a clue:

If I start a new scenario using the derived dataset from the front-page (the region/end year form) everything works as expected.

If I start a scenario by cloning an existing one (etmodel.dev/scenarios/:id), the scaling is null.

I think I have a clue: [...]

Oh. It looks like there's a whole different code path when starting an existing scenario from scenarios/:id:

From the front-page.
From scenarios/:id

I should have refactored that when I implemented scaling. 😞  I think we might be best combining those two implementations so that there's only one.


how to loop audio and how to stop audio

There seems to be no explanation in the document.

ok, it's great, thanks for your answer


node-gyp cannot find the python installed by cygwin.

Node Version: 10.19.0
Platform: CYGWIN_NT-6.3 cp01-win2012-20 3.0.7(0.338/5/3) 2019-04-30 18:08 x86_64 Cygwin
Compiler:
Module: https://github.com/microsoft/node-pty

Verbose output (from npm or node-gyp):
[2020-04-02 19:07:10] gyp info using<EMAIL_ADDRESS>[2020-04-02 19:07:10] gyp info using<EMAIL_ADDRESS>| win32 | x64
[2020-04-02 19:07:10] gyp verb command rebuild []
[2020-04-02 19:07:10] gyp verb command clean []
[2020-04-02 19:07:10] gyp verb clean removing "build" directory
[2020-04-02 19:07:10] gyp verb command configure []
[2020-04-02 19:07:10] gyp sill find Python runChecks: err = undefined
[2020-04-02 19:07:10] gyp verb find Python checking Python explicitly set from NODE_GYP_FORCE_PYTHON
[2020-04-02 19:07:10] gyp verb find Python - process.env.NODE_GYP_FORCE_PYTHON is "D:\cygwin\bin\python2.7.exe"
[2020-04-02 19:07:10] gyp verb find Python - executing "D:\cygwin\bin\python2.7.exe" to get executable path
[2020-04-02 19:07:10] gyp sill find Python execFile: exec = "\"D:\\cygwin\\bin\\python2.7.exe\""
[2020-04-02 19:07:10] gyp sill find Python execFile: args = ["\"-c\"","\"import sys; print(sys.executable);\""]
[2020-04-02 19:07:11] gyp sill find Python execFile result: err = null
[2020-04-02 19:07:11] gyp sill find Python execFile result: stdout = "/usr/bin/python2.7\n"
[2020-04-02 19:07:11] gyp sill find Python execFile result: stderr = ""
[2020-04-02 19:07:11] gyp verb find Python - executable path is "/usr/bin/python2.7"
[2020-04-02 19:07:11] gyp verb find Python - executing "/usr/bin/python2.7" to get version
[2020-04-02 19:07:11] gyp sill find Python execFile: exec = "/usr/bin/python2.7"
[2020-04-02 19:07:11] gyp sill find Python execFile: args = ["-c","import sys; print(\"%s.%s.%s\" % sys.version_info[:3]);"]
[2020-04-02 19:07:11] gyp sill find Python execFile result: stdout = ""
[2020-04-02 19:07:11] gyp sill find Python execFile result: stderr = ""
[2020-04-02 19:07:11] gyp verb find Python - "/usr/bin/python2.7" could not be run
[2020-04-02 19:07:11] gyp sill find Python runChecks: err = "Error: spawn /usr/bin/python2.7 ENOENT\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)\n    at onErrorNT (internal/child_process.js:415:16)\n    at process._tickCallback (internal/process/next_tick.js:63:19)"
[2020-04-02 19:07:11] gyp ERR! find Python
[2020-04-02 19:07:11] gyp ERR! find Python checking Python explicitly set from NODE_GYP_FORCE_PYTHON
[2020-04-02 19:07:11] gyp ERR! find Python - process.env.NODE_GYP_FORCE_PYTHON is "D:\cygwin\bin\python2.7.exe"
[2020-04-02 19:07:11] gyp ERR! find Python - executable path is "/usr/bin/python2.7"
[2020-04-02 19:07:11] gyp ERR! find Python - "/usr/bin/python2.7" could not be run
[2020-04-02 19:07:11] gyp ERR! find Python
[2020-04-02 19:07:11] gyp ERR! find Python **********************************************************
[2020-04-02 19:07:11] gyp ERR! find Python You need to install the latest version of Python.
[2020-04-02 19:07:11] gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
[2020-04-02 19:07:11] gyp ERR! find Python you can try one of the following options:
[2020-04-02 19:07:11] gyp ERR! find Python - Use the switch --python="C:\Path\To\python.exe"
[2020-04-02 19:07:11] gyp ERR! find Python   (accepted by both node-gyp and npm)
[2020-04-02 19:07:11] gyp ERR! find Python - Set the environment variable PYTHON
[2020-04-02 19:07:11] gyp ERR! find Python - Set the npm configuration variable python:
[2020-04-02 19:07:11] gyp ERR! find Python   npm config set python "C:\Path\To\python.exe"
[2020-04-02 19:07:11] gyp ERR! find Python For more information consult the documentation at:
[2020-04-02 19:07:11] gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
[2020-04-02 19:07:11] gyp ERR! find Python **********************************************************
[2020-04-02 19:07:11] gyp ERR! find Python
[2020-04-02 19:07:11] gyp ERR! configure error
[2020-04-02 19:07:11] gyp ERR! stack Error: Could not find any Python installation to use

I'm using node-gyp on a Windows machine which installed python using cygwin. And cygwin installed python 2.7.16 at D:\cygwin\bin\python2.7.exe which was the NODE_GYP_FORCE_PYTHON I set, but node-gyp can't use this python due to the follow logic.
According to the log, we could find that node-gyp could using the D:\cygwin\bin\python2.7.exe. After that it executing a script to get the sys.executablevariable, but the python installed by cygwin return this value as "/usr/bin/python2.7", not D:\cygwin\bin\python2.7.exe that we need.
Then as node-gyp getting the python using "/usr/bin/python2.7" by spawn, spawn could not recognize the unix like path that cygwin python provided, so the error ENOENT throwed and node-gyp treat this python as invalid.
I think maybe we could support this case by supporting some way to skip the sys.executable check, maybe a new environment variable like NODE_GYP_FORCE_PYTHON.
Thank you.

What command did you type?
What do you see when you: D:\cygwin\bin\python2.7.exe --version

The recommended way is to use the Windows Store, as in the README. I don't see a way we could support all the Python installations that do not play along nicely.

The recommended way is to use the Windows Store, as in the README. I don't see a way we could support all the Python installations that do not play along nicely.

Maybe you're right, I'll close this issue. It took me hours to find this problem, and hope this issue could save others time.


More patterns

TBD

Current coverage is 65.81%

Merging #48 into master will not affect coverage as of 4dab439

Powered by Codecov. Updated on successful CI builds.

LGTM


Add manual to pipeline status

Add "manual" to pipeline status to be able to load pipelines which are in state "manual"

Codecov Report

Merging #138 into master will decrease coverage by 0.25%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #138      +/-   ##
==========================================
- Coverage   71.85%   71.59%   -0.26%
==========================================
  Files         163      162       -1
  Lines        2334     2299      -35
==========================================
- Hits         1677     1646      -31
+ Misses        657      653       -4

Impacted Files
Coverage Δ

...ient/Internal/Http/Serialization/JsonSerializer.cs
100.00% <0.00%> (ø)

src/GitLabApiClient/ConnectionClient.cs

src/GitLabApiClient/GitLabClient.cs
98.80% <0.00%> (+1.37%)
:arrow_up:

fixed in #147


Need some clarity on "monitoring_agent"

Hi *
I'd like to have some clarity on the current and maybe future usage of the parameter

  monitoring_agent_enabled:

in all of the values.yaml files.
ATM (1.4.7 and develop branch) setting this parameter will only affect the configuration of the logging ConfigMap according to

https://github.com/splunk/splunk-connect-for-kubernetes/issues/498
https://github.com/splunk/splunk-connect-for-kubernetes/pull/340

This parameter is also set to true in all the specific values.yaml files for each chart (metrics, objects), but it will
only have an effect for the logging ConfigMap since only that template does a check for the monitoring_agent parameter
and acts accordingly:
{{- if .Values.global.monitoring_agent_enabled }}
@include monit.conf

This code is missing in the objects and metrics ConfigMaps's templates so it will never be activated in these charts.
The background is that we use this endpoint as a poor man's liveness probe on OCP to mitigate Ruby crashes in the objects pod.
(I'm open ears for a better idea on the whole livenessprobe issue. It's not ideal but mostly working).
Right now we have to explicitly change the fluent.conf for metrics, metrics-agg and objects which is a bit cumbersome using ansible playbooks. If we could control it using the umbrella values.yaml, that would help a lot.
So my enhancement request would be

Add a comment in the umbrella values.yaml explaining what the parameter does (and does not!) would be nice
Allow configuration of "monitoring_agent" for all charts in their specific section in the umbrella values.yaml.

thx

Hi @gnarc,
Seems like it was my error.
I had a problem described in #498
When I found problem I created PR #340 for these changes but accidentally added parameter in all values.yaml files.
I followed the next steps

I have searched prometheus_enabled
Created similar changes with PR #340

Original prometheus_enabled added to the same files where we can find  monitoring_agent_enabled

Hi @retraut,
thanks for the quick reply.
What are the chances to get this feature?
From my understanding most of the work has already been done, all there's missing seem to be the code snippets for the remaining three ConfigMap templates,
probably something like this
{{- if .Values.global.monitoring_agent_enabled }}
    <source>
      @id fluentd-monitor-agent
      @type monitor_agent
      @label @SPLUNK
      tag monitor_agent
    </source>
{{- end }}

plus some tweaks in the values.yaml. For prometheus_enabled the same if desired.
Not much of a coder to provide a PR...
Cheers

I think a correct action - is to remove values monitoring_agent_enabled and  prometheus_enabled from other charts except splunk-kubernetes-logging

I see. From the perspective of cleaning up code, I agree.
From an enhancement point of view...is there any reason not to have it? After all it has already been put in place for one out of four components.


Improvements made while working on SCP-Clicker

fixed an error with dynamics of creating text element
added move method to elements
removed duplicate inspect submodule
added pop.constants (for now just for use with mouse handling, future TBD)
made pop.load() able to be called multiple times and used to load additional elements/skins/extensions at any time from anywhere

I'm making this comment as a separator between further commits and to remind myself to update the description of what has changed on this branch later.

In all commits to this point, here are the changes:

Element:align() should always return the element for chaining, it's your fault if you attempt to align something that doesn't have that set (note: I am uncertain I want to keep this thought, it kinda makes sense align should warn you somehow if you call it and it isn't supposed to be)
text element parameters are properly optional now
text element can accept non-text data as long as tostring() on it will work
text:getText() method
text:setColor() method
added check to get hovered element, in pop.hovered
fixed bug in output of printElementTree
elements update by default
element:setPosition()
element:delete()
element:move() moves children like it was supposed to (whoops!)
debugDraw stuff moved into pop instead of expecting elements to have that (that was a stupid decision past me)
debugInfo expected in elements to give additional info besides type (this is a better idea to have as a soft requirement)
mousereleased events now only activate on drawn elements
fixed order of event calling (but I'm not sure ultimately whether I broke and then fixed it or fixed it, or both for different parts)
data.hoverable boolean on elements, defaults to true
pop.wheelmoved() event handler added
pre-0.10.0 mousewheel events are handled like post-0.10.0 events

element:getPosition() added
removed duplicate checks in mouse handling
event handlers now must explicitly return false when they fail to handle an event, instead of explicitly returning a truthy value on success (in other words, an event handler handles an event unless it returns false)


Clarification on vonoroi seed values

Description
I'm a happy user of LanceDB but I'd like to understand the internals a bit better, in particular how the index is created. When I check the docs page it mentions that the vector space is divided into Vonoroi cells, it's the part with this image.

The quantization bit before is super clear to me, but I'm not sure how these Vonoroi cells are created. I understand how a collection of seed points can determine the boundaries of each cell, but how are these seed points chosen? Are these chosen randomly or do the internals do something clever to pick seed points? My gut is assuming that you can do something clever if you have knowledge of the distribution of your vectors, but I couldn't find the resources on how lancedb currently does this.
I'll gladly contribute to the docs if somebody could help me understand.
Link
https://lancedb.github.io/lancedb/concepts/index_ivfpq/#product-quantization

Ah, ok that's not unreasonable. Mind if I make a PR to add that little detail to the docs though? I can imagine it would give just that extra bit of context to folks.

Made one over here, thanks, https://github.com/lancedb/lancedb/pull/1114


test(connectObservable): add test combining ErrorBoundary and Suspense

I've found this issue where if a stream throws an error before emitting any value, the error can't be caught in an ErrorBoundary.
I've made this test that describes the issue and fails with the current version. A codesandbox can be found here
For reference, react uses this sandbox to show how the error is caught also in data fetching. I had a quick look and I think that they have it working because  the component throws an error if the promise rejected.

Closing this in favour of #54


security/acme-client: add support for generic post-cert-issue hooks

[X] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
[X] I have searched the existing issues, open and closed, and I'm convinced that mine is new.
[X] When the request is meant for an existing plugin, I've added its name to the title.

Is your feature request related to a problem? Please describe.
This is a spinoff for #2757.
In short: I have a small collection of shell scripts that move certificates onto various devices throughout my network. Some of the devices in question require a non-trivial amount of work to install the certificate into the device.
As of right now, it is possible to configure opnSense to execute an arbitrary script after cert issuance through configd.
Unfortunately, this script must have preexisting knowledge of where on disk the cert/key material resides or must know the full set of domain(s) that the cert is meant for so it can iterate over every certificate on disk looking for the one that matches all domains.
The path to the key material can be obtained from reading the logs but there appears to be no way to pass this into a user-defined action/script/command.
Describe the solution you'd like
I am looking for a way to invoke an arbitrary shell script after the acme client successfully (re)issues a TLS certificate. This invocation mechanism should pass some information about the recent certificate issuance into the script.
Depending on implementation, this data should be made available to the script:

Domain(s) for which the certificate is good for. CN + SAN(s). Either a space delineated string with the CN as first domain and SAN(s) following or a dedicated split between CN and additional SAN(s).
The location on disk for the key material

I am not super familiar with the internals of opnSense but I can see a few reasonable implementations:

A symlink is created. The location/name of the symlink would be well known/deterministic. E.G.: The certificate common name is appended to a well known path. For a certificate issued to foo.example.net, a symlink from /var/etc/acme-client/certs/links/example.foo.net/ to /var/etc/acme-cllient/certs/someUUIDHere/ would be made.  This might be a bad idea if the UUID changes at any point immediately after the acme client runs before the automation is done.
A fixed and well known set of arguments is provided. The first argument will always be the common name $argv[1] => foo.example.net, the second argument will always be the path on disk: $argv[2] => /var/etc/acme-client/certs/someUUIDHere/ ... etc.  This might require a small "send arguments to automation" checkbox; sending arguments to automation that don't expect them could end poorly... or could be fine. /shrug
A similar approach but instead of command line arguments, env vars. E.G.: .$_ENV["ACME_CERT_CN"] => 'foo.example.net'.
The user is given a simple text box into which they can define the string which will be passed to the script. The input supports tokens for each of the bits of data. E.G.:

command: someUserCreatedConfigDCommandHere
arguments: --log-level=WARN --otherScriptArgumentHere .... --cert-cn=${ACME_CERT_CN} --cert-location=${ACME_CERT_DIR}

where ${ACME_CERT_CN} and ${ACME_CERT_DIR} would be replaced with foo.example.net and /var/etc/acme-client/certs/someUUIDHere/ and the entire string is appended to whatever the command: value for /usr/local/opnsense/service/conf/actions.d/actions_myCertHooks.conf is.  The system would basically exec:
/root/acme_hooks/deployCertToThing.sh --log-level=WARN --otherSccriptArgumentHere --cert-cn=foo.example.net --cert-location=/var/etc/acme-client/certs/someUUIDHere/
Describe alternatives you've considered

Manually running the first certificate issuance and then pulling the key material path from the logs and then hard-coding that into the actions.d/actions_MyCustomStuff.conf file
Doing a for d in ls /var/etc/acme-client/certs/ do; openssl x509 -noout -subject -in d.pem and then branching into relevant code when the correct certificate is found.
Spinning up separate infrastructure to own the certificate request/deploy stuff and keeping the ACME client in opnsense dealing only with the web ui cert

Additional context
https://forum.opnsense.org/index.php?topic=27682.0

Somehow same with me, would like to move from pfSense to OPNSense but since I have some 30-40 shell scripts pushing acme certs from pfSense to various systems doing various individual things I am also badly missing to be able to trigger an arbitrary shell script after the certificate was renewed in ACME-Client on OPNSense. If there was a way to address the Cert/Key/Fullchain Bundle by a well known or fixed name all my problems would be solved and I could gladly move from pfSense to OPNSense...

I have some 30-40 shell scripts pushing acme certs from pfSense to various systems doing various individual things I am also badly missing to be able to trigger an arbitrary shell script after the certificate was renewed in ACME-Client on OPNSense.

I came to my senses and created a basic deployment of the Certbot docker container. The shell scripts that would normally be executed by pfSense now accompany the docker container and are executed as post deploy hooks.
Certbot is run daily and for each certificate that is renewed, the shell script is executed which does the necessary conversion/transfer.
Currently this runs in my k8s cluster but this could live anywhere on the network.

Yeah, did something similar using acme.sh docker and docker...


How to set build args split-per-abi

When packaging, for the size of the package, I used flutter build apk --split-per-abi, how to set this parameter in yaml

you can try like this
releases:
  - name: release-android
    jobs:
      - name: release-android-dev
        package:
          platform: android
          target: apk
          channel: dev2
          build_args:
            split-per-abi: ''
            flavor: dev
            dart-define:
              APP_ENV: dev

try this I get error.


Update_regs() in raspiraw.c has some bugs.

Hi,
I've got some fixes that I'd like to submit.
Setting exposure and gain does not really work that well since the values written to registers are not correct.
Can someone give me permission to create a branch in the repo and I'll be able to create a pull request?
Regards,
Gustav

Fork the project into your own account and commit your changes there. You can then create a PR which will request to merge the changes back into this repo.
https://help.github.com/articles/fork-a-repo/

Ok, will do.
Thanks
Den fre 5 okt. 2018 kl 12:14 skrev 6by9<EMAIL_ADDRESS>
Fork the project into your own account and commit your changes there. You
can then create a PR which will request to merge the changes back into this
repo.
https://help.github.com/articles/fork-a-repo/
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/6by9/raspiraw/issues/17#issuecomment-427314678, or mute
the thread
https://github.com/notifications/unsubscribe-auth/Ap0oSaB7q4mik6kF-VtqfNt4XhVlN-LWks5uhzENgaJpZM4XJ6WC
.


Fixed typo title -> subTitle

Fixes typo in Android: title -> subTitle
Btw, thanks for this awesome lib! :) Really brings the best of both worlds in RN.

Thanks @andrejcesen for the PR and effort.
I have merged the same. Tomorrow I am planning to push a release with the same.
Thanks
</ Pranav >


Having trouble changing color of title in nav bar in tab bar screen

I have been able to change the color of the title within a regular screen. However, now I am using a tab bar and it is not applying the color to the title.
class ListScreenStylesheet < ApplicationStylesheet
  def nav_bar
    controller.navigationController.navigationBar
  end

  def setup
    nav_bar.translucent = false
    nav_bar.barTintColor = color.dark_gray
    nav_bar.tintColor = color.white
  end
end

It is correctly changing the background color, but not changing the text of the title to white. However, it is changing the color of the right/left nav bar items to white text. From what I understand, tintColor controls the color of the title too. Am I doing something wrong?

I could be totally wrong but from what I recall I believe tint color is in fact just the bar buttons - title is set with titleTextAttributes
checked the docs quick, and looks like thats the case

https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/UINavigationBar.html#//apple_ref/doc/uid/TP40012857-UINavigationBar-SW1

Yeah, I've tried that too, but can't get it to work either.
  def will_appear
    UINavigationBar.appearance.titleTextAttributes = {
      'UITextAttributeTextColor' => color.white
    }
    # also tried:
    navigationController.navigationBar.setTitleTextAttributes({
      UITextAttributeTextColor => color.white
    })
  end

is this a repo that I can clone and check it out?  I know that I have used something similar in a RMQ only app

Just created a demo repository that contains this code: https://github.com/andrewhavens/redpotion-dark-navbar-example
Here's what I did:

potion create navbarcolor
add this code to setup method of home_screen_stylesheet.rb

  def setup
    nav_bar = controller.navigationController.navigationBar
    nav_bar.translucent = false
    nav_bar.barTintColor = color.battleship_gray
    nav_bar.tintColor = color.white
    nav_bar.titleTextAttributes = {
      'UITextAttributeTextColor' => color.white
    }
  end

Didn't we add our appearance class to the template @squidpunch? If not, we should totally do that (assuming you even know what I'm talking about). Let me scrounge it up if it's not in there

It is not, I'll add it to the template now.

@twerth yeah you'll have to dig it up - not 100% sure what you have there.
@andrewhavens sounds like Todd might have a solution, but just in case tomorrow I will try and give this repo a look and see if I can figure out what's going on here.

This is how we always do this: https://github.com/infinitered/redpotion-template/commit/d33b129f69f9eb4b3758bf144a71869f714815d7
I added it to the RedPotion template. Although it could use some cleanup.

Awesome, thanks! I've been searching all over for an example of applying app-wide styles!

If you find something wrong, would you please fix the template with a PR?
Appearance works fine, for what it does, but it's very inconsistent. It's worth using for whatever you can use it for.

awesome, I should try wiring this up in my app too - I knew you could do application wide but similar to @andrewhavens I didnt have any real examples that I could find.
@andrewhavens let me know if that fixes your issue, or if you want me to dig into this sample app :+1:

@squidpunch Yeah those appearance definitions worked for me.
      UINavigationBar.appearance.tap do |o|
        o.translucent = false
        o.barTintColor = rmq.color.nav_bar_gray
        o.tintColor = rmq.color.white

        o.setTitleTextAttributes( {
          UITextAttributeTextColor => rmq.color.white
        })
      end

@andrewhavens awesome - I'll close this for now then!
thanks!

When I set translucent to false the grid stops working. I mean the grid is there but my UIView is not on the correct row anymore.


Moon Illumination Issue

Here in function for Moon Illumination there should be some changes to be happen:

    inc = atan(sdist * sin(phi), m['dist'] - sdist * cos(phi)),   # comma should not be there after calculating atan
sdist = 149597870.7 position of sun should not be constant for given date

to calculate the distance between sun and earth we should use true_anomaly of sun like below.
`def true_anomaly(days):
M = solar_mean_anomaly(days)
E = M
epsilon = 1e-6
max_iterations = 100
for _ in range(max_iterations):
E_new = E - (E - e * np.sin(E) - M) / (1 - e * np.cos(E))
if abs(E_new - E) < epsilon:
break
E = E_new
theta = 2 * np.arctan(np.sqrt((1 + e) / (1 - e)) * np.tan(E / 2))
return theta`

Is this closed by https://github.com/kylebarron/suncalc-py/pull/18 now?

`def getMoonIllumination(date):
d = to_days(date)
s = sun_coords(d)
m = moon_coords(d)

# distance from Earth to Sun in km
sdist = 149598000

phi = acos(
    sin(s['dec']) * sin(m['dec']) +
    cos(s['dec']) * cos(m['dec']) * cos(s['ra'] - m['ra']))
inc = atan(sdist * sin(phi), m['dist'] - sdist * cos(phi))
angle = atan(
    cos(s['dec']) * sin(s['ra'] - m['ra']),
    sin(s['dec']) * cos(m['dec']) -
    cos(s['dec']) * sin(m['dec']) * cos(s['ra'] - m['ra']))

return {
    'fraction': (1 + cos(inc)) / 2,
    'phase': 0.5 + 0.5 * inc * np.sign(angle) / PI,
    'angle': angle}

`
Why do we keep the distance of the sun-earth constant?

This library is a direct port of the upstream https://github.com/mourner/suncalc. It's been a while since I've worked with the code, so you'd have to look at the upstream version and ask questions there.


invites: Fix zod schema for multiuse invites.

The multiuse invites data from server does not include notify_referrer_on_join fields since
we do not allow configure that for multiuse invites. This PR fixes the zod schema accordingly.

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Thanks for fixing, merged, thanks @sahil839!  @shashank-23002 FYI since this was I think your bug, and it's nice to hear about them :)
We probably do want to support the feature for multi-user invites.


Salesforce API and dependencies up to date

Updated Salesforce API version and other dependencies.

Thanks for your contribution @williamweckl!


Handling redirects

I have multiple (sub)domains which are supposed to be redirected all to one subdomain www.myservice.com. How can I do this with a RAP-configuration?

@dj-hedgehog Reading the docs, this could be achieved with a combination of this config:
rap.host=api.example.com=>http:80,api-admin.example.com=>http:8001,secure.example.com=>https:8443

and a properly configured router/.htaccess in your container.

What do you mean with this and a properly configured router/.htaccess in your container.? Can you elaborate on it please?


Add sortable checkboxes for description source

Hopefully this should be a somewhat passable implementation of converting the description source option to being driven by orderable checkboxes (at least, in the opening state of the PR, just for further development purposes).
The changes to the plugin settings include one new setting, and one re-purposed setting.

DescriptionSourceOrder has been added as an array and allows the user selected order for the description sources to persist.
DescriptionSource has been repurposed into an array, containing any of the checked options

At a minimum, with these (client side only) changes implemented, the plugin settings render as expected, and there should hopefully be no further need for any significant new client side changes (for the sortable checkboxes at least).
By no means is this even slightly near ready to be merged, but all things must start somewhere (not helped by my own lack of ability).

Rebased the changes on top of master now. I've not double checked that things work as expected, just manually resolved merge conflicts so don't put any faith in this!
I'll review further in the morning and advise if I think I'll be able to handle the C# side of things.

Further update just to note that it's not fully working as expected... But it is saving as expected.
Will return to this later today!

I think this is hunky dory now... Will request a review once I test the setting migration (that I completely forgot I had tried to setup...)

If we don't care for setting migration at all... The PR can be simplified, and the new configuration entry, DescriptionSourceList can return back to being DescriptionSource.

Personally I don't care since we don't have a framework in place (yet) to update the xml before it's parsed. And 4.0.0 will be a breaking change, so putting a note in that the users need to go through their plugin settings is probably mandatory at this point, since none of the other new settings have a migration (yet at least).

Marking back as a draft as the below shouldn't be happening when the settings page is rendered...

Once fixed will mark as ready for review again.

Okay, I've tested it a fair bit now and I'm happy that it works as expected.
The capability for Migrations is now removed, probably best not to introduce "hacks" to migrate... At the very least, instead of continuing with DescriptionSource, this PR now uses DescriptionSourceList, so there should be no issues with invalid configurations, and it will simply return to default settings for existing users.


Topbar + Sticky == Behavioural bug

I'm running a Sticky Top Bar.
Here's what I can do to trigger a bug in Chrome:

With no Stickiness active, activate the mobile Top Bar with a narrow widow width.
Scroll down to trigger the sticky/fixed behaviour.
Widen the window past the breakpoint to trigger the full non-mobile Top Bar.
Scroll back up in vain as both the f-topbar-fixed and fixed CSS classes are not removed when you reach the top of the window.

A similar behaviour can be observed on the Docs page if your browser window is just less than 1024px (inside the medium breakpoint) http://foundation.zurb.com/docs/components/topbar.html
Notice how you must scroll far above the original Y position of the Sticky Menu in order to un-sticky it. Now imagine if the Top Bar was actually at the top of the screen: you wouldn't be able to scroll above it at all and it would remain forever sticky because the CSS classes are not removed.

I did confirm this. I don't know what the issue is just yet. Have you been able to work around it or find a solution? We'd love to hear an ideas you have on it

Looks like there is a window resize event in top-bar it's just not doing anything. If anyone else experiencing this and found a solution?

Closing due to staleness.