ADObjectPermissionEntry: The object name has bad syntax when configuring OU which requires escaped character

Details of the scenario you tried and the problem that is occurring
When using ADObjectPermissionEntry to configure an ACL on a Path that requires escaping (comma, backslash, hash, plus etc), the command fails with 'The object name has bad syntax'
Verbose logs showing the problem
PowerShell DSC resource MSFT_ADObjectPermissionEntry failed to execute Test-TargetResource functionality with error message: The object name has bad syntax
Suggested solution to the issue
Appears to be a known error in Get-ACL when using the AD PSDrive provider since 1809: https://www.reddit.com/r/PowerShell/comments/ce4f2x/getacl_on_ad_object_bug_in_1809/eu08hae/
Under ActiveDirectoryDsc/source/DSCResources/MSFT_ADObjectPermissionEntry/MSFT_ADObjectPermissionEntry.psm1, the two Get-ACL commands (line 87, 213) and the Set-ACL command later on should have:
Get-Acl -Path "AD:$Path"
replaced with:
'Get-Acl -Path "Microsoft.ActiveDirectory.Management.dll\ActiveDirectory:://RootDSE/$Path"`
It looks like whoever wrote it originally may have known this - it appears to have reverted in <IP_ADDRESS> (https://github.com/dsccommunity/ActiveDirectoryDsc/blob/main/HISTORIC_CHANGELOG.md#22500)
This will need to stay like this until Microsoft fix the AD PSDrive bug.
The DSC configuration that is used to reproduce the issue (as detailed as possible)
              ADOrganizationalUnit "TestOU"
              {
                  Name = "Test+OU"
                  Path = "DC=domain,DC=name=DC=here"
                  Ensure = "Present"
              }
              ADObjectPermissionEntry $("Test2")
              {
                  Path = "OU=Test+OU,DC=domain,DC=name=DC=here"
                  IdentityReference = "DomainName\Administrators"
                  AccessControlType = "Allow"
                  ObjectType = "00000000-0000-0000-0000-000000000000"
                  ActiveDirectorySecurityInheritance = "All"
                  InheritedObjectType = "00000000-0000-0000-0000-000000000000"
                  Ensure = "Present"
              }

The operating system the target node is running
OsName : Microsoft Windows Server 2019 Datacenter
OsOperatingSystemSKU : DatacenterServerEdition
OsArchitecture : 64-bit
WindowsVersion : 1809
WindowsBuildLabEx : 17763.1.amd64fre.rs5_release.180914-1434
OsLanguage : en-US
OsMuiLanguages : {en-US}
Version and build of PowerShell the target node is running
PSVersion                      5.1.17763.2268
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.2268
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
Version of the DSC module that was used
6.0.1

FYI This is still a problem.
Error: Code="VMExtensionProvisioningError" Message="VM has reported a failure when processing extension 'Microsoft.Powershell.DSC'. Error message: \"DSC Configuration 'RegistrationMetaConfigV2' completed with error(s). Following are the first few: Exception calling \"AddAccessRule\" with \"1\" argument(s): \"Some or all identity references could not be translated.\" The PowerShell DSC resource '[ADObjectPermissionEntry]ADObjectPermissionEntry' with SourceInfo '::323::9::ADObjectPermissionEntry' threw one or more non-terminating errors while running the Set-TargetResource functionality. These errors are logged to the ETW channel called Microsoft-Windows-DSC/Operational. Refer to this channel for more details. The SendConfigurationApply function did not succeed.\"\r\n\r\nMore information on troubleshooting is available at https://aka.ms/VMExtensionDSCWindowsTroubleshoot "
        ADObjectPermissionEntry 'ADObjectPermissionEntry' {             Ensure = "Present"             Path = "OU=Servers,OU=$TopOu,$domainPath"             IdentityReference = "$netbiosName\svc-dj"             ActiveDirectoryRights = "CreateChild", "DeleteChild"             AccessControlType = "Allow"             ObjectType = "bf967a86-0de6-11d0-a285-00aa003049e2" # Computer objects             ActiveDirectorySecurityInheritance = "All"             InheritedObjectType = "00000000-0000-0000-0000-000000000000"         }
PSVersion 5.1

Looks like the switch was from Microsoft.ActiveDirectory.Management\ActiveDirectory to AD:$Path as part of #243 to fix #236.
Can probably fix by using Microsoft.ActiveDirectory.Management.dll\ActiveDirectory:://RootDSE/$Path


Remove duplicate section for internal repositories

Why:
The explanation for internal repositories is written inside the private repositories section.

What's being changed:

Check off the following:

[x] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

@SIkebe
Thanks so much for opening a PR! I'll get this triaged for review :zap:


Improve log to print more lines in build [skip ci]

As mentioned in #10967 the 500 lines are being printed instead of 20. 20 is too small and I can not get enough info sometimes as mentioned in the issue
Closes #10967

Closes #10967 sorry about the extra comment

Please sign off at least one commit https://github.com/NVIDIA/spark-rapids/blob/branch-24.08/CONTRIBUTING.md#sign-your-work to pass the corresponding required PR check
You can add an empty commit with --allow-empty to avoid amending and force-pushing a previous commit

Yes sir

build


Possible to hover as an action or identify the current step of yada?

Hi!
First of all, thank you for this awesome package!
I'm currently trying to set up yada for my project, but I'm struggling to make it work for hover menu (similar to this example from dash-mantine-components in Icons, Right Section, and Colors section). I'm not sure how to make the menu appear from a yada step since it requires the mouse to hover the target button...
I've tried to use "action": "hover" on the target button but the menu stays hidden, so I guess this isn't a supported action (I'm not even sure it's something possible at all actually).
I've also tried to make yada target the first button in the hidden menu but yada will just move to top left corner as the button isn't visible without hovering the button (need to set keepMounted=True to the menu object, or yada will just ignore the step as the button wouldn't even exist in the DOM).
Ultimately, I don't know how to do it unless I could send opened=True to the menu object in some way at this step, but for that, I would need a way to identify at which step yada currently is.

Hello @Hunknown,
Thanks for using YADA, mouseover would be a trigger to cause hover I would think, which this isnt currently supported. But if you can get it to work, you are welcome to open a PR.
As far as knowing which step YADA is on, you can look at window.dash_yada.y, however, you will also need to know which script is running and also listen for other button clicks from the offcanvas element. 😄

Hello @BSd3v ,
Thank you for your input, it helped me working on a temporary solution for now.
Originally, I wanted to have a callback on next and previous buttons but as they don't have ids, I didn't know how to implement that so I went for an EventListener from dash_extensions on top of the yada component to listen to any click on any yada component:
html.Div(
    children=dext.EventListener(
        YadaAIO(...),
        events=[
            {
                "event": "click",
                "props": ["view.dash_yada.target.id"],
            }
        ],
        id="el",
    ),
    id="div-yada",
),

Then I added a clientside_callback that will trigger on these clicks on yada components:
clientside_callback(
    """
    function(ne, event) {
        if (!ne || !event) return dash_clientside.no_update;

        // list of hover components
        hover_comps = ['my-hover-menu']
        if (hover_comps.includes(event['view.dash_yada.target.id'])) {
            window.dash_yada.target.dispatchEvent(e=(document.createEvent('Events')), e.initEvent('mouseover', true, false), e)
        }

    }
    """,
    some_dummy_output,
    Input("el", "n_events"),
    Input("el", "event"),
    prevent_initial_call=True,
)

Not the most elegant way to do it, but well, that will do for now.
Note that it will trigger when yada is moving to the target not after moving to next step (contrary to current available actions), but that's what I wanted to achieve anyway.
I'll have to look how to implement it in your code when I'll have some more time to look into it (like building the amended version to test it for example, since I've never done that before).


Multisig. Old multisig wallets become unusable

Description
Portfolio view contains no chains for single Multisig wallets, which was removed from config
https://github.com/user-attachments/assets/97c545b2-3674-47ac-9b0c-270c8f76f253
Scenario:

Add multisig to any chain
Remove multisig flag for this chain in config
Restart the app

Expected results:
Old multisigs should work
Actual result:
Portfolio view is empty
Environment
https://github.com/novasamatech/nova-spektr/commit/993f059a3cee32a9324eb293a40652e4ca3b07cc

This should be fixed for the release.
On the balances page the filtering must be improved. If the network doesn't have multisig option but exists in the wallet accounts list then show the balance for it.


Local raster are not displayed when using a sub 'notebooks' folder

I am working in a cloud environment that stores production notebooks in a /shared/notebooks/ path... digging into xarray_leaflet code I saw  that when the module states the base_url, is using the word 'notebooks'. So in my case, it will cause a wrong URL referencing and will point to nowhere.
I doubt posting the issue here but as many people could store its notebooks in that folder, would be better if this is fixed in the module.
I was thinking instead of finding the last occurrence, just get the first.

But then if you have a notebooks folder we could be in Voila, so this code is definitely not great. If you have any idea how to make it better, don't hesitate to open a PR.

I made a simple PR, I hope I'm not missing anything.


How to know which markers are shown in the map

Hi guys,
I'm trying to do something like this.
I need to know which Markers are shown in the map.
Can I do it with google-map-react?

@BrodaNoel In the link you provided there is no real answer to the problem. What I can say is, if its doable with Google maps, its doable by this library, you can use the property onGoogleMapApiLoaded, more documentation here.
Google-map-react does not extend or add any tool besides the capability to pass a custom React Component as a Marker.
After you access to map or maps.
This might be helpful https://stackoverflow.com/questions/3648545/how-can-i-check-the-marker-is-or-isnt-in-the-bounds-using-google-maps-v3

Nice answer! Thank you for the documentation!


Relay entry timeout penalty amount

In Random Beacon docs we say:

In later versions, penalties for misbehavior can be adjusted to match the severity of the misbehavior. However, initially the penalty for misbehaving in the random beacon will equal the minimum stake required to join a signing group.

There are 3 cases when KEEP tokens are slashed/seized:

If the beacon group signing key leaked
If ECDSA keep signing group signed a digest it wasn't requested to sign
If the beacon group did not produce entry on time

The severity of the misbehavior is very different. In the first two cases, group members had to intentionally collude out-of-band. In the last case, group members could expect some technical difficulties. In all those cases we slash minimum stake of KEEP which can completely eliminate some stakers and does not encourage to stake.
I think we should ease the punishment in the last case, especially for the early days to e.g. 5-10% of the minimum stake.

We could set the timeout punishment to be a constant 10k so it's 1/10 of the minimum stake initially but the minimum stake schedule ultimately catches up (down?) to it.

It is one of the options but why do we eventually want entry timeout punishment to catch signature fraud or leaked group key punishment? Those types of misbehaviour are unproportional. I would rather say entry timeout punishment should always stay at 10% of signature fraud punishment, maybe even less.

Entry timeout can be used to manipulate the beacon and it's the most realistic attack vector.
From what I understand the beacon's promise to customers is "this will produce an unpredictable pseudorandom number for you and there is X amount of value backing up this promise". X is basically stakeAtRisk * honestThreshold, so if we reduce the stake at risk to 10% we only have 10% of the security against attacks in general. For example, someone could bribe group members to precalculate the number and then withhold it if it doesn't yield favorable results. If the timeout penalty is reduced to 10% the amount of bribe required for this attack is reduced 10x, significantly impacting the beacon's usability.
For this reason, in the long term we should have timeout/fraud/leak punishments be equal to the maximum per-member stake we have available. In the short term we could have lower penalties to let the network ease in with slightly less risk until issues are hammered out, which would be achieved by a constant 10k penalty amount. However, we could make all penalties a constant 10k and only use the staking contract minimum stake for ticket calculation; this means that early on stakers, particularly small stakers, risk less in general but the penalties are more transparent and consistent.
For practical numbers, with a honest threshold of 33, the discussed penalty amounts result in the following total effective collaterals:

100k: 3,300,000 (1/300 of the total supply)
10k: 330,000 (1/3,000)
10% of 10k: 33,000 (1/30,000)

If we look at token market caps, currently the n.1 (Bitcoin) is roughly $120B, n.2 (Ethereum) is $17B, and n.10 (Tezos) is $1.3B. The respective collateral values for these market caps would be:

100k: $396,000,000 / $56,100,000 / $4,290,000
10k: $39,600,000 / $5,610,000 / $429,000
10% of 10k: $3,960,000 / $561,000 / $42,900

In the 10% of 10k scenario, even a very highly valued KEEP token would only provide security comparable to the price of a fancy car. It is not hard to come up with scenarios where manipulating the output of the random beacon would be worth more than a fancy car. The collateral token would need to be valued absurdly highly before substantial security would be achieved. Using 10k as the collateral amount makes significant levels of security a lot easier to reach without the underlying token having moonlambo valuations, and starting with 100k wouldn't be unreasonable either.

High level I agree with @eth-r . If we're worried about poorly configured nodes at launch, slowly raising a slashing multiplier from 0.1 to 1.0 would make sense- but lowering the min slashed means the assurances of using the beacon are lowered by the same amount. At launch, a 64 member group will have something like $400k-750k at risk, meaning "lottery" style use cases can protect that much on the outside. Lowering that to $40k is pretty unappetizing
I get that collusion is "worse", but slashing isn't really about what's better or worse, it's about setting economic parameters for trust. In fact, if collusion is attributable I'd be down to take "all the KEEP" and slash to the bone, but IIRC it isn't so we have to stick with minimum stakes

In fact, if collusion is attributable I'd be down to take "all the KEEP" and slash to the bone

It is attributable only for ECDSA n-of-n case so we could employ slash to the bone policy there but it's pretty late in the game to make this change.
Thanks for doing the math @eth-r, it all makes perfect sense. Looking again at the minimum stake schedule, I do agree 10% of a minimum stake does not make sense long-term.
@mhluongo @eth-r Can we agree to lower relay entry timeout punishment to 10k? This is 10% of the initial minimum stake but 100% of the final value of the minimum stake after 2 years.
Worth noting, for early days, it helps only stakers having more than 100k of KEEP. When someone has 100k of KEEP and gets slashed for 10k, they are removed from the network because they have no minimum stake.

Using a constant 10k for punishments would effectively implement the 0.1 slashing multiplier through the minimum stake schedule without extra code. It'd also ensure that the value of the collateral can't fall if the value of KEEP doesn't rise to match the reduction from the minimum stake schedule. However, the initial collateral would be rather low and while this would make sense from a "don't put too much trust in the numbers given by immature tech" perspective it would limit the usefulness of the early beacon (either a constant or schedule-following punishment amount still relies on KEEP appreciation to have high deterrent later on).


fix(TX-499): order app spacing

The type of this PR is: FIX

This PR solves TX-499
Description
This PR fixes the spacing issues in the order app routes.

Screenshots

(Since myHOC is technically still a react component, we should make sure to use CapsCase there -- something like StepperContainer)

@rquartararo yes, this is looking good!

@AlicanAkyuz - Just for clarity sake, one thing that came to me when I woke up today was the nature of higher-order components just in general. What they are is an example of partial application, where one invokes a function to return another function (vs just passing through children, in react):
const toggleVisibility = (options) => {
  return (props) => {
      if (options.show) {
        return <div>...</div>
      } else {
        return ....
      }
    }
  }
}

const MyComponent = toggleVisibility({ show: true })

<MyComponent />

Wanted to drop this note just to explain a bit how they work under the hood.

@damassi I guess HOC was the wrong term to use, I meant a simple wrapper for consistent spacing across the checkout steps. thank you for the detailed note 🙏


Python: Extracted texture has wrong rotation

I was following and building upon your face fitting example (for Python) while also making my own implementation. When trying out your example code I decided to do the following in addition to the code that is provided in the demo.py file:
eos.core.write_textured_obj(mesh, "models/test.obj")

image = cv.imread('Images_Final/image_0010.png')
isomap = eos.render.extract_texture(mesh, pose, image)

cv.imshow("image", image)
cv.imshow("isomap", isomap)

cv.waitKey(0)
cv.destroyAllWindows()

The results that came with these commands (specifically the extracted texture) is the following:

As can be seen, it is orientated wrongly. I am using the latest pip version of the package, however, I also tried using 1.0.1 version as was discussed in #129 with the same result. Inherently, when I apply the texture to the model through MeshLab, it is keeping the same rotation as can be seen below.

Is there some sort of function that I have forgot to implement or call?

Hi,
As you can see, the texture map is just 90° rotated. You can probably just rotate it and it should be fine.
I think this was an issue in the Image Python bindings which I fixed recently in the devel branch: https://github.com/patrikhuber/eos/compare/devel
Let me know how that goes. Thanks!

Managed to acquire the rotated texture map. Sorry I did not try out the devel branch binding as I am running rather tight on getting things done with my studies.

Great!
I'll leave this one open until the changes from the devel branch are merged.

This has now been merged into the master branched and released in eos 1.2.0/1.2.1! :-) Thanks again for pinging me on this issue here.


Account balance should show real-time balance (and ignore future transactions)

Some transactions may be saved with a timestamp in the future. These should be ignored when computing the account balance. The transaction timestamp is set by the user.
There are always the created_at and modified_at timestamps in the db (develop) which we can lookup for other purposes.
@fefe982 could you look into this? Thanks

OK. No problem.

Fixed in f60639927177136073a074a609e9ab06ca9e3258


maplist/2 with one redundant answer

?- maplist(=(X),[]).
X = _5418; % expected
X = _5418; % unexpected

This was because there're 2 definitions of maplist/2 in bootstrap.pl.
I removed one of them.
$ git checkout main
Already on 'main'
Your branch is up to date with 'origin/main'.
$ git pull
Already up to date.
$ go install github.com/ichiban/prolog/cmd/1pl
$ $(go env GOPATH)/bin/1pl
Top level for ichiban/prolog (devel)
This is for testing purposes only!
See https://github.com/ichiban/prolog for more details.
Type Ctrl-C or 'halt.' to exit.
?- maplist(=(X), []).
X = _946;
?-

Perfect!


Cert manager creating multiple CRDS

Cert manager has been creating multiple Challenges causing certs to not be issued

I upgraded cert manager (didn't do this when changing to 1.24) and this seems to have gone away.


ctrl-c during download leaves you in a broken state

I control-c'd during the download of a new bazel version, and the next time I ran bazelisk I was hit with:
% bazelisk test //test/exe:main_common_test --define=google_grpc=disabled --define=signal_trace=disabled --define=tcmalloc=disabled
WARNING: The following rc files are no longer being read, please transfer their contents or import their path into one of the standard rc files:
/home/keith/dev/envoy/tools/bazel.rc
file is invalid or corrupted (missing end of central directory record)
Cannot find central directory
FATAL: Failed to open Bazel as a zip file: (error: 5): Input/output error

In order to fix this I had to rm -rf ~/.bazelisk and run it again

Sorry for the problems, @keith.
In the Go version of Bazelisk this is already fixed, by first downloading to a temporary file and only renaming it on success.
I'll add the fix to the Python version, too.

Fixed in https://github.com/philwo/bazelisk/pull/49 :)


Can't move default workspace root to Dev Drive

Please add a section for Options > Live Unit Testing > General > Default workspace root can't be defined currently to a Dev Drive. As it'll fail with InvalidArg for 'Windows Projected File System'.

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

ID: d963b3f7-abc8-a9e7-9ac7-2a5c7ad53c28
Version Independent ID: 2866e780-84b2-a833-24fb-8a4354a9c0f4
Content: Live Unit Testing FAQ - Visual Studio (Windows)
Content Source: docs/test/live-unit-testing-faq.yml
Product: visual-studio-windows
GitHub Login: @Mikejo5000
Microsoft Alias: mikejo

@lgp1985 I'm asking about this. Thanks for the feedback!

There's one requirement to have Live Unit Testing workspace root moved to a Dev Drive, you'll need to enable Windows Projected File System via the command below:
fsutil devdrv setfiltersallowed PrjFlt

Update will be live by EOD today, 7/25, PST.


Make file has unspecified golang dependencies

packet-cli$ make install
go install -ldflags "-X main.Version=0.0.3 -X main.Build=`git rev-parse HEAD`"
main.go:27:2: cannot find package "github.com/packethost/packet-cli/cmd" in any of:
	/usr/local/Cellar/go/1.12.7/libexec/src/github.com/packethost/packet-cli/cmd (from $GOROOT)
	/Users/<user>/go/src/github.com/packethost/packet-cli/cmd (from $GOPATH)
main.go:28:2: cannot find package "github.com/spf13/cobra/doc" in any of:
	/usr/local/Cellar/go/1.12.7/libexec/src/github.com/spf13/cobra/doc (from $GOROOT)
	/Users/<user>/go/src/github.com/spf13/cobra/doc (from $GOPATH)
make: *** [install] Error 1

I tried to replicate but it worked fine.
$ make install
go install -ldflags "-X main.Version=0.0.3 -X main.Build=`git rev-parse HEAD`"
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15
BuildVersion:   19A583

Where did you clone the repository? Is it located in $GOPATH/src/github.com/packethost/packet-cli?

This works when cloned to $GOPATH/src/github.com/packethost/packet-cli.
A separate but related issue, placing the zipped source in the that location produces:
$ make install
go install -ldflags "-X main.Version=0.0.3 -X main.Build=`git rev-parse HEAD`"
fatal: not a git repository (or any of the parent directories): .git

make install won't work with zipped source.


[cda] Try to fix and improve extraction (fixes #24458)

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[x] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Fixed url extraction from cda.pl links after a recent player.js update on the website made it harder to decode the file from player_data. I took the player.js code apart and found the method responsible for decrypting the file url and implemented the new method into the extractor.

Do we still have to support Python 2 despite of it's EOL since January 2020? :thinking:

Checked out your remote, thanks. It works for me.

Since the new CDA.pl player code still contains the old video file decryption method, I decided to keep both methods to ensure best compatibility with all links that have not been tested.

@dstftw could you review please?

Can also confirm this fixes the problem. Thanks!

Thanks :D please review @dstftw


chore(renovate): Remove duplicated renovate config

:tada: This PR is included in version 1.39.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Introduce TimeZoneProvider for specifying a timezone other than browser/local

Motivation
Applications embedding Perses dashboards or components may need to format date/time using a timezone other than the browser/local setting. For example, a host application may allow end users to toggle between UTC and browser time.
Proposal
Introduce a TimeZoneProvider with similar semantics and usage to the ChartsThemeProvider, through which Perses clients may provide a timezone selection. The timezone may be "local" or "browser" to specify usage of the default browser timezone, "utc" for UTC timezone, or any browser-supported IANA timezone name such as "America/New_York". The list of supported IANA timezone names may be found using Intl.supportedValuesOf('timeZone').
Implementation Notes

added a UTC / Local toggle in the App to demonstrate usage of TimeZoneProvider
introduced dependency on date-fns-tz which adds timezone support to the existing date-fns dependency
introduced utility function formatWithTimeZone which formats a Date using a provided format string and timezone
introduced utility function dateFormatOptionsWithTimeZone which adds timeZone to the provided date format options
updated usages of date-fns format with formatWithTimeZone, passing in the timeZone from TimeZoneProvider
updated usages of Intl.DateTimeFormat, providing the timeZone from TimeZoneProvider to the format options using dateFormatOptionsWithTimeZone
TimeZoneProvider.useTimeZone() falls back to browser/local timezone in case the context provider is not in the React tree (existing Perses clients will NOT need to add TimeZoneProvider unless they want to specify the timezone)

Screenshots

The double toggles without labels in the UI feels a little confusing to me. It's also not clear what will happen when you click the time toggle until after you do it and look at the tooltip. Maybe it would make sense to add a small text label next to each (e.g. "time zone" and "theme" respectively)?

The double toggles without labels in the UI feels a little confusing to me. It's also not clear what will happen when you click the time toggle until after you do it and look at the tooltip. Maybe it would make sense to add a small text label next to each (e.g. "time zone" and "theme" respectively)?

Done:

One bit of UI feedback I left as a direct comment and one tiny nit in the code proper.
Could you also add an updated entry to the CHANGELOG for this in the "unreleased" section as part of the PR? We're hoping to eventually make this a little more automated with some nice documentation, but we're not there quite yet.

Added the CHANGELOG entry

Maybe a drop down instead of a toogle could be better. The value of the dropdown would be UTC or browser timezone. Like that you can see without passing the cursor what is the current timezone used.

Maybe a drop down instead of a toogle could be better. The value of the dropdown would be UTC or browser timezone. Like that you can see without passing the cursor what is the current timezone used.

Prefer to keep the toggle for expediency. This is a simple demonstration app, and the toggle follows the pattern already in place for toggling the dark/light theme. If we want to optimize the UX, it would be a larger process of bringing in UX design, adding the appropriate theme updates to MUI select component, etc. This seems like overkill when we simply want a demonstration of how to change time zones.

Actually it's not a demonstration app. This is the actual Perses UI, even if it's not that bright for the moment, we don't build an app just for testing purpose or demonstration.
This app is going to be used in production :).

Actually it's not a demonstration app. This is the actual Perses UI, even if it's not that bright for the moment, we don't build an app just for testing purpose or demonstration. This app is going to be used in production :).

OK got it, makes sense. Who is responsible for UX design / review? Perhaps we can ask for input on whether a UTC/local timezone selector is desirable, and what form it should take?

Actually it's not a demonstration app. This is the actual Perses UI, even if it's not that bright for the moment, we don't build an app just for testing purpose or demonstration. This app is going to be used in production :).

I'm wondering if the best approach is to simply remove the timezone toggle from the App. This will leave the App functionality unchanged, but this PR exposes the provider that can be used by any app that wants to embed Perses dashboards and specify time zone. Thoughts?

best approach is to simply remove the timezone toggle from the App. This will leave the App functionality unchanged

Yeah this makes sense to me, we can figure out the selector UX in a separate PR later!

@Nexucis @juliepagano @sjcobb please review - I have removed the timezone toggle from the App. This PR is now limited to adding support for TimeZoneProvider which will allow apps embedding Perses dashboards to override the default browser/local timezone.
We can add a PR later if it is determined that a timezone selector should be added to the App.


Remove todo section

This file is from before our time and is explicitly stated as not maintained.
The features suggested are mostly stale or implemented. There are some we may consider resurrecting or keeping. They should instead be converted to proper GitHub issues where people can take part of the planning instead.

Good.
Still going through old open issues to find if there are things which we have accidentally implemented without knowing about the issue. I've done it many times and accidentally fixed (and also broken 😝) things.
Will resolve the all these things and other leftover bits and pieces bit by bit


Add TS Docs

And github pages
Especially if an API is provided
https://github.com/fboucquez/symbol-bootstrap/issues/2

Added github pages integreation to ts docs


Revert "Using initExpensiveAndroidView for Android Hybrid Composition Mode"

Reverts flutter/flutter#142399

Per https://github.com/flutter/flutter/pull/142399#issuecomment-1921146379 I don't believe we should land this PR.

If the benchmarks was broken and the PR put it back into a working (or more rational) state, then no action is needed w.r.t. the benchmark regression.


ERDDAP_emailSmtpPort ignored

Hello,
when I set SMTP port through env var, the value is ignored (587, Google account):
  ERDDAP_emailSmtpPort: "587"

log.txt:
Error: Sending email to XXX failed:
ERROR:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.googlemail.com, 25; timeout -1;
  nested exception is:
 java.net.ConnectException: Connection timed out (Connection timed out)
 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2210)
 at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722)
 at jakarta.mail.Service.connect(Service.java:342)
 at jakarta.mail.Service.connect(Service.java:222)
 at gov.noaa.pfel.coastwatch.util.SSR.sendEmail(SSR.java:1287)
 at gov.noaa.pfel.erddap.util.EDStatic.email(EDStatic.java:4346)
 at gov.noaa.pfel.erddap.util.EDStatic.email(EDStatic.java:4230)
 at gov.noaa.pfel.erddap.LoadDatasets.run(LoadDatasets.java:1176)
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
 at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:335)
 at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214)
 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160)
 ... 7 more

