Establish pattern for release branches to support bug fixes

I want to fix the bug in #1134 and ship it as Datasette 0.52.5 - but the main branch now has a feature in it (4c25b035b2370983c8dd5e0c8762e9154e379774 added arraynotcontains, #1132).
I'm not ready for a feature release, so instead I want to release 0.52.5 with just that bug fix.
This is the first time I will have shipped a release from a branch. I need to establish that pattern and add it to the documentation in https://docs.datasette.io/en/stable/contributing.html

I think I'm going to create a branch called 0.52.x that starts with 8ae0f9f7f0d644b0161165a1084f53acd2786f7c and then tag the release from there.

My concern is if this will  break anything about CI. I don't think it will - the code that deploys the latest main to https://latest.datasette.io/ should be unaffected, and the checkout code in publish.yml should check out the correct code based on the tag used for that release.

Likewise, Read The Docs publishes as stable the docs from the latest tagged release, so I would expect that to work fine as well.

Actually I'll start from 0.52.4 and then cherry-pick the fixes.
git branch 0.52.x 0.52.4
git checkout 0.52.x
git cherry-pick COMMIT

I'll write the release notes in the branch, then cherry-pick them over to main.

Then I can ship the release directly from that branch, creating the tag as part of the release process:

Used this procedure for the first time for 0.52.5 - deploy run here: https://github.com/simonw/datasette/actions/runs/411465648

Documentation for this procedure is now here: https://docs.datasette.io/en/latest/contributing.html#releasing-bug-fixes-from-a-branch


remove deprecated selfLink

Related Issue:  open-cluster-management/backlog#10696
Description of changes

Do we have to remove the ones in the test-data jsons? https://github.com/open-cluster-management/search-collector/blob/0f4bd03f1ae4e331be89063f753e83826d5c4232/test-data/appdeployable.json#L24

Changes are good, but first we need to remove any usage of the selfLink field from search-api.

Yes, facing some issues with committing changes there. The pre-commit hook is failing. Will check that


possibility of having multiple config file

[can multiple configuration file be used. example if one has multiple resource group(hence multiple storage account, 1 each under each resource group), it would be possible to switch environment dev/prod]

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

ID: fb42002e-9aa3-233d-9832-353235b7cd0f
Version Independent ID: e8b320b1-5805-67ba-46b2-48111861facc
Content: Azure CLI configuration options
Content Source: docs-ref-conceptual/azure-cli-configuration.md
Service: azure-cli
GitHub Login: @dbradish-microsoft
Microsoft Alias: dbradish

@minnieshi -
Thanks for brining this to our attention. We will investigate it further and update you shortly.

@minnieshi, Thank you for this suggestion.  Regardless of the active subscription, the CLI configuration information is located at $AZURE_CONFIG_DIR/config. The default value of AZURE_CONFIG_DIR is $HOME/.azure on Linux and macOS, and %USERPROFILE%.azure on Windows.  So when switching between environments with az account set --subscription mySubName, the stored values in the config file and locally stored environment variables don't change.
If I am interpreting your ask correctly, you are looking for behavior in tools like Terraform where every environment can have its own config information to toggle easily between DEV, STG and PROD.  In speaking with the Azure CLI engineering team this evening, if you would be willing to share some basic background and current contact information with me, they would like to hear more detail from you.  You can send me your information at<EMAIL_ADDRESS> I look forward to hearing from you.
Kindly,
Delora J Bradish
Senior Content Developer for the Azure CLI
C+AI Developer Relations

@dbradish-microsoft - Thank you for providing your insights.
@minnieshi - I hope @dbradish-microsoft has answered your question.
At this moment, Since there is no doc update required, We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


How to handle nullness with generic parameters? (specific example)

Hey, so i'm writing with the jspecify annotations in one of my little projects.
I am not running the tool so I'm actually unsure what the exact rules being enforced would be, but I am trying to get a mental model.
I have this "successor" record where, only in a very narrow context, it can be given a null action.
Outside of that scope, the only folks who can access the record will be guaranteed a non-null action. I'm wondering if I am representing that correctly
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;

@NullMarked
public record Successor<State, Action>(State state, @Nullable Action action, double cost) {
}

package dev.mccue.keys.search;

import io.vavr.collection.Vector;
import org.jspecify.annotations.NonNull;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;

import java.util.List;
import java.util.Objects;

@NullMarked
final class Path<State, Action> {
    private final double costSoFar;
    private final Vector<Successor<State, @Nullable Action>> soFar;

    public Path(State initialState) {
        this.soFar = Vector.of(new Successor<>(initialState, null, 0));
        this.costSoFar = 0;
    }

    private Path(Vector<Successor<State, Action>> successors, double costSoFar) {
        this.soFar = successors;
        this.costSoFar = costSoFar;
    }

    public State mostRecentState() {
        return this.soFar.get(this.soFar.size() - 1).state();
    }

    public Path<State, Action> withNext(State state, Action action, double cost) {
        return new Path<>(this.soFar.append(new Successor<>(state, action, cost)), this.costSoFar + cost);
    }

    public List<Successor<State, @NonNull Action>> withoutNullActions() {
        return this.soFar.filter(Objects::nonNull)
                .toJavaList();
    }

    public double totalCost() {
        return this.costSoFar;
    }
}

As I understand it, and I'm far from an expert, annotating a record component (the first case) only affects that record component. Annotating a generic type parameter (the second and third cases) affects all usages of that parameter.
So in the first case, the effect of @Nullable is restricted in scope to the action record component, but in the second and third cases, @Nullable affects all uses of Action, not just the action record component. Therefore, in the second and third cases, methods that accept/return Action, such as withNext, would be considered to accept/return nullable values.
I don't know what difference there is, if any, between @Nullable Action and Action extends @Nullable Object.

I'm sorry I was taking a bit of a JSpecify breather when this came in! At some point we hope reports like yours will become more common occurrences and we'll be in the habit of watching.

I don't know what difference there is, if any, between @Nullable Action and Action extends @Nullable Object.