If I set the value in setup.xml:
<emailSmtpPort>587</emailSmtpPort>

things work correctly.
Please note I deploy ERDDAP via-Docker. I opened an issue there (https://github.com/axiom-data-science/docker-erddap/issues/46), but the bug seems related to ERDDAP actually.
The variable is properly set inside the container, I can see the value when the container starts, or through docker inspect.
Or
$ sudo docker exec -it erddap printenv | grep ERDDAP_emailSmtpPort
ERDDAP_emailSmtpPort=587

I'm sorry for my delay in responding.
I looked in the code. I see the problem. For String parameters, ERDDAP is correctly looking for ERDDAP_paramName. But for int and boolean parameters, ERDDAP is incorrectly looking for just paramName.
So, for now as a work-around, try just setting "emailSmtpPort", not "ERDDAP_emailSmtpPort".
And after the next ERDDAP release, switch to "ERDDAP_emailSmtpPort".
Thanks for reporting this bug.


[omni.etm.github_posting_test] Extension tests failing for Kit SDK [105.0]

Disclaimer: For your convenience, Nvidia runs your tests on our infrastructure on the latest public sdk.
Extension Name: omni.etm.github_posting_test
Extension Version: 1.1.3
Kit SDK version: 105.0
Platform(s): windows-x86_64
Result: Failing
Quick Links

Testing extensions with python

Extension Version: 1.1.3
Kit SDK version: 105.0
Extension Tests now passing, automatically closing this issue.
Result: Passing


link fix

fix broken link

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.56%. Comparing base (6866209) to head (5259f95).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #117   +/-   ##
=======================================
  Coverage   95.56%   95.56%
=======================================
  Files          14       14
  Lines        1127     1127
=======================================
  Hits         1077     1077
  Misses         50       50

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Upload and download task

It will be great to have upload and download task. Or they exist?

No download task, this plugin is meant to do one thing, watch your folder
and upload theme files to shopify.
On Tue, Aug 18, 2015 at 5:39 PM, WebProgerLive<EMAIL_ADDRESS>wrote:

It will be great to have upload and download task. Or they exist?
—
Reply to this email directly or view it on GitHub
https://github.com/mikenorthorp/gulp-shopify-upload/issues/16.

grunt-shopify wins

Grunt is more suited to task based stuff. Gulp is streaming based. If you
want tasks and the like, use grunt. Gulp is used in streaming workflows a
lot better than grunt is. This plugin is actually modified from the
Grunt-shopify project to work with Gulp.
On Wed, Aug 19, 2015 at 9:56 AM, WebProgerLive<EMAIL_ADDRESS>wrote:

grunt-shopify wins
—
Reply to this email directly or view it on GitHub
https://github.com/mikenorthorp/gulp-shopify-upload/issues/16#issuecomment-132581557
.

I know it. Yesterday I installed your plugin and tried to download theme with it. It was suprising when I discovered that plugin could not do it :) but i think i will go to this plugin soon.


Fixed read-only visibility for submission form fields

References

Fixes https://github.com/DSpace/DSpace/pull/8848#issuecomment-1549440143

Description
The visibility of submission form fields, based on the scope, is checked on src/app/shared/form/builder/parsers/field-parser.ts and src/app/shared/form/builder/parsers/row-parser.ts.
Instructions for Reviewers
List of changes in this PR:

First, it is checked if the field is hidden or not, based on the visibility (visibility should be different from read-only) and the submission scope. It is checked by isHidden() method at  src/app/shared/form/builder/parsers/row-parser.ts
Second, it is checked that the field is read-only when the model has the visibility object and visibility.main === VisibilityType.READONLY.
Finally, there are added all the needed configurations for each field to be configured as read-only (disabled) correctly.

Include guidance for how to test or review your PR.
Steps to reproduce the behavior:
In the submission-forms.xml should be added the configuration for a field as in the example:
                <field>
                    <dc-schema>dc</dc-schema>
                    <dc-element>title</dc-element>
                    <dc-qualifier>alternative</dc-qualifier>
                    <repeatable>true</repeatable>
                    <label>Other Titles</label>
                    <input-type>onebox</input-type>
                    <hint>If the item has any alternative titles, please enter them here.</hint>
                    <required></required>
                    <readonly>readonly</readonly>
                    <visibility>workflow</visibility>
                </field>

Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
[x] My PR passes ESLint validation using yarn lint
[x] My PR doesn't introduce circular dependencies (verified via yarn check-circ-deps)
[x] My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
[x] My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
[x] If my PR includes new libraries/dependencies (in package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[x] If my PR includes new features or configurations, I've provided basic technical documentation in the PR itself.
[x] If my PR fixes an issue ticket, I've linked them together.

@alexandrevryghem : If you have any time this week, I'd appreciate some help in testing this PR...especially since you helped discover the issue.

@alisaismailati and @atarix83 :  I'm confused by this PR because it doesn't seem to fix the issue initially reported in https://github.com/DSpace/DSpace/pull/8848#issuecomment-1549440143  Instead it fixes a different read-only issue.
The issue originally reported in https://github.com/DSpace/DSpace/pull/8848#issuecomment-1549440143 was that this sort of configuration in item-submission.xml is no longer valid:
       <step-definition id="traditionalpageone" mandatory="true">
            <heading>submit.progressbar.describe.stepone</heading>
            <processing-class>org.dspace.app.rest.submit.step.DescribeStep</processing-class>
            <type>submission-form</type>
            <scope visibilityOutside="read-only">submission</scope>
        </step-definition>

In our Submission documentation, we state that it's possible to set a "visibility='read-only'" or "visibilityOutside='read-only'" attribute on the <scope> tag in order to make that entire step read-only.  See the docs here for the "scope" tag: https://wiki.lyrasis.org/display/DSDOC7x/Submission+User+Interface#SubmissionUserInterface-Structureofthe<step-definition>tag
This PR doesn't seem to fix that issue... I had assumed that it would, but that bug is still reproducible for me with this PR installed.
However, this PR seems to instead fix an issue with making individual fields read-only.   It appears we have an (undocumented?)  <readonly> tag which can be added to any field in submission-forms.xml??  I was unaware of this option, but it does seem like it exists in our submission-forms.dtd: https://github.com/DSpace/DSpace/blob/main/dspace/config/submission-forms.dtd#L58
I wasn't aware of these settings as I don't see any documentation on this <readonly> tag, or the <visibility> tag in our docs at https://wiki.lyrasis.org/display/DSDOC7x/Submission+User+Interface#SubmissionUserInterface-CompositionofaField
So, before I can test this, I think I need to make sure I understand what this PR is fixing.

Hi @tdonohue ,
Our PR fixes the second issue(individual fields read-only). The documentation is not updated, but we can update it.
And also we can have a look in the first problem.

Hello @tdonohue ,
We fixed also the behavior when we use the <visibility>workflow</visibility> tag for a single field.
Now should be everything fixed and working fine.


fix: Always use absolute path to temp folders

Description

Fixes #592.
Since Python 3.12 changed the default behavior of tempfile.mkdtemp(suffix=None, prefix=None, dir=None) (see the documentation here) and based on the discussion in the issue, it is recommended to use absolute paths for temporary folders. This pull request addresses that for earlier Python versions.
From now on, the method in the package.py will return an absolute path.
Motivation and Context

The details are described in issue #592.
Breaking Changes

Since this is the proposed solution and all the examples use absolute paths for the temporary folders, it is presumably not a breaking change.
How Has This Been Tested?

[x] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

[x] I have executed pre-commit run -a on my pull request

This PR is included in version 7.7.1 :tada:


Sync the devel branch with upstream

Sync the upstream changes from ceph/ceph-csi:devel into the devel branch.
The most important recent changes that we want included are:

update golang.org/x/net/html to address CVE-2023-3978

/lgtm


fix go.mod version to v6 according workflow https://go.dev/doc/module…

this PR fixes the following issues:

the docs https://pkg.go.dev/github.com/glycerine/zygomys have  latest tag v5.1.2+incompatible but repository contains v6.0.3

go get<EMAIL_ADDRESS>does not work, because

<EMAIL_ADDRESS>returns:
not found<EMAIL_ADDRESS>invalid version: module contains a go.mod file, so module path must match major version ("github.com/glycerine/zygomys/v6")

Additional info https://go.dev/ref/mod#incompatible-versions
UP:
https://go.dev/ref/mod#minimal-module-compatibility
 minimal module compatibility was added in Go 1.11 and was backported to Go 1.9.7 and 1.10.3. When an import path is resolved to a directory in GOPATH mode
this means that the Golang minimum compatible version cannot be lower than 1.9.7 after PR applied

Thank you.

thanks, if it doesn't make it difficult, you can mark a new tag v6.0.4 because there is no correct mod file for the old tags. After creating a new tag and requesting<EMAIL_ADDRESS>the documentation will be updated and modules versioning will work well from the new version

@maxxant feel free to make other suggestions or PR to help get modules working with zygo. I don't use modules much myself, so I'm pretty clueless about how to get them working.

for instance, I tried to check that the latest go get would work, but got
 ~/go/src/github.com/glycerine/zygomys (master) $ go get<EMAIL_ADDRESS>go get<EMAIL_ADDRESS>invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v6
~/go/src/github.com/glycerine/zygomys (master) $

If you know how to remedy/fix that, please advise.  I have no idea.

for instance, I tried to check that the latest go get would work, but got ...

please try it:
go get github.com/glycerine/zygomys/v6
or
go get<EMAIL_ADDRESS>so updated docs with /v6 too  https://pkg.go.dev/github.com/glycerine/zygomys/v6


[BUG]: TypeError: Object literal may only specify known properties

What version of drizzle-orm are you using?
0.32.0
What version of drizzle-kit are you using?
0.23.0
Describe the Bug
I bumped the versions of drizzle-orm 0.31.4 -> 0.32.0 and drizzle-kit 0.22.8 -> 0.23.0. After that my project stopped from building because some of the columns are not being recognized by the type system. I provided the error log, table definition and code that uses it below.
TS compiler error log:
src/services/sessions/index.ts:31:8 - error TS2769: No overload matches this call.
  Overload 1 of 2, '(value: { currency: string | SQL<unknown> | Placeholder<string, any>; platformType: number | SQL<unknown> | Placeholder<string, any>; sessionId: string | SQL<...> | Placeholder<...>; playerId: number | ... 1 more ... | Placeholder<...>; startTime: string | ... 1 more ... | Placeholder<...>; partnerTokenId: number | ... 1 more ... | Placeholder<...>; partnerSessionId: string | ... 1 more ... | Placeholder<...>; }): MySqlInsertBase<...>', gave the following error.
    Object literal may only specify known properties, and 'isUsed' does not exist in type '{ currency: string | SQL<unknown> | Placeholder<string, any>; platformType: number | SQL<unknown> | Placeholder<string, any>; sessionId: string | SQL<unknown> | Placeholder<...>; playerId: number | ... 1 more ... | Placeholder<...>; startTime: string | ... 1 more ... | Placeholder<...>; partnerTokenId: number | ... ...'.
  Overload 2 of 2, '(values: { currency: string | SQL<unknown> | Placeholder<string, any>; platformType: number | SQL<unknown> | Placeholder<string, any>; sessionId: string | SQL<...> | Placeholder<...>; playerId: number | ... 1 more ... | Placeholder<...>; startTime: string | ... 1 more ... | Placeholder<...>; partnerTokenId: number | ... 1 more ... | Placeholder<...>; partnerSessionId: string | ... 1 more ... | Placeholder<...>; }[]): MySqlInsertBase<...>', gave the following error.
    Object literal may only specify known properties, and 'sessionId' does not exist in type '{ currency: string | SQL<unknown> | Placeholder<string, any>; platformType: number | SQL<unknown> | Placeholder<string, any>; sessionId: string | SQL<unknown> | Placeholder<...>; playerId: number | ... 1 more ... | Placeholder<...>; startTime: string | ... 1 more ... | Placeholder<...>; partnerTokenId: number | ... ...'.

31       .values({

Table definition in schema.ts:
export const playersAuthSessions = mysqlTable("players_auth_sessions", {
	id: int("id").autoincrement().notNull(),
	sessionId: varchar("sessionId", { length: 40 }).notNull(),
	playerId: int("playerId").notNull(),
	currency: varchar("currency", { length: 4 }).notNull(),
	platformType: int("platformType").notNull(),
	startTime: datetime("startTime", { mode: 'string'}).notNull(),
	endTime: datetime("endTime", { mode: 'string'}),
	isActive: tinyint("isActive"),
	isUsed: tinyint("isUsed"),
	partnerTokenId: int("partnerTokenId").notNull(),
	partnerSessionId: varchar("partnerSessionId", { length: 64 }).notNull(),
	playerAddress: varchar("playerAddress", { length: 64 }),
	httpCFIPCountry: varchar("httpCFIPCountry", { length: 2 }),
	httpCFCoordinates: varchar("httpCFCoordinates", { length: 64 }),
},
(table) => {
	return {
		sessionId: index("sessionId").on(table.sessionId),
		playerId_idx: index("playerId_idx").on(table.playerId),
		players_auth_sessions_id: primaryKey({ columns: [table.id], name: "players_auth_sessions_id"}),
		sessionId_UNIQUE: unique("sessionId_UNIQUE").on(table.sessionId),
	}
});

Usage of table to perform queries:
    import { partners, partnersTokens, players, playersAuthSessions } from "../../schema"

    const session = {
      playerId: request.body.player.id,
      currency: request.body.player.currency,
      platformType: +request.body.settings.platform.type,
      sessionId: uuidv4(),
      partnerTokenId: request.tokenId,
      partnerSessionId: request.body.player.session.sid,
      startTime: DateTime.now().toUTC().toSQL({ includeOffset: false })
    }

    await this.db.insert(playersAuthSessions)
      .values({
        sessionId: session.sessionId,
        playerId: session.playerId,
        platformType: session.platformType,
        partnerSessionId: session.partnerSessionId,
        partnerTokenId: session.partnerTokenId,
        currency: session.currency,
        startTime: session.startTime,
        isUsed: 0,
        isActive: 0
      })

Expected behavior
All specified columns being recognized by the type system on writing queries
Environment & setup
Node.js v20.12.2
drizzle-kit v0.32.0
drizzle-orm v0.23.0

I can confirm this happens with 0.32.0. If you add .notNull() to the column declaration the error disappears

Was testing out drizzle for the first time today and ran into this issue on a fresh install trying to figure out what was wrong.  Downgraded to 0.31.4 based on @marko1010 's comment and it resolved the type issues for now.

I can confirm this happens with 0.32.0. If you add .notNull() to the column declaration the error disappears

it's still appears even if .notNull() applied to all columns.
❌

schema.ts

bun pm ls --all | grep drizzle

workaround
finally, type issues not appears by downgrading to<EMAIL_ADDRESS>
package.json
"resolutions": {
    "drizzle-orm": "0.31.4"
  }

Can confirm am also getting this issue with node-pg on 0.32.0

update drizzle-orm to v0.32.1
can confirm that it's already solved
can safely remove
"resolutions": {
    "drizzle-orm": "0.31.4"
  }

from my package.json starts from now
kudos drizzle team 🎉

I have still this issue on<EMAIL_ADDRESS>and<EMAIL_ADDRESS>:<

I have still this issue on<EMAIL_ADDRESS>and<EMAIL_ADDRESS>:<

Yep, I have this issue still on<EMAIL_ADDRESS>

I have still this issue on<EMAIL_ADDRESS>and<EMAIL_ADDRESS>:<

Yep, I have this issue still on<EMAIL_ADDRESS>
ya, i experienced this again,
and i don't know why
end up to add these again to my package.json.
+ "resolutions": {
+    "drizzle-orm": "0.31.4"
+ }

I am also experiencing this issue on 0.32.1

It looks like now<EMAIL_ADDRESS>requires in  tsconfig.json set strictNullChecks and strict  to true.

:>> when they fix it :????

Having same issues with:
"drizzle-kit": "^0.24.0",
"drizzle-orm": "^0.33.0",

Tested following fixes in this thread:

Adding notNull to table column:

Fixes the error, but then as expected I'm getting errors where I'm not using the column.

Resolutions does not do anything for me.
Adding strict null checks fixed it for me.

A little unrelated but getting the same error when doing a nested query; isVerified: true was giving me the error.
Adding the strict and strictNullChecks didn't work for me. I ended just casting it to any like:
db.query.products.findMany({
  where: ...,
  with: {
    user: {
      isVerified: true, // This is where I was getting the error
      columns: { password: false }
      ...
    } as any
  }
})

Had the same issue with:
"drizzle-kit": "^0.24.0",
"drizzle-orm": "^0.33.0",

Tested following fixes in this thread:

Adding notNull to table column:

Fixes the error, but then as expected I'm getting errors where I'm not using the column.

Resolutions does not do anything for me.

Adding strict null checks fixed it for me.

Sadly, it didn't fix it for me:
    const insertId = await this.db.insert(players).values({
      userId: playerData.uid,
      firstname: playerData.firstname,
      lastname: playerData.lastname,
      nickname: playerData.nickname,
      language: playerData.language,
    }).then(res => res[0].insertId)

typescript: No overload matches this call.                                                                        │
│  Overload 2 of 2, '(values: { partnerId: number | SQL | Placeholder<string, any>; userId: string | SQL<u│
│  nknown> | Placeholder<string, any>; status: number | SQL | Placeholder<...>; ... 8 more ...; updatedAt?│
│  : string | ... 3 more ... | undefined; }[]): MySqlInsertBase<...>', gave the following error.                   │
│    Object literal may only specify known properties, and 'userId' does not exist in type '{ partnerId: number | S│
│    QL | Placeholder<string, any>; userId: string | SQL | Placeholder<string, any>; status: numb│
│    er | SQL | Placeholder<...>; ... 8 more ...; updatedAt?: string | ... 3 more ... | undefined; }[]'