In class Foo<A extends @Nullable Object>, the part in angle brackets is a declaration of a type parameter. That incantation says that the type argument given in a usage of the Foo<...> type can be any nullable OR non-nullable type (because "non-null extends null").
Inside the Foo class (and only there), we may see @Nullable A, for example as a method return type. That says that regardless of whether the usage is of Foo<String> or Foo<@Nullable String>, we want that return type to be @Nullable String either way.
Back to the original statement: cases like this, where a type can only ever be null within one constrained context, while usages in general can count on it being non-null, are probably best addressed by making the thing non-nullable and just suppressing warnings inside the special scope. Of course this has to be done carefully and one could shoot oneself in the foot.
I suspect I haven't fully helped with the original questions but let me start here and let me know what I can answer next!
(Aside: using type parameter names that look like class names will definitely confuse a lot of readers; it's customary to use a single letter for them to keep the distinction clear.)

(Aside: using type parameter names that look like class names will definitely confuse a lot of readers; it's customary to use a single letter for them to keep the distinction clear.)

I’ve also seen type parameters declared using a T_ prefix and all caps, e.g.: PrimitiveIterator<T, T_CONS> and Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T, T_CONS, T_SPLITR>>.

I'll optimistically resolve for now, but am happy to be more helpful if needed.
(To the side point, Google Style opted to keep these names distinct even from constant names as well, so in the few cases where T, E, X2 etc. don't help, we write RequestT, ResponseT, etc. Always ending with T. And of course then we don't let a class name end with [a-z]T. Still, it's a last resort.)


Issues with Nest 6.0

Seems to be an issues after upgrading to nest 6
TS2416: Property 'intercept' in type 'AbstractMorganInterceptor' is not assignable to the same property in base type 'NestInterceptor<any, any>'.
  Type '(context: ExecutionContext, call$: Observable<any>) => Observable<any>' is not assignable to type '(context: ExecutionContext, next: CallHandler<any>) => Observable<any> | Promise<Observable<any>>'.
    Types of parameters 'call$' and 'next' are incompatible.
      Type 'CallHandler<any>' is missing the following properties from type 'Observable<any>': _isScalar, source, operator, lift, and 6 more.

@kjetilhp Thanks for reporting this! I will update it this afternoon and release a new version.

@kjetilhp Sorry it took me so long to finish this.


Add Eq, Ord, Show instances for PasswordHash and Salt.

Everything's in, just can't get fourmolu to play nice locally.

@a-02 what's the exact problem? Are you using fourmolu-<IP_ADDRESS>?

That might be it. I'm trying to lint things on my end but it keeps coming back as "all good".

@a-02 I've tried something, let's see if it works

@kozross I think we're good for this PR :+1:


feat(DIST-301): Add functional tests for behavioral triggers from DIST-193

Test embeds created via embed code and API

[BOT] Preview available: https://embed.typeform.com/2ea88be0037bed1fd207245ceb0d08a16e01b320/embed.js

[BOT] Preview available: https://embed.typeform.com/874dbb7c4b8b65627fb1e8a4042fce7c07102719/embed.js

[BOT] Preview available: https://embed.typeform.com/54679b6abbb57f78d8bd06eb079c397694b5e9cf/embed.js

[BOT] Preview available: https://embed.typeform.com/52072fe635b7bf124332799637b6965fb6979dab/embed.js

Cypress supports many browsers. However I dont see any benefit from that since all other supported browsers are chrome-based. Safari and IE are not supported by Cypress and we would not be able to run those in Travis anyway (it runs linux container).
As for different resolutions, we run with desktop and mobile screen sizes which I think is sufficient.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Explanations to naming conventions

added explanation to naming conventions used by us in the project.

Coverage remained the same at 88.704% when pulling 8344adfd974562f87a998e0f3ca4b6c425dda445 on naming_conventions into dd010708edbe7bdc5a09447477f4f05c53ed1c64 on master.

Coverage remained the same at 88.704% when pulling 9ed565377335e03314297ae5f8a02d6cf87dbeb6 on naming_conventions into dd010708edbe7bdc5a09447477f4f05c53ed1c64 on master.

Coverage remained the same at 88.704% when pulling a9108744c052ee0a179fb0b8ff1c097f53abb069 on naming_conventions into dd010708edbe7bdc5a09447477f4f05c53ed1c64 on master.

@qiyunzhu would you be so kind and review and merge (if okay)? thanks!


stm32 sample application to test low power modes

This PR configures the Power Management policy for the stm32 soc series
and gives a sample application to enter/exit the low power mode.
The power residency is required to set the minimum timeout for entering sleep mode.
The sample application is demonstrating the power saving mode on the k_sleep with wakeup by the user button or the given timeout.
The CONFIG_SYS_POWER_MANAGEMENT is required to enable the low power modes.
In case the timeout is changed to 'FOREVER' only the user button can wakeup the kernel.
The PR #25978 is required then.
The different values of each SYS_PM_MIN_RESIDENCY is set for evaluation purpose significantly higher than the corresponding "time to wake Up"
The user button in this application corresponds to the WAKEUP PIN2 (= GPIO PC13)
The Deep Sleep mode is not supported by this PR.
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

change type of var

rebase

rebase

do not change the SYS_PM_POLICY_RESIDENCY

configure nucleo board  for test sequence

Include: a README file

rebase and move example to a new samples/subsys/power/stm32_pm

CI failure should be fixed by https://github.com/zephyrproject-rtos/zephyr/pull/28065

@frastm You'll need to "reopen and comment" if you want it re-tested.  Please don't open a new PR.

@frastm You'll need to "reopen and comment" if you want it re-tested.  Please don't open a new PR.

reopening

reopening

@galak can you please reopen this PR (option is not available for us). Thank you

@galak can you please reopen this PR (option is not available for us). Thank you

Ah.  I see; github prevents re-opening once the branch has been force-pushed.  I got bit by that before myself.
If you can reconstruct the commit that was on this branch at the time you force-pushed yesterday you can force-push that up, and it should be possible to re-open, then push the updated content.
If you can't push the old content up, or doing so doesn't unlock the "Reopen and comment" button, try deleting the github branch, then recreating it with the new content.  That still might not let you re-open this PR, but you could then open a new one.

Ah.  I see; github prevents re-opening once the branch has been force-pushed.  I got bit by that before myself.
If you can reconstruct the commit that was on this branch at the time you force-pushed yesterday you can force-push that up, and it should be possible to re-open, then push the updated content.
If you can't push the old content up, or doing so doesn't unlock the "Reopen and comment" button, try deleting the github branch, then recreating it with the new content.  That still might not let you re-open this PR, but you could then open a new one.

re-openning and push after rebase

re-openning and push after rebase

adding control on the regulator to save power

rebase now that #32128 is merged

@noelleclement is this relevant to your use cases?

Thanks @pabigot ! A little bit, since it can give me some inspiration for the sample application for the RTC timer. However I'm of the opinion that we should probably have a(n additional) different sample application, since not all boards have on-board LEDs.
I'll take a more in-depth look tomorrow, and see if I have some specific comments.

I would like to avoid that this is seen as a stm32-wide sample, while it isn't (especially since I'm currently working on the solution for non-LPTIM SoCs, or at least L1x :) ).
Thank you for picking this up again though @FRASTM !

I don't think the issue is stm32 here but rather lptim. In the end, this sample should be compatible with any low power solution, be it LPTIM or RTC based. So maybe the point is to rename from pm_lptim to power_mgmt ?

I don't think the issue is stm32 here but rather lptim. In the end, this sample should be compatible with any low power solution, be it LPTIM or RTC based. So maybe the point is to rename from pm_lptim to power_mgmt ?

Sure, but then again, we need to make sure it's scalable to other power_mgmt implementations, so probably something similar to samples/drivers/counter/alarm where there's multiple options for the TIMER device?
Even with this, I think it would still be useful to have some additional information in the sample on why the low-power timer is required (over 'regular' system timer), so the sample can truly be a starting point for setting up their own application.

I don't think the issue is stm32 here but rather lptim. In the end, this sample should be compatible with any low power solution, be it LPTIM or RTC based. So maybe the point is to rename from pm_lptim to power_mgmt ?

Sure, but then again, we need to make sure it's scalable to other power_mgmt implementations, so probably something similar to samples/drivers/counter/alarm where there's multiple options for the TIMER device?
Even with this, I think it would still be useful to have some additional information in the sample on why the low-power timer is required (over 'regular' system timer), so the sample can truly be a starting point for setting up their own application.

I don't think a sample should be the place where board configuration is done.
For sample portability (scalablity as you mention I guess), only the minimum configuration should be done. In that case, sample should enable CONFIG_PM. Then it is up to arch/soc/boards configurations to ensure that correct timer setting is achieved when Power Management configuration is requested.
To be clear, when PM is enabled, a L1 board should enable RTC clock automatically, and this should not impact sample implementation.
This way we ensure:

Easier sample portability
Easier use of board PM in various applications

I don't think a sample should be the place where board configuration is done.

I agree, but I don't think that would be the case with what I proposed. In that sample it's purely a way to access the device, and its API. However, I looked at it again, and I agree that in this sample that is not required, since the timer driver is more in the background, and indeed dependent on the SoC and board configurations, not really 'part' of the application itself. Whereas in the counter example it's demonstrating the counter API as well.
So yes, let's not make the sample dependent on the timer. However, I'm still of the opinion that it would be a good idea to mention in the README that for the pm to work, a LP-timer is being used (purely to give people some direction).


Fix assertions not printing correctly

What was incorrect?

It would console print something like Assertion failed: The problem is in the file<EMAIL_ADDRESS>Formatters didn't work correctly. Now it'll print Assertion failed: The problem is in the file /Users/.../Somefile.m

Why is it in a public header?

The support libraries use the asserts as well.


Fixes 'aad siteclassification enable' command. Closes #2675

Fixes aad siteclassification disable command. Closes #2675
Change to v1.0/groupSettings  and v1.0/groupSettingTemplates endpoints.

Can someone test this command?

We'll test it. Thank you!


65c02 BIT immediate should only affect Z flag

This fixes a discrepancy notice between the emulator and real DEV hardware.  The 65C02 BIT instruction behaves differently with the new immediate addressing mode.  See http://6502.org/tutorials/65c02opcodes.html#2 (and observed on hardware).

CI needs a retry (failed a download). 🤔


Generate unique share links and allow unsharing

Maybe new share links can be named to identify them for selective deletion

Will close as sharing/unsharing is already done.


  Need to build something similar on my end.
However, I can't run it on my Mac Pro 16". When i try to npm install, I get a TON of errors. If I force it (npm install --force), it will run in dev mode (quasar dev -m electron) but then I get:
Error occurred in handler for 'myShell:getMimeType': TypeError: mime__WEBPACK_IMPORTED_MODULE_4___default(...).lookup is not a function
at eval (webpack://electron-quasar-file-explorer-v2/./src-electron/handler.js?:86:56)
at node:electron/js2c/browser_init:189:579
at EventEmitter. (node:electron/js2c/browser_init:161:11093)
at EventEmitter.emit (node:events:390:28)
Ideas?

To add to this, I'm using node v16.18.0 & npm v8.19.2.

Please use Yarn and not npm


release/0.0.2-beta.4

run build production storage

run build production main

run build production storage


Intro to MVC cleanup - adding a model

[ ] Explain why we need initial migration. Pointer to more migration info
[ ] explain Add the database context to the Startup.cs file: in xplat adding a model
[ ] add tdykstra as co-author

@tdykstra  can you clean up/expand the EF info in these two?

Yes. By "these two" do you mean the VS version and the new xplat version?

@Rick-Anderson Is this ready for me or are you still working on it?

@tdykstra  ready for you to take over - and yes review both versions.


Regression task

Thank you for your sharing!
In your paper, it seems that CRD method is suitable for classification task, does it compatible with regression task?

Hi, @xjcvip007
Thank you for your thoughtful question! I did not try.
But my initial guess is that it would be compatible. Because our method is essentially representation learning. Wherever representation learning works, it might also work as well.


Add a toggle functionality similar to IndentBlanklineToggle

From time to time I have to select & copy text with the mouse and I always switch off all nice decorative elements to get "plain" text for the copy process.
It's not a big thing for sure - more a "nice to have " thingie ;)

You can turn it off by just doing :set colorcolum=
But yeah, maybe a command that toggles on and off with the old value would be nice.

Wow that was an easy one! Thanks for putting my nose into it 👍

This workaround doesn't work on virt-columns specified in plugins config (with virtcolumn = {'values'}). I tried some really dirty fix with setting char = '', but that seems to break things. This toggle feature would be really nice.

I agree that a toggle would be nice; changing the colour doesn't prevent it being including when copying the text from the buffer via a program/selection external to vim (e.g. cursor selection from terminal, tmux copy, etc.).

For what is worth, I did it without colorcolumn because I want that to be constant in my config. So I went for the lua customization approach:
This is overkill, but I enjoyed writing it and there is no noticeable performance hit.
-- when I setup virt-column I do:
local virt_column = require "virt-column"

-- This is me adding the `enabled` value here so it can be toggled in a keymap.
virt_column.enabled = true

local config = {
  enabled = virt_column.enabled,
  -- the rest of my configuration
}

virt_column.setup(config)

-- them in my lua/mappings.lua:

vim.keymap.set("n", "<leader>|", function()
  local vc = require "virt-column"
  -- The `enabled` key was added by me during setup to it can be toggled.
  vc.enabled = not vc.enabled -- toggle the boolean value
  vc.update { enabled = vc.enabled } -- update the plugin config
  vim.api.nvim_command "redraw!" -- redraw the screen
end, { desc = "toggle vertical guide/ruler" })


Update TOS link

Update terms of service link

You have a bug on your page https://mystenlabs.com/legal
Specifically, in the SuiFrens Terms of Service tab.
https://drive.google.com/file/d/1agRzrr2ySDwqE5Cyt2sxhDQVjBlye0jc/view?usp=share_link
When you click on the link www.suifrens.com it opens https://mystenlabs.com/www.suifrens.com


Add experimental standalone service managers

This change adds the experimental standalone service managers from the 2.x/serviceContainers feature branch into the development branch's SDK/Experimental folder.
These service managers may change in the coming releases and should not be presumed to be resistant to breaking changes. In fact, the expectation should be that these will change based in customer feedback.
Please note that these managers use the same profile system as the MixedRealityToolkit object. Inspector UI to display profiles has not yet been implemented. You can view the profile contents by double clicking the name of the profile file in the service manager inspector.

/azp run mrtk_pr

/azp run mrtk_pr

/azp run mrtk_pr

/azp run mrtk_pr


[FEATURE]: $inferSelect on a view

Describe what you want
$inferSelect works great on tables, but doesn't seem to exist on views. The following seems to work, however it would be really nice to just have $inferSelect available.
type CustomerView = InferModelFromColumns<
  typeof custView._.selectedFields,
  "select",
  { dbColumnNames: false }
>;

Is there any way to currently get types for the return value of a select on a view? Or would it need this to be implemented?

Is there any way to currently get types for the return value of a select on a view? Or would it need this to be implemented?

Not that I know of. I've just been creating new "tables" that have the columns in the view until this feature is implemented.

This one was added in the latest for all validator packages
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>


Feature request: warn about missing autocmd! from augroup

Usually when defining an augroup, you want to include autocmd! at the top to clear any old autocommands before defining new ones. More info: http://learnvimscriptthehardway.stevelosh.com/chapters/14.html
It might be nice for vint to warn about augroups that are missing an autocmd! at the top. What do you think?

Sound good.
How about these examples?
Examples
Good:
augroup Foo
  autocmd!
  autocmd BufNewFile * put ='Nyan'
augroup END

augroup Foo
  autocmd! BufNewFile * put ='Nyan'
  " :au[tocmd]! [group] {event} {pat} [nested] {cmd} should be allowed,
  " because this command is a short-hand equivalent to the first case.
augroup END

augroup Foo
  " Comment node placed before autocmd! should be allowed.
  autocmd!
  autocmd BufNewFile * put ='Nyan'
augroup END

Bad:
augroup Foo
  autocmd BufNewFile * put ='Nyan'
  " autocmd! not found.
augroup END

augroup Foo
  autocmd! BufNewFile *
  " Partial removing should not be allowed.
augroup END

autocmd! Foo
augroup Foo
  autocmd BufNewFile * put ='Nyan'
augroup END
" It should not allowed because there are many similar cases.
" I want to keep allowed notations lean.

augroup Foo
  autocmd! Foo
  autocmd BufNewFile * put ='Nyan'
augroup END
" Same reason.

Limitation
We cannot check the case:

https://github.com/google/vim-maktaba/blob/a5f242b8566e15db97aed04df3beb42557900679/autoload/maktaba/autocmd.vim

:+1:


Release 0.14.17

Major change:

Support MiniCPM-V-2_6-GGUF

Hello, I am a code review agent on flows.network.
It could take a few minutes for me to analyze this PR. Relax, grab a cup of coffee and check back later. Thanks!


Adding redirect for 24.908

Description
Redirects https://ocw.mit.edu/24-908S17 -> https://ocw.mit.edu/courses/24-908-creole-languages-and-caribbean-identities-spring-2017. This will make it easier for YouTube channel viewers to find the course, since that is the link in the YouTube channel description.
Also, the linter decided to add a trailing comma after the last entry in the redirect dict.
Motivation and Context

Closes https://github.com/mitodl/ol-infrastructure/issues/1155.

👍


Documentation page popup bug

In the documentation page for popup browse to any popup, it works fine. Now open the code for it <> symbol for any example, then the popup does not show up for the same. Even after you close the shown code.
Is that suppose to happen?

I saw the same issue. Used Firefox 52 and Firefox Developper Edition 54, both under Ubuntu 16.04

I'm on Ubuntu 16.04. Sounds like OS specific issue.

I think it’s universal, I could see it on Windows 10 as well.

I can see this issue in Windows 10.

Hi!
This seems to be an issue with the property "observeChanges: true" - it seems that some changes in the DOM trigger the Event-Handler and so Eventlistener will destroy the Popup. If you just change something in the DOM the popup-element may be destroyed and not be automatically rebuild.
Workaround: Create your Popups with "observeChanges: false" - this will solve the problem and should probably be the default setting.
This should probably be the default behaviour, especially for popups with "inline: true" or a template in the DOM, since automatic destruction is usually not needed.


Bookworm

Description
Upgrade base OS to Debian 12 (bookworm)
The existing identity-service and injector doesn't run with bookworm because the binaries are built using openssl 1.1 - bookworm dropped 1.1 and began using openssl 3. We need to change our builder OS to bookworm so the binaries are compiled using libssl3.
Additional Changes

Change dnsmasq user to UID 105 because 100 is taken by the OS.
Fix permission on /var/log/appgate-headless for sdp-identity-service.

Tested on minikube with meta-client and demo-worker

Checklist

[x] Bump .version and .appVersion in k8s/crd/Chart.yaml
[x] Bump .version and .appVersion in k8s/chart/Chart.yaml

Change dnsmasq user to UID 105 because 100 is taken by the OS.

mmm how does the permissions look at the end?

@lepiolet

mmm how does the permissions look at the end?

driver
messagebus:x:100:103::/nonexistent:/usr/sbin/nologin
dnsmasq:x:105:101:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
appgate:x:102:102::/var/lib/appgate:/usr/sbin/nologin

service
messagebus:x:100:103::/nonexistent:/usr/sbin/nologin
dnsmasq:x:105:101:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
appgate:x:102:102::/var/lib/appgate:/usr/sbin/nologin

dnsmasq
dnsmasq:x:100:101:dnsmasq:/dev/null:/sbin/nologin

@lepiolet Tested the sockets to kill the sidecars
Ran curl -X DELETE localhost:6666 from the main workload
/ # curl -X DELETE localhost:6666
killed

Dnsmasq
Listening to stop service on /var/run/sdp-dnsmasq/stop.sock
Exiting container sdp-dnsmasq
2024/10/01 17:42:11 socat[14] W exiting on signal 15
Stream closed EOF for sdp-demo/demo-sleep-job-j2gfs (sdp-dnsmasq)

Driver
Exiting container sdp-driver

Service
> 2024/10/01 17:42:10.000058960  length=81 from=0 to=80
DELETE / HTTP/1.1\r
Host: localhost:6666\r
User-Agent: curl/8.10.1\r
Accept: */*\r
\r
Info : 'VPN Driver': Connecting.
Info : 'VPN Driver': Setting log level to 'Info'.
Error : 'VPN Driver': Connection failed. Reason 'One or more errors occurred. (The JSON-RPC connection with the remote party was lost before the request could complete.)'.


Result not very good on testing

Some sample image visualized

miss detection is seriously problem.

Hey man I'm just wondering did you use some existing repo for these nicely visualized boxes ? Or is it your custom work.
Thanks!

This is fantastic as it is! Please ignore these comments, I think you've done an incredible job for the community.

Hello @jinfagang,
We were using models trained on the train-set to predict on KITTI test set, and had poor detection results at the center of the image on nearby/close objects (most cases), as in your case.
We also tried training and predicting on the Lyft dataset in KITTI format. We observed the same effect missing predictions on nearby large objects.
Could you please share how you have resolved this problem ?
Thank you!

Hi @beedotkiran , Did you have a different set of classes in the Lyft dataset. I am not able to train on a dataset with different classes. Any help would be appreciated.
Best Regards,
Nikhil


mailman: 3.3.1 -> 3.3.4 and python3Packages.aiosmtpd: 1.2.1 -> 1.4.2

Motivation for this change
I encountered an issue with the Mailman management interface (Postorious) which I contacted the Mailman team about. They informed me that the Mailman core has to be updated to add new endpoints.
Compiled + deployed + tested the fix on nixos-unstable. Also had to update aiosmtpd to resolve unmet dependencies in the Mailman update
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Added some comments to hyperkitty + postorious indicating the core should be on the latest version before updating.

Can you change the commit message on the last commit so that it begins with mailman? otherwise LGTM

Result of nixpkgs-review pr 118527 at dc328861 run on aarch64-linux 1

8 packages built successfully:

mailman
python38Packages.aiosmtpd
python38Packages.mailman
python38Packages.mailman-hyperkitty
python39Packages.aiosmtpd
python39Packages.mailman
python39Packages.mailman-hyperkitty
sourcehut.listssrht

8 suggestions:

warning: missing-patch-comment
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/servers/mail/mailman/default.nix:28:5:
   |
28 |     (fetchpatch {
   |     ^

warning: python-include-tests
Consider adding a checkPhase for tests, or if not feasible, pythonImportsCheck.
Near pkgs/development/python-modules/aiosmtpd/default.nix:26:0:
   |
26 |     description = "Asyncio based SMTP server";
   | ^

warning: no-uri-literals
URI literals are deprecated.
Near pkgs/servers/mail/mailman/default.nix:25:13:
   |
25 |       url = https://gitlab.com/mailman/mailman/-/commit/4b206e2a5267a0e17f345fd7b2d957122ba57566.patch;
   |             ^

warning: no-uri-literals
URI literals are deprecated.
Near pkgs/servers/mail/mailman/default.nix:29:13:
   |
29 |       url = https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch;
   |             ^

warning: missing-patch-comment
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/servers/mail/mailman/default.nix:32:5:
   |
32 |     ./log-stderr.patch
   |     ^

warning: unused-argument
Unused argument: lazr_delegates.
Near pkgs/servers/mail/mailman/default.nix:2:54:
  |
2 | , flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib
  |                                                      ^

warning: missing-patch-comment
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/servers/mail/mailman/default.nix:24:5:
   |
24 |     (fetchpatch {
   |     ^

warning: python-include-tests
Consider adding a checkPhase for tests, or if not feasible, pythonImportsCheck.
Near pkgs/servers/mail/mailman/default.nix:55:0:
   |
55 |     description = "Free software for managing electronic mail discussion and newsletter lists";
   | ^

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 118527 run on x86_64-linux 1

8 packages built:

mailman
python38Packages.aiosmtpd
python38Packages.mailman
python38Packages.mailman-hyperkitty
python39Packages.aiosmtpd
python39Packages.mailman
python39Packages.mailman-hyperkitty
sourcehut.listssrht

Thanks for doing the nixpkgs-review and merge :) I'll try to do the review part too from now on, but it was quite late last night when I made the PR


fix #28 and #27

remove_embargoed_data step added to remove relations that are problematic for reasoning #28
Removed --named-classes-only true  #27

Seems we don't have any of the relations issue #27 mention in our triplestore. Probably pulled from imports by ubergraph.
PREFIX RO: <http://purl.obolibrary.org/obo/RO_>
PREFIX UBERON: <http://purl.obolibrary.org/obo/uberon/core#>
SELECT *
WHERE {
  OPTIONAL {?s1 RO:0002323 ?o1 .}
  OPTIONAL {?s2 UBERON:transitively_connected_to ?o2 .}
  OPTIONAL {?s3 UBERON:transitively_anteriorly_connected_to ?o3 .}
  OPTIONAL {?s4 UBERON:transitively_distally_connected_to ?o4 .}
  OPTIONAL {?s5 UBERON:transitively_proximally_connected_to ?o5 .}
}

Lets keep this PR as draft.
I created a separate PR for issue #27  : https://github.com/VirtualFlyBrain/vfb-pipeline-dumps/pull/30


Can we add this to a CDN

I'd like to use this over CDNjs is possible.

A tag/release was just added to the repo.


parameters good, parameterized bad / "gradual" param

Param looks like an interesting library, but unfortunately I can never use it because by the time I ever get to a codebase, it's too late! People already wrote their classes and stuff, and it's not possible to make them inherit from parameterized.
I've proposed variants of "gradual parameterization" in the past. One day I'll try to write a decent overall proposal here in this issue. However, looking at param's code today I saw a comment:
https://github.com/holoviz/param/blob/b785c42e8745644ad74aa0ace758925f311443e1/param/parameterized.py#L2190-L2191
Usually my reminder comments fade into obscurity 30 mins after being written, but that one is actually useful. Following it (see the associated PR) , I can immediately get:
import param

class A:
    a0 = param.Number(default=0,doc="a0 doc")

>>> a = A()
>>> a.a0 = "number"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/sefkw/proj/param-gradual/param/param/parameterized.py", line 303, in _f
    return f(self, obj, val)
  File "/home/sefkw/proj/param-gradual/param/param/__init__.py", line 623, in __set__
    super(Dynamic,self).__set__(obj,val)
  File "/home/sefkw/proj/param-gradual/param/param/parameterized.py", line 303, in _f
    return f(self, obj, val)
  File "/home/sefkw/proj/param-gradual/param/param/parameterized.py", line 873, in __set__
    self._validate(val)
  File "/home/sefkw/proj/param-gradual/param/param/__init__.py", line 882, in _validate
    raise ValueError("Parameter '%s' only takes numeric values"%(self.name))
ValueError: Parameter 'a0' only takes numeric values

Of course, Parameterized and ParameterizedMeta class do a bunch of other stuff. However, I feel like it should be possible to factor some useful things out of those and thus also make at least certain functionality available another way. E.g. via a decorator people can use on their class. Or a number of decorators, each of which adds some particular functionality, if it makes sense on its own.
(Despite the title, I'm not suggesting to remove Parameterized - having Parameterized classes/class hierarchy is fundamentally useful.)

Very interesting!  You still have to edit the source code of A, but here A could be inheriting from some class that you can't modify.  I'm in favor of making the power of Param available in cases where the full approach can't be adopted but we can still provide some benefit.

Right, the fundamental thing is getting benefits of parts of param without having to go all in.
There are multiple themes/use cases that an issue called "gradual param" might be addressing. I'll brain dump some below - but because I am probably motivated here by wanting to do some "fun" programming for a change, I'm more likely just to play around and see what comes out than attempt to justify anything in a proposal that makes sense :)
(I think panel is likely to be generally the most motivating use case for param, so I'll probably talk about panel below, but of course we might like other benefits of param to spread too.)
1. You are class/function author, but don't want all of param
You are writing a class but you can't or don't have confidence/inclination to (yet) inherit from someone else's base class (param.Parameterized), but you'd like some benefit(s) from param.
You can add param.Parameters for just some specific attributes. And you can decorate your class to get more aspects of param.
This is likely to be the use case my PR will address.
2. You have a class or instance that you can't modify
Maybe you want to use e.g. panel in a "Parameterized classes API"-like way (https://panel.holoviz.org/user_guide/APIs.html) on some existing classes/functions, but you can't modify them. Or you have an existing instance, and can't modify it (other than normal interaction, e.g. changing some attribute's value).
You can transform/adapt a class, e.g. inheriting from the class you can't modify. Or you can transform/adapt an existing object, getting a new one. The result is then suitable for use in panel without further thought. I say panel, but it could be some other use of param. E.g. you want a stricter version of something.
(In the instance/object case, this could be as a "proxy" or not, e.g. after you safely set an attribute on your parameterized version, e.g. in panel gui, the change could be reflected back to the original or not.)
3. You can add new things to existing class/function/object, but can't modify anything that already exists
Maybe you want to use panel as above on an existing code base, but you can't modify anything already existing, e.g. the class hierarchy, or existing attributes - but you can add new things.
You might add information ("hints"/"annotations"...) to a class. E.g. for a class with attribute thing, you could add a hint like thing is param.Number(doc="blah", bounds=(1, None)). Those can be used e.g. by panel, because param would know how to convert (using the hints).
And if .param had been added (e.g. via decorating a class or adding to an object), the information could also be used for e.g. your_object.param.set() (or is it .set_param() - whatever).
The difference between this case and 2 above is that here you are able to store "domain knowledge" in the original source/class, so all users of the class can make use of it - it makes sense to store the information with the class rather than scattered elsewhere as in 2. This case differs from 1 because here you can't change an existing attribute into a parameter.
general notes
In cases 2 and 3 above, we'd need to consider what happens if e.g. a value is set on the original thing outside the bounds allowed by parameters. Maybe constraints can be relaxed or ignored in that case. (E.g. imagine panel expecting a number with some bounds and planning to use a slider, but encountering a number outside the bounds, so increasing the bounds, or maybe encountering a string and so just using a text input widget instead.)
Even in case 1, it's interesting to think about the same question. With an attribute being a parameter, it couldn't be set outside the bounds or whatever - it would be an error. However, in a large existing codebase, you might turn a pre-existing attribute into a parameter, and specify some bounds or whatever, but still want to allow code to continue to run without failing (at least for a period) - so maybe you could start logging/warning to start with, maybe even recording how bad things get so you learn the current typical bounds.
other "gradual param" ideas

param is not supposed to incur much performance penalty on getting (whereas there is a penalty on setting that depends on the checking). However, there is no doubt some performance penalty on getting. (Why that is a concern to people using python in the first place, I just don't know ;) ) To allay fears about that, could also offer a way to have a parameter only be a parameter until it's first set on an instance, at which point it just becomes a normal attribute. However, this loses a lot of the benefits/interesting features of param. Also the more "broken up" or "optional" bits there are, the more confusing everything becomes (let alone having to document it...).

(I'm sure there are more...e.g. for people coming with dataclasses and type annotations, but that's definitely a separate issue...)


User add form returns error 500 localy and in the demo

What version of Unfold are you using?
0.38
What version of Django are you using?
5.1.1
What browser are you using?
Firefox 128.0
Did you checked changelog/commit history, if the bug is not already fixed?
No
Did you searched other issues, if the bug is not already fixed?
Yes
Did you checked documentation?
Yes
Are you able to replicate the bug in the demo site?
https://demo.unfoldadmin.com/admin/formula/user/add/
Repository with reproduced bug
I cannot as the repo is private but bug is present on demo website.
Describe your issue
When setting the add_form = UserCreationForm from unfold.forms, any attempt to add a new user ends with error 500. The issue seems to be the usable_password field.
FieldError at /admin/auth/user/add/
Unknown field(s) (usable_password) specified for User. Check fields/fieldsets/exclude attributes of class UserAdmin.
User model is the base model for Django, it has not been changed. Removing or commenting out the add_form in admin.py resolves the issue and allows the admin to add another user but without the unfold styling on some elements. Removing the:
if "usable_password" in self.fields:
self.fields["usable_password"].widget = UnfoldAdminRadioSelectWidget(
choices=self.fields["usable_password"].choices,
)
in UserCreationForm did not fix the issue.

Thanks. Fixed in #746


undefined reference to `SSL_CIPHER_find'

Hello,
I'm struggling with building the newest zcoin <IP_ADDRESS>. I'm getting an error:
CXXLD    zcoind
tor/src/common/libor-crypto.a(tortls.o): In function tor_tls_classify_client_ciphers': tortls.c:(.text+0x4f7): undefined reference to SSL_CIPHER_find'
Is there any fix for this?

Idk, after updating the repo once more and rebuilding again, now I get error:
src/or/libtor.a(main.o): In function tor_main': main.c:(.text+0x7f61): undefined reference to evutil_secure_rng_set_urandom_device_file'
src/common/libor-event.a(compat_libevent.o): In function tor_gettimeofday_cache_clear': compat_libevent.c:(.text+0x840): undefined reference to event_base_update_cache_time'
collect2: error: ld returned 1 exit status
What's that about?

Hi, what OS are you using? Can you try upgrading to the latest <IP_ADDRESS> and try again?

Hi oti-dev, are you still having this issue? Please reopen if so.


Refactor WaitGroup/error chan pattern to use ErrorGroup.

I'm not 100% sure this is exhaustive, but I think it gets most cases. If I see more I'll fix them.


Run node playwright tests as part of integration testing

This will give us more visibility into flakiness and failure patterns etc.

What is the intent of this issue? I could see two possibilities:

Run the Playwright tests as part of each PR, or
Switch .github/workflows/integration-tests.yaml to run Playwright tests in Node rather than in .NET

The original title, "Run Playwright and other integration tests separately in CI", makes me think option 1 is what was intended. But yesterday's title change to "Run node playwright tests as part of integration testing" makes me think the intent is now option 2, rather than option 1.
So... are we wanting to run Playwright tests for every PR? Or are we abandoning that idea and just modifying the existing .github/workflows/integration-test.yaml to run the Playwright tests under Node rather than under .NET? Or is it both: edit integration-test.yaml to run Playwright under Node when we run integration tests, but also run Playwright tests on every PR as well?
The work I've done so far on #671 is assuming option 2. If we actually want the Playwright tests running for every PR, then I'll get working on implementing option 1 as well.

We certainly want to start running integration tests against develp after new deployments, but that's not what this issue is about.
It was originally about running Playwright tests in a different step/job than the other integration tests so that we had a better overview. Running Playwright tests in Node forces us to do that anyway 👍.


[WIP] raw buffer passthrough

Adds the ability to request a raw node.Buffer from the backend (rather than a mapnik.VectorTile object).
Motivation here is  - when a raw buffer is needed, we want to avoid the performance overhead of the (slight cost) of creating a mapnik.VectorTile object and the (meaningful [benchmark needed]) cost of copying data back out of it when calling vtile.getData().

What happens if you have upgrade set to true and raw_buffer is also true? Should it default to still upgrading?

What happens if you have upgrade set to true and raw_buffer is also true? Should it default to still upgrading?

Good catch. If my memory serves me right the upgrade option we added in the case that we would want to auto-upgrade tiles in production from VT1 -> VT2. And I don't recall this option ever being used. So I think we should:

assess if there are any downstream deps actually using this option
if there are not any obvious deps using, them remove the option
plan to publish a new dev version that removes the option
NOTE: we cannot bump to 5.x because then we'd force downstream users to upgrade to node-mapnik 3.7.x which is not possible currently for the downstream usage of this module. So, we'll need to publish this branch as a 3.10.x-dev release.

If my memory serves me right the upgrade option we added in the case that we would want to auto-upgrade tiles in production from VT1 -> VT2.

@springmeyer @flippmoke - Could we keep this conditional and use to this update all tiles to V2 tiles? What would the performance hit be to check the version of each tile and update if it's V1?

Are you asking if this update option could be used in the raw_buffer = true case?

@springmeyer yes, that's exactly what I was asking! This was also before Artem's workarounds in vtcomposite to handle V1 tiles, so now this is less relevant. Thanks for the clarification.
Although - I'm also confused about next steps for branch.

assess if there are any downstream deps actually using this option

Does this entail checking all modules that have this listed as a dependency and then looking for upgrade usage? What if there are non-Mapbox projects using this option?

if there are not any obvious deps using, them remove the option
plan to publish a new dev version that removes the option
NOTE: we cannot bump to 5.x because then we'd force downstream users to upgrade to node-mapnik 3.7.x which is not possible currently for the downstream usage of this module. So, we'll need to publish this branch as a 3.10.x-dev release.

Are we planning to use the dev release of this branch in production via mapbox-maps vtcomposite release?

@millzpaugh I retract my idea of removing this option. Rather I think that complicates this effort. Instead I think it is ideal to just leave it in and not worry about trying to remove.
So my new answer to this:

What happens if you have upgrade set to true and raw_buffer is also true? Should it default to still upgrading?

Is: lets not support upgrade:true with raw_buffer:true and therefore let's not worry about this. My decision here is colored by the fact that I consider tilelive-vector to be legacy software that should be fully replaced by other tools in the future. So not a lot of value to trimming its code if it is going to be replaced.

Are we planning to use the dev release of this branch in production via mapbox-maps vtcomposite release?

I think this is ready to merge and tag as an official new release, if you agree. So, please go ahead and do that when you have time and grab @mapsam for consultation on semver version to tag.

NOTE: we cannot bump to 5.x because then we'd force downstream users to upgrade to node-mapnik 3.7.x which is not possible currently for the downstream usage of this module. So, we'll need to publish this branch as a 3.10.x-dev release.

This is now no longer true since after this comment https://github.com/mapbox/tilelive-vector/pull/156 was merged. Originally I put up https://github.com/mapbox/tilelive-vector/pull/156 only as part of testing an upgrade to mapnik 4 in api-maps, but @ingalls needed it for another mapbox api, so this has already merged. What that means is that the next release that is made from this branch does not need to be a dev release and can rather be any semver version and downstream deps that need to stay using a given mapnik version can continue to do so by pinning the node-mapnik version. The npm logic should respect that pin and decide the right node-mapnik version to use, which will allow deduping to work. If deduping does not work, and downstream apps end up with multiple mapnik versions, that would be unexpected - the only thing that would explain it is if some dep other that tilelive-vector started requiring a more recent version than is pinned.

So, 👍 to tagging this as v4.2.0 per chat comment by @mapsam

ok, great! I'm merging this in :) thanks @springmeyer & @mapsam


PostgreSQL: Embedded many-to-many relations are no longer supported

Bug description
After update to pop_OS! 22.04 (checked against Ubuntu 22.04), I was forced to update Prisma from 3.9.1 to 3.14.0 to get rid of the Error: Unknown binaryTarget debian-openssl-3.0.x and no custom binaries were provided issue.
It resulted in breaking change for our embedded many-to-many relations with the following error:
Error: Schema parsing
error: Error validating: Embedded many-to-many relations are not supported on Postgres. Please use the syntax defined in https://pris.ly/d/relational-database-many-to-many
  -->  schema.prisma:13
   |
13 |   followingUsers        User[]                  @relation("followingUsers")
14 |   followedByUsers       User[]                  @relation("followingUsers", fields: [id], references: [id])
   |
error: Error validating: Embedded many-to-many relations are not supported on Postgres. Please use the syntax defined in https://pris.ly/d/relational-database-many-to-many
  -->  schema.prisma:14
   |
13 |   followingUsers        User[]                  @relation("followingUsers")
14 |   followedByUsers       User[]                  @relation("followingUsers", fields: [id], references: [id])
   |

How to reproduce
git clone https://github.com/Exef/prisma-embedded-many-to-many-postgres.git

cd prisma-embedded-many-to-many-postgres

npm install

npx prisma generate

Expected behavior
Prisma client is generated without errors.
Prisma information
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["interactiveTransactions"]
}

model User {
  id                    String                  @id
  followingUsers        User[]                  @relation("followingUsers")
  followedByUsers       User[]                  @relation("followingUsers", fields: [id], references: [id])
}

Environment & setup

OS: POP_OS! 22.04
Database: PostgreSQL
Node.js version: v16.14.2

Prisma Version
prisma                  : 3.14.0
@prisma/client          : 3.14.0
Current platform        : debian-openssl-3.0.x
Query Engine (Node-API) : libquery-engine 2b0c12756921c891fec4f68d9444e18c7d5d4a6a (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 2b0c12756921c891fec4f68d9444e18c7d5d4a6a (at<EMAIL_ADDRESS>Introspection Engine    : introspection-core 2b0c12756921c891fec4f68d9444e18c7d5d4a6a (at<EMAIL_ADDRESS>Format Binary           : prisma-fmt 2b0c12756921c891fec4f68d9444e18c7d5d4a6a (at<EMAIL_ADDRESS>Default Engines Hash    : 2b0c12756921c891fec4f68d9444e18c7d5d4a6a
Studio                  : 0.460.0

Embedded many-to-many relations were never supported for PostgreSQL, we just did not catch these not fully valid schemas.
I assume you want to have an m:n relation between User and itself? The error message tells you which syntax to use for that: Please use the syntax defined in https://pris.ly/d/relational-database-many-to-many In your case it should be enough to remove , fields: [id], references: [id] from followedByUsers.
Please try this and let me know if the API this generates is the same one you were using before and this works to fix your problem.


Aggregate crates into single client library

This is the plan to fix #145 and realise #146
We need to expose a single, easy way to interact with the modules in the elastic_* ecosystem. This means creating a new crate (called elastic), that depends on and re-exports requests, responses, types and hyper, with error chains that cover all crates, and implements interoperability between them.
At a high level, it should look something like this:

To explain the above diagram:

We have a codegen layer that takes the REST API spec as input in elastic_codegen
We generate a set of end-user Request builders in elastic_requests
We have a request method on a hyper::Client in elastic_hyper that takes a Request and converts it into a HTTP call
We have manually constructed response and error types in elastic_responses
We have manually constructed core datatypes in elastic_types
We pull all these bits together in an overarching opinionated library called elastic (this repo). This is where we expect end-users to start. And if they have a user-case that's outside elastic, they can combine the other crates as needed

API Gist
https://gist.github.com/KodrAus/2fd287e586fe70863fcbc8e9d791a143
TODO

[x] ForType glue trait between elastic_types and elastic_requests
[x] Error chains between the various crates

Calling into yourself maybe isn't so bad. It might be good enough to work with:
request::<IndexRequest>(TypeToIndex.into());

request(IndexRequest);

Note that if we do go and capture the complete set of parameters in our Request types (meanimg they accept a single arg as input) then we can call the elastic request method as follows:
request(IndexRequest::new(TypeToIndex { .. }))
    .params( .. )
    .headers( .. )
    .send()

For optional bits, like extra query parameters, we can use a builder like syntax. This would return a Future.

This Request type is going to need to be generalised a bit, which I think will be the job of elastic_requests to do. That is, we need to be able to know what the method, url and body are for a request. It should look something like:
struct Request<'a> {
    url: &'a str,
    method: HttpMethod,
    body: Option<&'a[u8]>
}

So everything is borrowed from the original request, rather than reallocating. Alternatively, we could consume the request in question and return this more general struct. That's probably reasonable to do.

The general request is now a part of elastic_requests. It's still expected that users will implement Into<IndexRequest> over the more general Into<HttpRequest>. For elastic_types specifically, it will need to have an optional dependency on elastic_requests so it can implement this. We might also need another marker type to make it work. Worst case we can add a request method on the type to convert it into a request.

For elastic_types, we should create a FromType trait that can be implemented for a concrete request type.

There should be enough stuff here to do an initial meta crate release.

The first sample is up!
There's still a lot of work to be done for error chaining and glue-traits.

I'm calling this a done job. With the 0.6 release all the major pieces are in place.


Date conversion dependent on local timezone

This is related to a few existing issues: #1725, #1716, #1470.
The reason to writing up this one, is that I've tracked the bug to a particular location in the code, and so this issue is with that particular piece of logic. Issue manifests itself either in browser environments or in server environment running in a timezone other than UTC. It is NOT a problem if timezone is UTC (for example, serverless environments, like AWS Lambda).
It is known that Excel does not store timezone information, all dates are timezone-less. It is stored as an offset (serial number) from 1st Jan 1900 (or 1904 in some formats).
Following code is performing conversion at the moment from the serial number to JS Date object: https://github.com/SheetJS/sheetjs/blob/master/xlsx.js#L2683
var basedate = new Date(1899, 11, 30, 0, 0, 0); //<PHONE_NUMBER>000
var dnthresh = basedate.getTime() + (new Date().getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;
function datenum(v, date1904) {
	var epoch = v.getTime();
	if(date1904) epoch -= 1462*24*60*60*1000;
	return (epoch - dnthresh) / (24 * 60 * 60 * 1000);
}
function numdate(v) {
	var out = new Date();
	out.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);
	return out;
}

The problem is that JS Date is a local date in the timezone of the browser (or system timezone for Node.js). Which means that a straight timezone offset calculated in dnthresh is dependent on whether daylight saving is on or off at the time that the library is loaded (i.e. new Date().getTimezoneOffset()). This leads to unexpected dates being returned after parsing the XLSX - sometimes they are off by an hour, which could then be one day before the expected date.
Since time in a timezone with daylight savings is not serial (i.e. it jumps around daylight savings), the serial formula needs to be corrected.
Logically the fix is something like this (not taking performance into account):
function numdate(v) {
  var out = new Date();
  out.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);
  // DST correction (!)
  out.setTime(out.getTime() + (out.getTimezoneOffset() - new Date().getTimezoneOffset()) * 60000);
  return out;
}

Obviously there would be some performance optimisation in the actual fix. For example, new Date() and new Date().getTimezoneOffset() should be calculated only once at the init time.
The main idea here is that applying the date serial, it is not clear whether it will fall into daylight saving according to the local timezone. That is why we have to check out.getTimezoneOffset() after setting it, and adjust accordingly.
Noting here - other solutions are also possible. We don't have to play with Unix epoch UTC offsets (i.e. getTime/setTime), and instead apply some math to the date serial to extract the actual year, month, day (logic widely available in popular date libraries). I am not sure of the performance implications here, perhaps setTime was chosen because of its speed? In any case, several approaches can be tried, and benchmarked.

Same as suggested in https://github.com/SheetJS/sheetjs/pull/1333 , the current implementation is incorrect around DST

Oh wow, I honestly didn't see that one (with exact same solution)... Sorry for raising a duplicate.


[RFC] add a phpmyadmin

We already have the pg admin install option for managing PostgreSQL, it would be very helpful to also have the phpMyAdmin install option for managing MySQL.
downloads
https://www.phpmyadmin.net/downloads/
PHPMyAdmin should be installed with PHP, MySQL and a webserver like Apache, IIS, or nginx

check if MySQL is installed, install if it's not
check if a webserver is installed, install one if not (default to Apache???)
Check if PHP is installed, install it if it's not

Should be on https://github.com/chocolatey/chocolatey-package-requests

Thanks @majkinetor new issue opened https://github.com/chocolatey/chocolatey-package-requests/issues/118


Some cleanup of static/third

Replace jquery-autosize and jquery-caret with the identical NPM packages (old versions; we can upgrade them later). Remove html5-formdata and zocial, which are unused.
Testing Plan: Verified with run-dev that autosize and caret appear functional in the compose box.

Looks great, merged, thanks @andersk!

Opened https://github.com/zulip/zulip/issues/12695 for the autosize upgrade, mainly to make sure we have a link back to the prior work on it.


docs: Fix the examples for variants

Before it tested the wrong variable

This does not actually change the behaviour though, you just renamed the variable. But like this is clearer.

It doesn't but only by accident if you look at line 61.


feat(Algebra/Category/Grp/ForgetCorepresentable, Algebra/Category/MonCat/ForgetCorepresentable): the forgetful functor on the category of monoids is corepresentable

The forgetful functor on the various categories of monoids (additive/multiplicative/commutative/etc) are representable by the natural numbers.
This basically copies the corresponding code for the group categories, and moves two lemmas from Algebra.Category.Grp.ForgetCorepresentable to Algebra.Category.MonCat.ForgetCorepresentable, to avoid having a MonCat file importing a Grp file.
Will be used to proved that to prove that the forgetful functor on MonCat creates all limits.

Thanks!
bors merge


Parameterize multiconnection in primitive generation

Currently hardcoded in primitive generator.

Need deeper discussion on:

Do we want to create so much blockage within the PDK?
is it really required to reduce resistance / increase pin area?

@soneryaldiz do you prefer primitives with partial routing in all cases instead of primitive routing until M2 or M3?

rimitive routing until M2 or M3?

@meghna09 , this depends on the interconnect stack and the type of the primitive. For example, a single transistor in 2x1 configuration with M1 pins can be easily fully routed by joining adjacent wires. If a PDK has fewer metal layers, then partial routing is preferable so that the layout is route-able.


handle missing HEREDOC endline at start of heredoc

Found via: https://github.com/BlakeWilliams/backbone_handlebars/blob/master/lib/backbone_handlebars/template.rb#L30

Somehow I rebased this branch into oblivion. Re-opened here: https://github.com/ruby/yarp/pull/1278


Amazing work- one tip for the documentation

First off, incredible work here. Idk how you figured all this out but it must have taken forever. One thing I had to figure out was that the originalToken itself was not enough to send to the login API. It needs to be the full token contained in the promise from the getToken function (includes a bunch of metadata at the end). It might be helpful to note this in the documentation. One other question I had was, how does the BDA work since its not coming from a browser? Is it okay to just have the same one each time since it's coming from an API instead?

Thank you! Making this library did take some time, yes.
originalToken SHOULD be the only thing which needs to get sent, but using the token from getToken is preferred.
As for the BDA, the windowshash and protohash are randomized (as well as some other values).
The browser fingerprint doesn't get randomized, but it does not seem like it affects Arkose Labs.
Arkose Labs decides on the amount of waves you get by the IP it is coming from.
You can always randomize the browser fingerprint by adding some code which randomizes the fonts from the fingerprint.

Very helpful thanks. originalToken kept giving me token validation errors from Roblox, but I'm sure there are different cases. Thanks again!


Fix bug hard to modify double (float) number.

When user input a double or float number into double spinbox (or float spinbox), digits decimal always appear -> hard to input.

thank you. I will check and merge after vacation.

Thank you for you pull request.
Using your code I've made modifications in master branch. Also I removed trailing zero chars.
Please see my commit 19140b023ec122d3aaf1fec43cf64db735db8d6b.
Is it fixed your problems with editing float/double numbers?

Yah, It had been fixed.


Trying to get content to display in columns

I've been trying to have one of the content blocks display text in 2-3 columns, but for the life of me I can't figure it out.
I'm a novice css/HTML user so some help would be appreciated.
I've been trying to implement the solution listed here but can't the result I'm looking for.

i just simply downloaded the sample html and put it in the shortcodes folder, the same way I did it for email sub boxes and ecommerce.
Truth be told I don't really know what I'm doing here.

is that a security risk?
That's a question only you can answer. The basic guideline I'd suggest to consider: do you have any secrets in the repo?

I might try theose shortcodes someday, but it will take some time (weeks-months) for me to do it.
Layout-changing shortcodes can be problematic and the worst case here is it's not easily supported without some theme adaptations.


[TEST] Expiration - aware admission controller test

Very important test which is missing yet.

That was my issue, I forgot to set the correct input format class. Seems interesting, shows some small improvement in hit rate. In combination with AQ based admission controller the effect is more visible.


Enable Inference with A100 to faster respond and improve customer experience

The price per photo is relatively the same. So A100 would be better for customer experience.

If possible please enable for this cloneofsimo/realistic_vision_v1.3


error while loading shared libraries

I am using Abseil with the CMake integration and would like to use the absl::flat_hash_map.
My CMake can find the absl package and compile/link perfectly by adding the absl::flat_hash_map cmake target. However, I got surprising error only at execution:
$ ./bin/test-vertex-set
./bin/test-vertex-set: error while loading shared libraries: libabsl_exponential_biased.so: cannot open shared object file: No such file or directory

Here is some additional info:
$ ldd ./bin/test-vertex-set
        linux-vdso.so.1 (0x00007ffdd7d1b000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc87a973000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc87a75b000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc87a36a000)
        libabsl_hash.so => XXX/build/third_party/abseil/install/lib/libabsl_hash.so (0x00007fc879ca1000)
        libabsl_city.so => XXX/build/third_party/abseil/install/lib/libabsl_city.so (0x00007fc879a9c000)
        libabsl_raw_hash_set.so => XXX/build/third_party/abseil/install/lib/libabsl_raw_hash_set.so (0x00007fc879899000)
        libabsl_hashtablez_sampler.so => XXX/build/third_party/abseil/install/lib/libabsl_hashtablez_sampler.so (0x00007fc879693000)
        libabsl_throw_delegate.so => XXX/build/third_party/abseil/install/lib/libabsl_throw_delegate.so (0x00007fc87948d000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc8790ef000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc87d251000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc878ed0000)
        libabsl_exponential_biased.so => not found
        libabsl_synchronization.so => not found
        libabsl_stacktrace.so => not found
        libabsl_time.so => not found
        libabsl_raw_logging_internal.so => not found

My executable has a RUNPATH pointing to XXX/build/third_party/abseil/install/lib and all the abseil libraries can be found inside this directory.

Please provide full instructions to reproduce the problem.

Here is a complete example: https://github.com/BotellaA/TestAbseil

I did another test by exporting LD_LIBRARY_PATH to XXX/build/third_party/abseil/install/lib and then it works.
My interpretation is that the direct abseil dependencies are correctly found but the indirect dependencies are not. One way to solve this could be to configure the RPATH of the installed libraries instead of adding the LD_LIBRARY_PATH which is not handy.
Currently, RPATH is remove during installation:
-- Installing: /tmp/abseil-cpp/build/install/lib/libabsl_time.so
-- Set runtime path of "/tmp/abseil-cpp/build/install/lib/libabsl_time.so" to ""

One could do it like this:
if(APPLE)
    set(OS_RPATH "@executable_path")
else()
    set(OS_RPATH "$ORIGIN")
endif()
set(CMAKE_MACOSX_RPATH ON)
set(CMAKE_INSTALL_RPATH "${OS_RPATH}")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)

I did the same thing with LD_LIBRARY_PATH and came to the same conclusion. We will have to research what the proper solution is. Thanks for the report.

I had the same issue with my larger project. I fixed it with the code showed in my previous post. Curious about what solution you will chose.

I believe we already have shared library build at HEAD including Windows. Is this issue still outstanding?

No, it can be closed.

@BotellaA @rogeeff I ran into this today.
current cmake absl does not set the install rpath so that shared libraries find their own internal dependencies
It would be great if absl could set RPATH on installation

I also ran into this while installing libphonenumber library in one of my project.
libphonenumber depends on some of abseil's container, hash and string function. When we install libphonenumber, it also installs abseil-cpp and when running my executable, I am getting
 error while loading shared libraries: libabsl_hash.so.2206.0.0: cannot open shared object file: No such file or directory
My RUNPATH is set to the directory where file libabsl_hash.so.2206.0.0 is present i.e externalLib/libphonenumber/cpp/build/_deps/abseil-cpp-build/absl/hash
We have another related issue here https://github.com/abseil/abseil-cpp/issues/1594. Hope this is resolved soon 🙏


POC: fine grained storage persister

Ref: https://github.com/TanStack/query/issues/4693
This is a POC of a persister that works for both sync and async storage
Things that are missing from the currently implemented client persister:

retry

TODO
needed for out of space issues that were reported previously

persisting paused mutations

offline mode?

How to run?

cd examples/vue/persister
pnpm i
pnpm run dev
list is persisted to localStorage and pages to idb

Seems to be working pretty well...
Extending useQuery api layer:
What we could do to make it even better is to add a persister to the option list of useQuery.
This will allow to pass in persister without touching queryFn.
Additionally we would be able to add it to the global defaultOptions of QueryClient if we would like to achieve global client persistance with the least amount of code. Without the need to wrap every queryFn with persister.
Two additional benefits would be the ability to get rid of setTimeout to store the state of query (or maybe we can do it now? I'm not sure). And also we would not have to push queryClient to the persister, as it could be passed to the persister along query function context.

@DamianOsipiuk another thing that comes to my mind is that for infinite queries, we execute the queryFunction multiple times (once for each page), but ideally, we'd only write to / read from the persisters once for the whole cache entry ...

Codecov Report
Patch coverage has no change and project coverage change: -8.49% :warning:

Comparison is base (e0aad73) 97.11% compared to head (7a18227) 88.62%.
Report is 681 commits behind head on beta.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             beta    #5125      +/-   ##
==========================================
- Coverage   97.11%   88.62%   -8.49%
==========================================
  Files          50       75      +25
  Lines        2391     2409      +18
  Branches      706      626      -80
==========================================
- Hits         2322     2135     -187
- Misses         67      228     +161
- Partials        2       46      +44

see 125 files with indirect coverage changes

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

@DamianOsipiuk @TkDodo this feature looks amazing and will take persisting data with this lib to the next level. I have one question about this implementation:
As far as I understand, it reads persisted data on demand, on the query level using a wrapper over queryFn?
If so, are those two concerns valid?

query function actually needs to be called to bring persisted data into query cache, right? So if we use async storage (or even sync too) for persistence, query will end up in hard loading state always, even if we have persisted data for it? It will just resolve much faster because it reads from storage and not from network?
after app is reopened, calling getQueryData on client won't return persisted data if query function was not called by some observer in the meantime?

Again - it's amazing work and I would like to understand what is happening here better 🙏

@emzet93

query function actually needs to be called to bring persisted data into query cache

yes, there will be a brief moment where the Query is in hard loading state. This is almost not different to how PersistQueryClient works though. There, restoring also runs in an effect, so there will be at least one loading render cycle. The only difference is that we are not "fetching", so the states will be:

status: 'pending', fetchStatus: 'idle'
while with the persist wrapper over useQuery, you would be in:
status: 'pending', fetchStatus: 'fetching'

We can think about putting the query into idle fetchStatus while we are restoring, too to distinguish from a "real" fetch.

after app is reopened, calling getQueryData on client won't return persisted data if query function was not called by some observer in the meantime?

that's correct, but it's also on purpose. The idea is to load queries into the in-memory cache on demand only, to avoid excessive memory usage. If you want it available after "page load", you should still use the <PersistQueryClient>.
Note that it's also possible to mix the two approaches: You can have most queries restore on page load with the PersistQueryClient, but have some (maybe heavy) queries be stored separately with the fine grained persisters.

@emzet93

query function actually needs to be called to bring persisted data into query cache

yes, there will be a brief moment where the Query is in hard loading state. This is almost not different to how PersistQueryClient works though. There, restoring also runs in an effect, so there will be at least one loading render cycle. The only difference is that we are not "fetching", so the states will be:

status: 'pending', fetchStatus: 'idle'
while with the persist wrapper over useQuery, you would be in:
status: 'pending', fetchStatus: 'fetching'

We can think about putting the query into idle fetchStatus while we are restoring, too to distinguish from a "real" fetch.

after app is reopened, calling getQueryData on client won't return persisted data if query function was not called by some observer in the meantime?

that's correct, but it's also on purpose. The idea is to load queries into the in-memory cache on demand only, to avoid excessive memory usage. If you want it available after "page load", you should still use the <PersistQueryClient>.
Note that it's also possible to mix the two approaches: You can have most queries restore on page load with the PersistQueryClient, but have some (maybe heavy) queries be stored separately with the fine grained persisters.

thanks for the reply! Currently I'm preventing rendering of my whole React Native app until hydration from storage is completed, which ensures that when I read sth from query client, hydration is completed. It won't be possible with grained persisters, however mixing two approaches could be a great way to go.
Also I'm not sure if read it properly: when grained persister saves the query data to the storage? Is after every successful refetch? Or is it saved in single batch together with all/global persister?
That's pretty important point from react native pov. Slow hydration is not that big deal imho - it's not that bad if user needs to wait half a second on app start. Saving data feels more critical. Now cache is saved as a whole after every change in query cache. It can be pretty expensive, especially on hermes engine which has serious issues with serialising data. Also it happens when user is actively using the app and it often results in visible FPS drops, so graining persisters could be a huge improvement here.

when grained persister saves the query data to the storage? Is it after every successful refetch? Or is it saved in single batch together with all/global persister?

it's after every fetch:
https://github.com/TanStack/query/pull/5125/files#diff-49e8b295893ae938f8fc349ec5c9d037944289d845c64c2ed9e38f9bbd63eba1R116-R120

Now cache is saved as a whole after every change in query cache. It can be pretty expensive, especially on hermes engine which has serious issues with serialising data.

yes, this is one of the issues we're trying to solve here. The saving and restoring always works on query level, so every one is independent.

https://github.com/TanStack/query/pull/5125/files#diff-49e8b295893ae938f8fc349ec5c9d037944289d845c64c2ed9e38f9bbd63eba1R116-R120

Perfect! Thanks for the explanations

@TkDodo:
also what do you think about adding the api allowing to restore persisted data to query cache for specific query, so it could be called in advance and allow skipping hard loading state when persisted query is mounted? I think that it should be possible if we pass a persister instance to it, so based on example from this PR it would be sth like:
const queryClient = new QueryClient();

const persister = createPersister({
        storage: {
          getItem: (key: string) => get(key),
          setItem: (key: string, value: string) => set(key, value),
          removeItem: (key: string) => del(key),
        },
        queryClient,
      });

await queryClient.restoreQuery(['posts'], persister);

then once useQuery for this key is mounted, it will have data already in first render.
Do you guys see any issues/limitations here?
If not then I would be happy to contribute and try to implement it on top of this PR once it's ready.

yeah I think this should be possible, but you'd need exact keys, not fuzzy ones. @DamianOsipiuk what do you think ?

Ah yeah, this is true. But it still can be useful for queries with static keys I think.

I don't think we know all stored keys because they would be stored under different locations. It's not like we're persisting them in the same item. To read from an external storage like localstorage, we need the exact key, because the queryHash (computed from the queryKey) is used as identifier:
const storedData = await storage.getItem(queryHash)

I think this looks very good now 👍

@TkDodo If you could take one last look, we should be ready to merge.

@badsyntax the experimental_createPersister is a wrapper around the queryFn, so it needs the queryFn to run in order to restore from storage. That doesn't happen per default when you are offline, because networkMode is 'online'.
What we have done is to actually set networkMode: 'offlineFirst' per default if you pass a persister:
https://github.com/TanStack/query/blob/1dc5758518594c82f5399deeb30e393b27d0a91a/packages/query-core/src/queryClient.ts#L513-L518
but if you pass networkMode: 'online' manually, there's nothing we can do. I'd say don't do that 😅

@TkDodo thanks for the quick reply. ok that makes sense! i'll keep it as offlineFirst. The only real difference i see now is that while offline those requests are still sent with offlineFirst. I guess this doesn't matter when network is really offline, but does present some problems when "mocking" offline state. (EG in my React Native app you can simulate offline mode by simply setting onlineManager.setOnline(false) but this approach will no longer work).

yes, that's what offlineFirst does, but that's also what makes the createPersister work: A request is made even though you are offline. That request is "intercepted" by the persister, and it will try to read from storage first. So if you want to get data from storage while being offline, you need at least offlineFirst.


All arguements passed to the program from the command line cannot contain spaces

this is because the parser just splits by space character

turns out this is done automatically, there mustvebeen somethingwrong with my testing


ads on pages 501 and higher are ignored

For popular models like 'opel' number of ads might by as high as 16468 and spanning over 500 pages. The script ignores any page numbers higher than 500, effectively capping the number of ads downloaded to 16000.

In the README file I wrote that the program scraps about 98% of files, that is about 190,000 ads

I understand it's a known limitation, but is there a chance to fix it? Consider this ticket as a feature request not a bug report.

I thought about it. For the car brands with the most ads, you have to divide into smaller parts, e.g. models or, more simply, by type of fuel. Currently, I do not have time to introduce this functionality.


Plotdata multivaried

Hey Jason,
I changed the directory in demos.m on my branch, and pushed the changes. I don't know why this difference persists in this comparison, but I guess it should be easy enough to change in master.
B

Applied patch to master, commit da5646516c06ae2f85a319fd978d9ed1476cdecb on January 27, 2017.


No clean way to return empty dataframe

Right now the only way to return an empty dataset or null result is to construct an empty Spark frame.  This is kind of clunky to do.
Might it make sense to change session.read to work on a variable set to None and interpret it as an empty dataframe?

Hi Ben, thanks for the suggestion!
Could you help me to understand your use case a little better? It's not clear to me in what situation you'd have a variable in a (presumably PySpark) session set to None and wish that to be interpreted as an empty DataFrame when you attempt to download it. In this suggestion, the differentiation between None (no dataframe at all) and an empty result would be lost, which seems valuable to keep.

Hi Ben, thanks for the suggestion!
Could you help me to understand your use case a little better? It's not clear to me in what situation you'd have a variable in a (presumably PySpark) session set to None and wish that to be interpreted as an empty DataFrame when you attempt to download it. In this suggestion, the differentiation between None (no dataframe at all) and an empty result would be lost, which seems valuable to keep.

My understanding is that trying to read a variable whose value is None will result in an error. For my application, I sometimes want to return a null result that will be interpreted as an empty dataframe. Right now I'm building an empty spark dataframe to return like spark.createDataFrame([], T.StructType([])). I was hoping to avoid having to do that.

My understanding is that trying to read a variable whose value is None will result in an error. For my application, I sometimes want to return a null result that will be interpreted as an empty dataframe. Right now I'm building an empty spark dataframe to return like spark.createDataFrame([], T.StructType([])). I was hoping to avoid having to do that.


Go to definition in a Vue SFC file on the import of another Vue component in a library with declaration maps doesn't work

Clone https://github.com/segevfiner/volar-declaration-map-issue
pnpm i
pnpm -r build
Open the project in VS Code.
Open "packages/bar/src/App.vue", and click on HelloWorld in the import on line 3 and go to definition, it goes to the built .d.ts file of HelloWorld.vue.
Open "packages/bar/src/main.ts", and click on HelloWorld in the import on line 8 and go to definition, it goes to the HelloWorld.vue source file.

This seems to happen in both non-takeover and takeover mode.
Related to the previously closed https://github.com/vuejs/language-tools/issues/1344

@segevfiner I think this is expected - when importing from foo, you are bundling foo first, then bundle bar, so you are not importing its source, but the build result.
If you want to goto HelloWorld.vue, I suggest you use this: https://www.typescriptlang.org/tsconfig/paths.html

Ah - wait, declaration maps?

I am having this issue as well, declaration maps only worked in ts file but not in vue file.

Ah - wait, declaration maps?

https://www.typescriptlang.org/tsconfig#declarationMap We want to go to source code rather than .d.ts.

I noticed that it is caused by an incorrect source file name with  .ts extension in e.g. SomeComponent.vue.d.ts.map
It's still reproducible with "vue-tsc": "1.8.27":
{
  "version":3,
  "file": "SomeComponent.vue.d.ts",
  "sourceRoot": "",
  "sources":["../../../../src/components/SomeComponent.vue.ts"],
                                                          ^^^^
  ...
}

And in with "vue-tsc": "2.0.6" it works as expected:
{
  "version":3,
  "file": "SomeComponent.vue.d.ts",
  "sourceRoot": "",
  "sources":["../../../../src/components/SomeComponent.vue"],
  ...
}


Freezing $ionicScrollDelegate still has bouncing effect

There seems to be an issue whereby if you call freezeScroll() or freezeAllScrolls() on the $ionicScrollDelegate, it still has the bouncing effect.  I'm not sure if this is as designed or not, but if you're freezing the scrolling, you're effectively disabling the scroll altogether, and I would expect the bouncing effect to also be "frozen" until the scroll is unfrozen.  Does that make sense?  Is there a workaround to disable the bouncing dynamically?
Thanks!

Greetings @aberman!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

I did find a way to disable the bouncing dynamically by using .getScrollView().options.bouncing = [true|false], but, regardless, this seems like a bug to me, as the freeze should do this for me.

Greetings @aberman!
I've closed this issue because my sensors indicated it was old and inactive, and may have already been fixed in recent versions of Ionic. However, if you are still experiencing this issue, please feel free to reopen this issue by creating a new one, and include any examples and other necessary information, so that we can look into it further.
Thank you for allowing me to assist you.


This is a set of 8 protein/gene sequence start/stop terms

These terms awaiting any final review/modification/comment.

This builds and passes all the tests.

This builds and passes all the tests.

See https://github.com/obi-ontology/obi/issues/1232
I will remove the extra spaces around the splits: |.

See https://github.com/obi-ontology/obi/issues/1232
I will remove the extra spaces around the splits: |.


Shall Flash-attn support Gemma-2 soft-capping anytime soon ?

Great product, TriDao (quá giỏi bạn tôi).
Shall your Flash-attn support Gemma-2 soft-capping anytime soon ? We inspired much by Gemma-2 quality and hence we would stick to it should context-length can be expanded. Unsloth has some options but they support only single GPU.
Thanks much bạn,
Cheers
Nguyên

it's supported

it's supported

Algorithm 1 FlashAttention-3 forward pass without intra-consumer overlapping
Algorithm 2 FlashAttention-3 consumer warpgroup forward pass
Is the current implementation of the Algorithm 2? Is there an implementation of the Algorithm 1 available? I would like to make a comparison. Could you please provide the complete code of Algorithm 1? thanks!

Hi @tridao,
I recently installed the latest version of FlashAttention using the following command:
pip install -U https://github.com/Dao-AILab/flash-attention/releases/download/v2.6.3/flash_attn-2.6.3+cu118torch2.1cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
I am using AutoModelForCausalLM from the Hugging Face Transformers library, which I've also upgraded to the latest version. However, I'm still noticing some unexpected results during inference.
Before I dive into debugging other parts of my code, I want to confirm whether the version of FlashAttention I've installed is fully compatible with the latest version of Hugging Face Transformers. Could this version mismatch be causing the issues I'm seeing?
Thanks for your help!

Idk anything about HF transformers

Thank you for your response. May I then assume that the version I installed supports the soft capping operation?

Idk anything about HF transformers

Is the current implementation of the Algorithm 2? Is there an implementation of the Algorithm 1 available? I would like to make a comparison. Could you please provide the complete code of Algorithm 1? thanks!


Race not ending when 11 other racers finish

In Grand Prix, when all racers except the player has finished, the race will not end despite results already being determined.
This, however, obviously doesn't apply to VS mode, but allowing at least an option for races to resume after the results are already determined would be huge for spending time on practicing shortcuts/strats on 100cc or Mirror.

For that particular use case, wouldn't a 100cc and a Mirror option for time trials be a better alternative?

Sort of, it'd depend on what would be easier to develop + in a lot of cases when using VS mode less time is spent on resetting/loading to get triple mushrooms again, as this can be more quickly done by using strategic items + driving backwards.


Enhanced View validations

Current dependencies on/for this PR:

feature/proof-of-stake

PR #742

PR #842   👈

This stack of pull requests is managed by Graphite.


Change assertion expiry date?

Hi,
I would like to change the assertion expiry date created by the IdP. The value of saml:Assertion/saml:Conditions/@NotOnOrAfter is currently about 5 minutes in the future. Is there a way to achieve this?

I had a similar request.  I ended up overriding the config.php file
./saml-config.php:/var/www/simplesamlphp/config/config.php

Then in the config there is a session.duration property which I changed.

I had a similar request.  I ended up overriding the config.php file
./saml-config.php:/var/www/simplesamlphp/config/config.php

Then in the config there is a session.duration property which I changed.

I don't think session.duration is the property to change. Its value is
8 * (60 * 60), // 8 hours.

not 5 minutes.

I don't think session.duration is the property to change. Its value is
8 * (60 * 60), // 8 hours.

not 5 minutes.

I could modify the assertion expiry date (@NotOnOrAfter) by setting
'assertion.lifetime' => 3600,

in metadata/saml20-sp-remote.php.
However, I'm not sure whether this works with the version of simplesamlphp currently used in docker-test-saml-idp, because I updated it to 1.19.0 previously.


Godot crashing upon startup

For me, Godot worked fine for 3 days. Since the fourth day everytime i open it, i wait a bit and after that the loading screen fades and Godot crashes. I use Godot version 3.0.2 for windows 10 64 bit and i believe its a shame that i cant use such a great engine :(
Btw i have an intergrated Intel hd 510 graphics card

can you share the problematic project?
no one can do much about it without more detail information or reproducible project, I guess.

I dont have a problematic project. Actually i havent done any projects on it because i didnt have the time but now that i do it doesnt work. I tried to re-install the program but that didnt solve the issue

So this crashes on the project manager? You can try starting it from the command prompt and see if there's any message. You can also try to delete your settings from %APPDATA%\Godot. Maybe you can try running the 3.0.3 release candidate as well.

You may check that your GPU drivers are still properly installed. Windows 10 likes to break them at every other system update.

ok without doing anything godot suddenly works just fine. Anyway thanks a lot for the help! I can finnaly start creating some games :)

Probably some mishap in the system. Closing as it's not a bug.


Tinylog does not work in Eclipse plugin

please refer to the link to get all information.

Closed in favor to https://stackoverflow.com/questions/61318315/how-to-use-tinylog-in-eclipse-plugin.
@chengm349 I added the missing tinylog tag in your question on StackOverflow.


Flash of "no theme"

Hi,
Whenever a story renders, I'm seeing a flash of "no theme" for a split-second before it works.
This is just a small annoyance in normal use, but Chromatic seems to screenshot the "no theme", so it breaks that facility completely.
I've tracked it down to src/preview/index.js, occurring when isFirstDataReceived is falsey, which comes from @storybook/addon-devkit.  I don't know where to go from there.
This is with:

@storybook/react v5.3.19
@react-theming/storybook-addon v1.0.2
@storybook/addon-devkit v1.3.7
@material-ui/core v4.11.0

and calling
const themeProvider = ({theme, children}) => (
    <MuiThemeProvider theme={createMuiTheme(theme)}>
        {children}
    </MuiThemeProvider>
);
addDecorator(withThemes(themeProvider, [themeData]))

in .storybook/preview.js
I suppose this could be a similar problem to that in #3, considering the indication of "no theme".

Moreover, snapshots look like:
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Storyshots Components/Inputs/Button Default 1`] = `

  no theme

`;

exports[`Storyshots Components/Inputs/Button Disabled 1`] = `

  no theme

`;

Fixed in #5
update to v1.0.3


Peer to Peer CR

Great work you've done on this project however, the add book feature is not working.

Hi @rmiyoyo
Congratulations on the job done so far. However, there are some issues you need to work on to go to your next project.
HIGHLIGHTS

Linters well setup
Html and the css well crafted and shows a good design

REQUIRED CHANGES

It is a requirement that you divide your codes into modules, though you have done this, but the functionality is not properly implemented. please kindly review this and resubmit this project for approval.
refactor your functions to arrow functions while using let and const.

Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.


Environment config (#1)

Hi! Thanks for starting this project. I added support to get environment configs.

Thank you so much for this. I'm merging the change.

thanks for merging, I'll probably have a few more submits in the upcoming weeks