So the issue is still relevant but @Ymirke found out a workaround

Same issue here. Adding strict null checks is not an option for many existing code bases (although I agree its better to fix those potential type errors, but there'll be many code bases out there that won't be able to accommodate that). In my case, I needed to

pin drizzle-orm to ^0.30.0
pin drizzle-kit to ^0.21.0
pin @lucia-auth/adapter-drizzle to 1.0.7

Are there plans to tackle this issue?

It looks like now<EMAIL_ADDRESS>requires in tsconfig.json set strictNullChecks and strict to true.

insert into compilerOptions works for me, thanks!

But other things started to bother me in TypeScript.
Now null strings are no longer allowed without defining string | null
This is really annoying...

I have the issue with  "drizzle-kit": "^0.25.0", "drizzle-orm": "^0.34.1",
even with "strictNullChecks": true, "strict": true, 😭

It looks like now<EMAIL_ADDRESS>requires in tsconfig.json set strictNullChecks and strict to true.

This fixed the issue for me

I was getting the same error. And even after adding the tsconfig changes, the Nest application was failing at build. I assumed that maybe... when the update query is being ran for a field, it is not able to determine if the row actually exists in the Database or not. Hence there is an SQLUnknown in the the type def. I don't know how accurate i am with this but it seems to have worked :
`async addBalance(amount : number, id : string) {
try {
if(amount < 0) {
throw new HttpException('Invalid amount', HttpStatus.BAD_REQUEST);
}
  const userAccount = await db.query.AccountTable.findFirst({
    where: eq(AccountTable.userId, id)
  });

  if(!userAccount) {
    throw new HttpException('Account not Found.', HttpStatus.BAD_REQUEST);
  }

  userAccount.balance += amount;

  await db.update(AccountTable).set(userAccount).where(eq(AccountTable.userId, id));

  // This line was giving me the same problem.
  // await db.update(AccountTable).set({ balance: amount }).where(eq(AccountTable.userId, id));

  return { message : "Successfully added balance" };
} catch (error) {
  if (error instanceof HttpException) {
    throw error;
  }
  throw new HttpException(
    'Failed to register user',
    HttpStatus.INTERNAL_SERVER_ERROR,
  );
}

} `
Though I do feel this adds one extra query. But this seemed to be the only solution I could devise. Hope it helps someone.
"drizzle-orm": "^0.33.0"

hello, I have this config
import { defineConfig } from "drizzle-kit";
export default defineConfig({
schema:"./src/db/schema.ts",
out: "./src/db/migrations",
dialect: "sqlite",
driver: "d1-http",
strictNullChecks : true,
strict: true,
dbCredentials: {
url: "file:./src/db/sqlite.db",
},
});
And I'm having the error in the url inside of the dbCredentials :
Object literal may only specify known properties, and 'url' does not exist in type '{ accountId: string; databaseId: string; token: string; }'.ts(2353)
(property) url: string
Any idea on what can be wrong ??
Thank you in advance,

Seems like you are getting this error because of a bad config, though everything does look right right to me. Drizzle is always updating and changing these things so I suggest you to take a good look through docs : https://orm.drizzle.team/docs/get-started/sqlite-new

Thank you,
Actually I get this path error but I can run the drizzle-kit generate command, it creates the migrations folder with content.
However, if I try to use the command migrate, or push, I get this error :
$ npx drizzle-kit migrate
No config path provided, using default 'drizzle.config.ts'
Reading config file 'C:\Users\chicn\OneDrive\Ambiente de Trabalho\Personal code Projects 2024\code 2024\Node18\receitas\drizzle.config.ts'
Error  Please provide required params for D1 HTTP driver:
[x] accountId: undefined
[x] databaseId: undefined
[x] token: undefined
Any idea on how to solve this?

Ok, I think I've just solved both issues, if I'm working with sqlite locally, I should not have a config property for driver. I've just removed and both issues were solved.
Thank you in advance !

It seems that the problem was that I was defining a driver, when I'm actually working locally.
Removing this prop solved the issue of url does not exist in type, and the params for D1 HTTP driver missing.
The only warning that persists it seems to be the path. But it seems it doesn't have a negative effect on drizzle commands.
Thank you for the reply !

I have another question thow,
When I try to push some changes to the database, that was already structured before
I get this wierd output in the terminal (I've already tried with different terminals and with the NO_COLOR variable)
but I don't see a way to understand what my options are and what I should click :
It seems any key I choose aborts the action.
←[31m←[1mTHIS ACTION WILL CAUSE DATA LOSS AND CANNOT BE REVERTED←[22m←[39m
←[31m←[1m←[22m←[39m
←[37mDo you still want to push changes?←[39m
←[?25l←[32m❯ No, abort←[39m
Yes, I want to remove 1 table

Thank, I'm loving working with Drizzle-kit until now.
I would just love to know if there is a way to remove the ascii chars that appear in the middle of the messages for color.
I've tried to deactivate them using the NO_COLOR variable, it didn't work, and trying other terminals such as powershell.
Maybe there is another way, but I didn't find it yet.
example :
Drizzle Studio is up and running on ←[34mhttps://local.drizzle.studio←[39m
Thank tou for the good work !

strictNullChecks didn't fix it for me. Can anyone else confirm it's the same situation with them?

should not be an issue on latest(drizzle-orm@0.38.0+), if it's still an issue - please reopen

should not be an issue on latest(drizzle-orm@0.38.0+), if it's still an issue - please reopen

I am using "drizzle-orm": "^0.38.2", and "drizzle-kit": "^0.30.1" and this issue still happens.

should not be an issue on latest(drizzle-orm@0.38.0+), if it's still an issue - please reopen

Im facing the same issue , using  "drizzle-orm": "^0.38.3",


Collaboration with django-ninja

Hey.
Your project is very similar to https://github.com/vitalik/django-ninja. I wonder, maybe instead of having parallel branches you can collaborate together?

Hello.
That project looks interesting, but I'm still working out what I want to ultimately achieve with this repo. The "experimental" status allows me to develop it without having to worry too much about supporting users or additional use-cases. Perhaps when this is more stable it can be integrated elsewhere (or at least the learnings could be shared for similar implementations), but for now I'm just slowly hacking on it when I have the time/interest.


Implement Workflow list and workflow details page live update

Argo UI should use kubernetes stream API to automatically refresh workflow list and workflow details pages.

Live update had been implemented


Add useful optimization links

Docs Build status updates of commit a6b2bee:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/understanding-performance-for-mixed-reality.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Should throw JWTDecodeException in case date based claims like "exp" are specified in the wrong format.

We saw an issue, that when accidentally specifying an "exp" claim as iso string the exp claim is silently ignored. Imho a  JWTDecodeException should be thrown.
See:
https://github.com/auth0/java-jwt/blob/7dcea427df1db2b948911e70aef2e9d7f0b7cfad/lib/src/main/java/com/auth0/jwt/impl/PayloadDeserializer.java#L68

Yes, that makes sense. 👍


Add strictFunctionTypes to Enhance Type Safety for Function Parameters

🔍 Search Terms
strict function types TypeScript
TypeScript array union type safety
TypeScript specific to union array assignment
TypeScript union type array assignment error
✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

⭐ Suggestion
Introduce a new compiler option, strictFunctionTypes, to enhance type safety for function parameters. This option would prevent assigning specific array types (e.g., string[]) to function parameters expecting broader union types (e.g., (string | number)[]). This change aims to avoid potential runtime errors caused by unintended type mutations, ensuring that arrays maintain their intended types when passed to functions. It'd be a non-breaking change since it'd need to explicitly adding this option to tsconfig.
// TypeScript Configuration (tsconfig.json)
{
  "compilerOptions": {
    "strictFunctionTypes": true // Hypothetical option for stricter checking
  }
}

📃 Motivating Example
Imagine you have a function that accepts an array of either strings or numbers and modifies it. Currently, TypeScript allows you to pass an array of strings to this function, potentially leading to runtime errors when the function adds a number to the array. With the proposed strictFunctionTypes option, TypeScript would prevent this assignment, ensuring type safety and avoiding unexpected mutations.
type StringOrNumber = string | number;

const listOfStrings: string[] = [];

const addToListOfStrings = (list: StringOrNumber[]) => {
  list.push(1); // Adds a number to the list of strings
}

addToListOfStrings(listOfStrings); // Currently allowed, but causes a runtime error

💻 Use Cases

What do you want to use this for?
API Design and Validation:
When designing APIs or library functions that accept a union of types, it's crucial to enforce strict type constraints. By not allowing specific array types (e.g., string[]) to be passed to parameters expecting broader union types (e.g., (string | number)[]), developers can ensure that functions handle inputs in a type-safe manner, avoiding unintended mutations and runtime errors.
What shortcomings exist with current approaches?
Lack of Strict Type Enforcement:
Currently, TypeScript's type system is flexible, allowing specific types to be passed to parameters expecting union types. This flexibility can lead to unintended side effects, such as modifying an array of strings with a number, which contradicts the intended type of the array. This shortcoming can result in runtime errors and makes it harder to maintain type safety in large or collaborative codebases.
What workarounds are you using in the meantime?
API Design and Validation:
To prevent type-related errors, developers often add manual runtime checks within functions to ensure that arrays contain only the expected types before performing operations. While this approach helps avoid some issues, it adds boilerplate code and relies on runtime checks rather than leveraging TypeScript's compile-time type system.
Example:

const addToListOfStrings = (list: (string | number)[]) => {
  if (list.every(item => typeof item === 'string')) {
    list.push('new string'); // Safe to add a string
  } else {
    throw new Error('List contains non-string elements');
  }
}

Use of generics
Another workaround is to use generics to enforce type constraints more explicitly. However, this approach can become complex and cumbersome for simple use cases.
const listOfStrings: string[] = [];

const addToList = <T extends string | number>(list: T[], item: T): void => {
  list.push(item);
}

addToList(listOfStrings, 'new string'); // Safe
addToList(listOfStrings, 1); // Type error

By implementing the strictFunctionTypes option, TypeScript could automatically enforce these constraints at compile time, reducing the need for manual checks and making the codebase more robust and maintainable.

strictFunctionTypes already exists and it does something completely different than what you're suggesting.

It looks like you're really looking for something like https://github.com/microsoft/TypeScript/issues/14150; the unsoundness described here isn't limited to function calls.

In this case, I'm moving this discussion to that issue! Thanks


passing parameters to root page from @App

Short description of the problem:
I would like the be able to pass parameters to the root page of the application.
Something very similar to the Tabs parameters
Use case:
One of the use case for this feature:
When using the Custom URL scheme plugin and the application is open with an external link myapp://reset?token=blabla
this is when for example the user asks to reset his password, you want the like the open the right page and access the token parameter.
@App({
  template: '<ion-nav [root]="rootPage" [rootParams]="urlParametesAsObject"></ion-nav>',
  config: {} // http://ionicframework.com/docs/v2/api/config/Config/
})
export class MyApp {
  constructor(private platform: Platform) {
    this.rootPage = TabsPage;
  }
}

Have you tried [this]
(https://github.com/driftyco/ionic-preview-app/blob/master/app/app.ts#L179)
the preview app is called in the docs with some parameters like these
http://ionicframework.com/dist/preview-app/www/?production=true&ionicplatform=windows#/action-sheets/basic

@BugsBunnyBR Hi, Im getting cannot read property setRoot' of undefined`

Hello! Thanks for opening an issue with us! As this seems like more of a support question of how to do certain functionality i will urge that you ask this question on our forum (forum.ionicframework.com). Thanks for using Ionic!


Add last accessed time to session

we will increase the last accessed time upon every session access to ensure the session doesn't expire as even though it may not be being modified, it is still in use.

Also updated to use time.Now().UTC() just in case this code is running on
multiple machines (load balanced application) that may not have the
same timezone this will still function based on the UTC timezone.


How to send or reply messages to client/clients from server?

How to send or reply messages to client/clients from server?

Hi,
the server also has a PublishAsync method.
Best regards
Christian


Please add a license file with copyright

Please add a LICENSE.md (or similar) to your package with your copyright statement included.  This makes it easier for us to provide proper attribution.

Thanks!


EMQX Users migration between v4.3.17 to v5 with operator

Hello all,
I would like to hear your suggestion about EMQX users migration.
We are planning to upgrade emqx version and use it with operator.
What is the best way of migrating existing users from emqx v4 to v5. We are going to use emqx with operator.
I would like to hear your suggestions.
Thank you.

Hi, @memoliyasti Sorry, you cannot upgrade from EMQX v4 to v5 now. You need to create a new EMQX cluster.
First, you need install EMQX Operator 2.1, and use apiVersion: apps.emqx.io/v2alpha1 and kind: EMQX to deploy EMQX cluster, like https://github.com/emqx/emqx-operator/blob/main/config/samples/emqx/v2alpha1/emqx-slim.yaml.
Second, you can check migrate from V4 in EMQX document

Hello @Rory-Z , thanks for quick reply.
Let me describe the situation we have.
Along with upgrading broker itself, we want to migrate existing users from emqx v4 (non-operator) to emqx v5 (operator version).
We are able to run v5 with operator but we like to know how to take these users out which are located in v4 to the v5 (with operator)? This is the v4 chart we have.
Thank you.

Along with upgrading broker itself, we want to migrate existing users from emqx v4 (non-operator) to emqx v5 (operator version).

Hi @memoliyasti please define "existing users" first, I guess this is MQTT client ?

Unfortunately, you can only create a new EMQX cluster and migrate the MQTT Client connections to the new cluster. During this process, you can use certain routing methods to make the operation easier. Please note that newly created connections by MQTT Clients do not contain any session information and they need to subscribe to topics again.


Querying the sub-entities of a table that uses TPH does not return the base entities

I have two DbContext. A BaseDbContext and one that inherits from the BaseDbContextcalled FemaleDbContext.
public class BaseDbContext : DbContext
{
    public BaseDbContext(DbContextOptions options) : base(options) { }

    public virtual DbSet<Person> Person { get; set; }
    public virtual DbSet<House> House { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Person>().ToTable("Person", "dbo");
        modelBuilder.Entity<House>().ToTable("House", "dbo");

        modelBuilder.Entity<Person>().HasOne(e => e.House).WithMany(e => e.Persons);
        modelBuilder.Entity<House>().HasMany(e => e.Persons).WithOne(e => e.House);
    }
}

The goal is to extend the Person entity with another property. I do not want to use shadow properties because its too dynamic. So I am trying to make it work using TPH. Here is my other context:
public class FemaleDbContext : BaseDbContext
{
    public DbSet<Female> Female { get; set; }

    public FemaleDbContext(DbContextOptions<FemaleDbContext> options) : base(options) { }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Female>().HasBaseType<Person>();

        base.OnModelCreating(modelBuilder);
    }
}

As you can see, my sub-context should use the Female entity instead of the  Person. The problem is that when I run this.Context.Female.ToList() on my SubDbContext, only entities with the value Female inside the Discriminator field inside my database are returned. Entities with the value Person in that table are returned. But I want to get every entity.
Also, here are my entities:
public class Person
{
    public int Id { get; set; }
    public string Firstname { get; set; }
    public string Middlename { get; set; }
    public string Lastname { get; set; }
}

public class Female : Person
{
    public bool? IsPregnant { get; set; }
}

How can I configure my DbContext that this.Context.Female.ToList() returns both Females and Persons. Note that this.Context.Person.ToList() already returns everything, not only Persons
Here is a very simple repository to reproduce the problem:
https://github.com/MSiffert/EFCore-TPH-Example
The GET inside PersonController returns everything while the GET in FemaleController only returns the Female  entities

After some research I realised that this is the expected behavious. I am expecting a list of Female object, but the base entities cannot be converted into the Person entities. One solution I have used in my Sub-Context is to simply override every new Person entity to be a Female entity. That way everything works as expected.

public override int SaveChanges()
{
   foreach (var entityEntry in this.ChangeTracker.Entries())
   {
       if (entityEntry.Entity is Person)
           entityEntry.Property("Discriminator").CurrentValue = "Female";
   }

   return base.SaveChanges();
}

@MSiffert TPH mappings are used to preserve the inheritance hierarchy when going to and from the database. Over-writing the discriminator property in that way means that TPH isn't really even being used. In such a case, it's probably better just to map both entity types to the same table without using TPH. Some columns could not be mapped for one type if they are not needed and the column is nullable.


Icon addition

Description

Added and linked icons for: AlcoDroid, Carrot, Daylio, Star Walk 2, Two Dots
Icons addition information

Icons added

AlcoDroid (org.M.alcodroid)
CARROT (com.grailr.carrotweather)
Star Walk 2 (com.vitotechnology.StarWalk2Free)
Two Dots ('com.weplaydots.twodotsanroid)

Icons updated

Daylio (net.daylio)

Icons linked

AlcoDroid (linked org.M.alcodroid to alcodroid.svg)
CARROT (linked com.grailr.carrotweather to carrot.svg)
Star Walk 2 (linked com.vitotechnology.StarWalk2Free to star_walk_2.svg)
Two Dots (linked 'com.weplaydots.twodotsanroid to two_dots.svg)

Contributor's checklist

[x] I have followed the Lawnicons Guidelines
[x] I have ensured that Lawnicons builds correctly
[x] I am willing to make changes to my icons if someone suggests changes

Ah, thanks - I'd misunderstood the icon size vs canvas size. If I increase the canvas size to 192x192 (currently 160x160) without scaling the art, does that also address the "proper padding" issue? (I would think it would, but want to make sure I've not misunderstood a separate thing.)

Nope, you would also need to increase the viewport and properly center/size the icons

Apologies - not clear what "viewport" is distinct from "canvas size"...

assuming it fits exactly into the content area, it looks good to me

appreciate it! will close and fix.


Add a “version” module to remove git dependency

Complete this sentence
THIS PULL REQUEST IS READY TO MERGE
Feature or improvement description
This pull request changes the versioning system as it was initially implemented in CMake. This does not affect the build for Windows with Visual Studio.
The existing implementation inserts the git hash (AKA the version) into the source code through a compiler flag and preprocessor directive in NWTC_IO. Therefore, anytime the git status changes the compile command also changes so everything has to be recompiled.
This pull request improves the build system

Moving the git status checking to a standalone module
Moving the compiler flag from the main CMakeLists to the new module CMakeLists

These changes mean that the compile command for the other modules does not change with the git commit and only the lightweight Version module needs to be recompiled. The driver programs which use this module are relinked during compile time.
Related issue, if one exists
https://github.com/OpenFAST/openfast/issues/267
Impacted areas of the software
The build system through CMake
Additional supporting information
This is important when dealing with multiple branches as the git status changes frequently. Also, it will enable improved performance in the automated testing.
Test results, if applicable
Only the existing TravisCI tests are necessary.

@bjonkman thank you for creating issue #267. I think this pull request addresses it as you've described. Could you please take a look?

I just briefly glanced through the changed files. Are you sure the Windows Visual Studio solution files will actually successfully build with these changes? I would be very surprised if they work without adding the new VersionInfo.f90 file to their list of source files.

@rafmudaf I just made a pull request to your branch to address the changes that need to happen in the Visual Studio builds.

Thank you very much @bjonkman. After that bug fix, @ebranlard do you have any comments?

By the way, the failed TravisCI check is due to the expired intel license. In another pull request, I'll remove that test from the Travis setup until we get a better solution.

Everything looks good to me!


Docker image for building for aws lambda ARM architecture

Perhaps this repo is the wrong place to ask for this, but I think this docker image is only for building for the AWS lambda x86 architectures. AWS also offers lambdas based on ARM architecture. Would a repo like this for a docker image for building for ARM make sense for rust-serverless?

As a base image, we use this one: https://github.com/rust-serverless/lambda-rust/blob/master/Dockerfile#L1
So, we need support from AWS side. Does AWS provide an ARM image?
I am interested in ARM support too.

I'm quite new to this and unfortunately I don't know what AWS provides, but I found this repo https://github.com/aws/aws-lambda-base-images/tree/provided . Note that all the actual images are on branches. It looks like https://github.com/aws/aws-lambda-base-images/tree/provided.al2 might be what we need? It's the same .al2 suffix and there are subfolders for arm64 and x86_64.
It's a repo, not a set of actual images, but this section of the readme
What we're doing here
As soon as new AWS Lambda base images are available, an automated process snapshots the layers and configuration used to create these images and force-pushes them to this repository.

For examples, please see other branches in this repository.

Committed alongside the Dockerfiles in the branches are the tarballs, which balloon the repository size. Thus, we force-push branches that contain the tarballs.

Although we force-push the files away, the older versions of our images remain present on DockerHub and Amazon ECR.

makes it sound like the images are publicly available somewhere. Is that enough to tell if this is the right track? Would you know how to find the actual images from here if it is?

Thanks for the links! I think we can at least try to support simple image building. However, since our CI also does some testing - we need to run our tests on CI too (or just published untested ARM images). We need some time to investigate it.

Sure, no problem, I don't have an urgent need for this or anything, I just wanted to make the suggestion.

Looks like AWS just released the arm64 base image on ECR: https://gallery.ecr.aws/lambda/provided . Maybe we can try a build with this image public.ecr.aws/lambda/provided:al2-arm64.

@tysg Do you want to create a PR for adding ARM64-based Lambda docker images? If not, I will do it.

@tysg Do you want to create a PR for adding ARM64-based Lambda docker images? If not, I will do it.

I’m not sure how to base off a new image alongside the current one, so please go ahead!

Added it to master here: https://github.com/rust-serverless/lambda-rust/commit/eb5620ea80cee0b813075d4f6b218e025c21a62d
Beware - now we are not running CI for ARM64 since GitHub Actions doesn't provide ARM64 base images yet. Maybe we can try to fix it with a smth like qemu ...

By the way, it can be  interesting for us: https://github.com/tokio-rs/tokio/pull/4450
This is a ARM-based CI service

Looking forward to see these -arm images pushed to Docker hub as well! :)

Any ideas on when this image will be posted to dockerhub? Would be awesome for a project I am working on :)

@tysg when you will confirm that ARM Docker image works as expected, could you please post a comment here? And I will close the issue as resolved. Thanks in advance!

I modified the test/test.sh script to pull to arm64 image and managed to pass all the tests. So I do believe that the image can successfully compile ARM binaries, since I observe Docker on my Mac spins up qmeu-system-aarch64 processes during the test. And also the result:
👌   15 tests passed.

However, I don't think the test script fully does what it intend to: using either provided:al2 or provided:al2-arm64 can pass the test, which really baffles me.
@@ -91,14 +91,14 @@ verify_packaged_application() {

     if [ "$PROJECT" = "${HOOKS}" ]; then
         docker build -t mylambda:"${TSFRACTION}" -f- . <<EOF
-FROM public.ecr.aws/lambda/provided:al2
+FROM public.ecr.aws/lambda/provided:al2-arm64
 COPY bootstrap ${LAMBDA_RUNTIME_DIR}
 COPY output.log ${LAMBDA_TASK_DIR}
 CMD [ "function.handler" ]
 EOF
     else
         docker build -t mylambda:"${TSFRACTION}" -f- . <<EOF
-FROM public.ecr.aws/lambda/provided:al2
+FROM public.ecr.aws/lambda/provided:al2-arm64
 COPY bootstrap ${LAMBDA_RUNTIME_DIR}
 CMD [ "function.handler" ]
 EOF

I don't have enough capacity to debug this for now. Maybe @CumpsD @SpencerWhitehead7 @joshpauline can test it with your Lambda apps and comment here if it works?

I tested this image on my M1 pro this morning and it seemed to compile fine however I was hit with this error.
fork/exec /var/task/bootstrap: no such file or directory"
The bootstrap artifact cannot be found for some reason. do any of yoy know a fix for this issue?
  "serverless": "^3.7.1"
  "serverless-rust": "^0.3.8"

@joshpauline sorry I haven't used the serverless CLI before.


[Twig] boolean (true) CVA variants

Q
A

Bug fix?
no

New feature?
yes

Issues
Fix #1614

License
MIT

This is an attempt to solve #1614. As discussed in that issue, it seems like only a true should be valid. Because of this, I opted for the variant value(s) to be a string or list<string> - this is used when the recipe value is true. Examples:
{% props size = 'md', disabled = false %}

{% set button = cva({
    variants: {
        size: {
            sm: 'alert-sm',
            md: 'alert-md',
            lg: 'alert-lg',
        },
        disabled: 'opacity-50 cursor-not-allowed',
        disabled: ['opacity-50', 'cursor-not-allowed'], {# also valid #}
    },
}) %}

<button class="{{ button.apply({size, disabled}, attributes.render('class'), 'flex p-4') }}">
    ...
</button>

TODO

[ ] docs
[ ] changelog

When disabled is false, how could we associate CSS classes with it ?

To me it should only accept an array with true and false as keys

When disabled is false, how could we associate CSS classes with it ?

Yeah, you can't.
I sort of followed this (I don't know for sure that false is not supported) but simplified the implementation.

To me it should only accept an array with true and false as keys

I went down this road initially but, since a real bool cannot be an array key, I'd have to fudge 0|'false' and 1|'true' to represent false and true respectively. This felt a bit brittle to me.

So, I think it would be interesting to have something like this (to make it clear 😄):
{% props size = 'md', disabled = false %}

{% set button = cva({
    variants: {
        size: {
            sm: 'alert-sm',
            md: 'alert-md',
            lg: 'alert-lg',
        },
         disabled: {
             true: 'opacity-50 cursor-not-allowed',
             false: 'bg-blue-600 text-orange-400',
         }
    },
}) %}

<button class="{{ button.apply({size, disabled}, attributes.render('class'), 'flex p-4') }}">
    ...
</button>

So we're back to the suggestion:  either all your "keys" are boolean, either all are strings ?

So we're back to the suggestion: either all your "keys" are boolean, either all are strings ?

But keys can't be real booleans so we have to say "true" === true, "false" === false and/or 1 === true, 0 === false. Something like array<string,string|string[]>|array<"true"|"false",string|string[]>

Do as you think it's best, and you'll have my full support :))

https://cva.style/docs/examples/other-use-cases

cva is really just a fancy way of managing a string…

It would/should treat boolean as a string, even false.

I think it will be great if these configs work:
<twig:Alert /> {# Default value #}

<twig:Alert disabled /> {# true #}

<twig:Alert disabled="" /> {# true #}

<twig:Alert disabled="disabled" /> {# true #}

<twig:Alert disabled="true" /> {# true #}

<twig:Alert disabled="false" /> {# false #}

<twig:Alert disabled="{{ true }}" /> {# true #}

<twig:Alert disabled="{{ false }}" /> {# false #}

{% set trueBoolean = true %}
<twig:Alert disabled={{ trueBoolean }} /> {# true #}

{% set trueBoolean = true %}
<twig:Alert :disabled="trueBoolean" /> {# true #}

How is this related to CVA ?

Because variants cannot be true only, but 'true' AND 'false'.
cva({
    variants: {
        disabled: 'opacity-50 cursor-not-allowed',
    },
})

VS
cva({
    variants: {
         disabled: {
             true: 'opacity-50 cursor-not-allowed',
             false: 'bg-blue-600 text-orange-400',
         }
    },
})

As the doc mentioned above: https://cva.style/docs/examples/other-use-cases

The moment #1653 is merged, i'll rework this code from @kbond  (yeah i changed to original code ... so i'll assume this and won't ask him to adapt this PR haha) and we'll ship an easier DX, as multiple people ask it :)

I agree with @cavasinf in that all keys should be strings. I'll rework this now that #1653 is merged and we can do another round of discussion.

I'm in favor of the alternate implementation in #1710. WDYT @seb-jean, @Kocal, @cavasinf?

I'm also in favor of #1710, which keep the usage and maintenance very simple! :)

I agree with #1710 as well. 👍


New version: cangzhang.champ-r version 2.0.2

Pull request has been created with komac v2.2.1 :rocket:
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/cangzhang/champ-r/releases/download/v2.0.2-b7/champr-v2.0.2-b7.zip
Status Code: 200
(Automated message - build 886)

Automatic Validation ended with:

URI: https://lbj.moe/, Validation result: Failed, Error Message: The requested name is valid, but no data of the requested type was found. (lbj.moe:443) The requested name is valid, but no data of the requested type was found.

(Automated response - build 886.)


Make pre-release-tests.yml file

During the pre-release week (concerning only the Meili team, don't bother with the details) I need a CI running against the latest RC of MeiliSearch (and not the latest image). This RC is
Since the CIs of this package run in a Dart container, I don't know how to specify a dynamic variable (get by a script) to define which MeiliSearch version I would like to start.
See the example in the Ruby SDK CI:
https://github.com/meilisearch/meilisearch-ruby/blob/2ce58bdda136c1b672fbbbcdefb41f49a69d85c4/.github/workflows/pre-release-tests.yml#L23-L26
The pre-release-tests.yml file in this package would start the same:
# Testing the code base against the MeiliSearch pre-releases
name: Pre-Release Tests

# Will only run for PRs and pushes to bump-meilisearch-v*
on:
  push:
    branches:
      - bump-meilisearch-v*
  pull_request:
    branches:
      - bump-meilisearch-v*

jobs:
  integration-tests:
    timeout-minutes: 10
    runs-on: ubuntu-latest
    strategy:
      matrix:
        version: ['2.7', '2.8']
    name: integration-tests-against-rc (dart ${{ matrix.version }})

   ...

I just currently don't know how to run the latest RC of MeiliSearch in this GitHub Action.
EDIT: Oh maybe use the linux-amd64 assets link to download, unzip and run meilisearch with it: https://github.com/meilisearch/MeiliSearch/releases/download/v0.17.0rc0/meilisearch-macos-amd64

I found a workaround by running dart tests inside container in foreground mode. Using "host" network ensures that meilisearch server is accessible inside another container.

Yes I saw this! Awesome!


RPC mempool transaction query -- Bug fix

Refactor mempool tx query to an enum instead of 2 booleans. This makes it impossible to make an inconsistent query (previously managed by internal mempool assertions). Fixes an rpc crash bug

Excellent job 👏👏👏

Great work!


[FEATURE] Add position encoding interpolation to ViT

Would it be cool to have this position encoding interpolation implemented in Transformers' forward_features?
It would allow to easily finetune ViT and similar models with different image sizes. I just saw DINO's implementation and I think it's pretty clean.

There is already interpolation (resize_pos_embed) for ViT and a few other vision transformers. It works on loading pretrained weights. I don't see the point in doing it in foward pass (which would be useful if you wanted to use different image sizes at test time) because the results are quite bad without further finetuning...
>>> import timm
>>> m = timm.create_model('vit_base_patch16_224', pretrained=True)
>>> m.patch_embed.grid_size
(14, 14)
>>> m.pos_embed.shape
torch.Size([1, 197, 768])

>>> m = timm.create_model('vit_base_patch16_224', img_size=(256, 192), pretrained=True)
>>> m.patch_embed.grid_size
(16, 12)
>>> m.pos_embed.shape
torch.Size([1, 193, 768])

Oh that's great @rwightman, I didn't know about this feature. I believe it didn't exist the last time I checked. Indeed they do it in the forward pass because the Student is fed with different sizes.
Thank you! And I want to take advantage of this casual attention to congratulate you for this fantastic library.

Hi @rwightman , if I am going to use Vision Transformers as the backbone of object detection algorithms, e.g. Faster R-CNN etc., should I resize the images to the predefined sizes as the pretrained resolution (224 * 224 for example), or pad the images in the same batch to have a equal size which can be divided by the patch size?

@rwightman
How about finetuning object detection with multi-scale training?


Fix flowchart of cowboy_rest for PUT on new resource

http://ninenines.eu/docs/en/cowboy/1.0/guide/rest_flowcharts/ suggests that for a PUT on a new resource the resulting status code depends on whether a resp location or body has been set. Apparently this doesn't match the current state of the implementation (v1.0.0 and beyond) as within cowboy_rest:maybe_created/2 a PUT on a new resource always ends up with status code 201 without any further conditions.
Most likely the flowchart has to be fixed in order to reflect this new behaviour.

It took almost 5 years but I've finally gotten around to it. Thanks!


Spacing issue between H1 and button when email is selected as response delivery method

Issue / opportunity
Breathing room between H1 "Email response settings" heading and "Change settings" button
Screenshot

Issue no longer persists


Failed to deploy to GitLab

The pipeline failed when the follow is executed
julia<EMAIL_ADDRESS>-e 'import Pkg; Pkg.instantiate(); using NodeJS; run(`$(npm_cmd()) install highlight.js`); using Franklin; optimize()'

The error is
ERROR: MethodError: no method matching joinpath(::Nothing)

See details here.

did this use to work before and stopped working all of a sudden? what did you do between the time it did work and now?

I have not updated anything package in Franklin.
It works well locally without any problem.
So I guess it's problem on GitLab side, or something wrong with the Docker image.
Besides what you suggested, is it possible to just manually push the __site to GitLab?

could you try the Pkg.add without Manifest so we can rule this out?

Besides what you suggested, is it possible to just manually push the __site to GitLab?

yes, what you can do is:

run the command locally
push to gitlab including the __site folder
have a pipeline that does mv __site public so basically this one https://gitlab.com/newptcai/newptcai.gitlab.io/-/blob/master/.gitlab-ci.yml but without https://gitlab.com/newptcai/newptcai.gitlab.io/-/blob/master/.gitlab-ci.yml#L10-13

Thanks a lot. Using Pkg.add resolves the issue.


./google-cloud-sdk/install.sh error

Trying to install the google cloud sdk locally. Using Mac 64 bit. just installed python 2.7.15.
c02s10gwg8wp:~ szb7493$ /Applications/google-cloud-sdk/install.sh
Welcome to the Google Cloud SDK!
Traceback (most recent call last):
File "/Applications/google-cloud-sdk/bin/bootstrapping/install.py", line 12, in
import bootstrapping
File "/Applications/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 32, in
import setup  # pylint:disable=g-import-not-at-top
File "/Applications/google-cloud-sdk/bin/bootstrapping/setup.py", line 66, in
DoAllRequiredChecks()
File "/Applications/google-cloud-sdk/bin/bootstrapping/setup.py", line 62, in DoAllRequiredChecks
properties.VALUES.core.allow_py3.GetBool()):
File "/Applications/google-cloud-sdk/lib/googlecloudsdk/core/properties.py", line 1740, in GetBool
value = _GetBoolProperty(self, named_configs.ActivePropertiesFile.Load(),
File "/Applications/google-cloud-sdk/lib/googlecloudsdk/core/configurations/named_configs.py", line 400, in Load
force_create=False).file_path])
File "/Applications/google-cloud-sdk/lib/googlecloudsdk/core/configurations/named_configs.py", line 439, in _ActiveConfig
config_name = _EffectiveActiveConfigName()
File "/Applications/google-cloud-sdk/lib/googlecloudsdk/core/configurations/named_configs.py", line 464, in _EffectiveActiveConfigName
config_name = _ActiveConfigNameFromFile()
File "/Applications/google-cloud-sdk/lib/googlecloudsdk/core/configurations/named_configs.py", line 504, in _ActiveConfigNameFromFile
.format(path, config.Paths().named_config_directory), exc)
googlecloudsdk.core.configurations.named_configs.NamedConfigFileAccessError: Active configuration name could not be read from: [/Users/szb7493/.config/gcloud/active_config]. Ensure you have sufficient read permissions on required active configuration in [/Users/szb7493/.config/gcloud/configurations].
Unable to read file [/Users/szb7493/.config/gcloud/active_config]: [Errno 13] Permission denied: '/Users/szb7493/.config/gcloud/active_config'
c02s10gwg8wp:~ szb7493$
Any clues on what this means and how to fix it?

@jens86 I'm sorry you are having trouble installing the Cloud SDK.  Unfortunately, this repository is not where that SDK is maintained / supported.  Please use one of the resources on the SDK support page.


Permissions not being set as expected with S3 and DynamoDB

S3 and DynamoDB have different IAM resource strings depending whether referring to buckets vs items (S3) and tables vs index (DynamoDB). Below is an example of what currently needs done to add permissions to the index of a table.
api.attachPermissions([
    table,
    new iam.PolicyStatement({
        effect: iam.Effect.ALLOW,
        actions: ["dynamodb:*"],
        resources: [`${table.dynamodbTable.tableArn}/index/*`],
    }),
])

The [table] should automatically set the permissions to the indices, or there some be some shorter way to specify the indices / specific index to set permissions on.
S3 has the same issue. There is a difference between the bucket and items resources. Granting with attachPermissions([bucket]) only grants permissions on the bucket, not item based permissions like GetItem and PutItem. Currently, the way to work around this issue is below.
new iam.PolicyStatement({
    effect: iam.Effect.ALLOW,
    actions: ["s3:*"],
    resources: [`${bucket.bucketArn}`, `${bucket.bucketArn}/*`],
}),

I see! Let me give it a quick try.


Add RelationshipEncapsulationTests

As shown at the working group meeting, yhese are tests demonstrating unencapsulated relationships for references.

Very nicely presented!

w00t, thanks - merging!


Add Windows Server 2022 Desktop Packer templates

This commit adds a tools/devboxes/windows-2022 directory, which contains Packer templates and related scripts to aid in building a QEMU VM running a Windows Server 2022 Desktop guest OS, intended to help test workerd on Windows, when you do not have a Windows machine handy. At present, this has only been tested on a Linux host.
This was originally based on https://github.com/StefanScherer/packer-windows/blob/main/windows_2022.json, then heavily modified.
The build is split up into two separate Packer builds: an installation build, and a provisioning build which works on a copy-on-write image backed by the installation build's output. This is done so that working on the provisioning step doesn't require you to complete a full reinstallation of Windows first.

I see we now have the https://github.com/cloudflare/workerd-tools/ repo. I wonder if that's a better place for this.


Calling runtime calls in GPU target device region fails

Reporting a bug

[x] I have tried using the latest released version of Numba (most recent is
visible in the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
[x] I have included a self contained code sample to reproduce the problem.
i.e. it's possible to run as 'python bug.py'.

We import OpenMP runtime calls using CFFI. This works for host code where the OpenMP runtime library is dynamically loaded. However, on GPU device the OpenMP runtime library is a statically linked bitcode. Using the same import mechanism fails with:
.egg/numba/core/base.py", line 1114, in add_dynamic_addr
    assert self.allow_dynamic_globals, "dyn globals disabled in this target"
AssertionError: Failed in nopython mode pipeline (step: Handle with contexts)

If we don't import, it fails with a typing error:
.egg/numba/core/dispatcher.py", line 423, in error_rewrite
    raise e.with_traceback(None)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: Handle with contexts)

I'm attaching examples for both cases:
target-runtime-call.py.txt
target-runtime-call-noimport.py.txt

I believe this is easily solvable by removing the FFI function definitions and just use an ExternalFunction. I'm testing this and will prepare a PR.