How does one include this plugin?

Firstly, thanks for this, it looks like it exactly solves our question of how to show some simple extra content on a leaflet map! 🧡 🧡 🧡
Would you be open to publishing this on npm? Then we could embed it directly via unpkg, etc. Currently we're figuring out how to get the code into our codebase in a sensible manner...

Seconding suggestion to publish on npm. I'm attempting to use it in Angular project and having some trouble

Seconding suggestion to publish on npm. I'm attempting to use it in Angular project and having some trouble

@nurulhaya did you manage to use the plugin in your Angular Project. i am in the same spot RN.

Hello, this project looks great. But I also need it as npm package for my vue project. Is it possible to publish it on npm?

Hey all, since I needed this project on npm too, I now published it there: https://www.npmjs.com/package/leaflet.sidepanel
Since I'm new to the topic as package owner, I had a little mistake updating the readme and changelog after the npm release. So the latest readme can be found in my git repository https://github.com/cyclingbyte/Leaflet.SidePanel#readme
I'll also try to build a vue wrapper for @vue-leaflet/vue-leaflet
Please let me know if anything doesn't work as expected


Rotate unsorted array by k elements (Juggling Algorithm)

💥 Proposal
Given an unsorted array of n elements , rotate it by k elements in the counter clockwise direction. I am a GSSOC'21 participant and I would like to implement it using the juggling algorithm which works in O(n) time. I will write well documented code in C++. @gat786  Please assign this issue to me.
Have you read the Contributing Guidelines on Pull Requests?
yes

@sakshigoel19 Hi, I assigned you. Happy Coding!😊


After just purchasing and installing, it has been stuck like this and nothing is displayed.

After just purchasing and installing, it has been stuck like this and nothing is displayed.
The installation path is C:\DIY\IOPaint-v1.
Can you please help me? I'm encountering some issues. Previously, when my computer was not reinstalled, I used lama-cleaner without any problems. Today, my computer crashed and I had to change the system. After reinstalling, I found that the installation commands have changed. I couldn't find any tutorials online, so I had to purchase it. Now I'm facing this situation. Can you help me? Thank you.

It appears that gradio hangs when starting up, I haven't found out why yet, the logs show that the dependencies are installed correctly. Could you try to see if win_start.bat works with the following configuration file? The installer_config.json file needs to be placed in the same directory as win_start.bat.
installer_config.json

After reinstalling, I found that the installation commands have changed.

lama-cleaner functionality hasn't changed at all. What do you mean by "installation commands"? Are you referring to the old win_config.bat and win_start.bat files? You can find the old files here: https://github.com/Sanster/IOPaint/tree/1.2.0/scripts/user_scripts.

I have already sent you an email.
Regarding the older version I mentioned, I previously followed a video tutorial from the internet for installation. However, due to my computer crash, the commands on GitHub are now different from the ones in the video tutorial. As a result, I am unable to install it myself. But I really want to use this tool to remove text from comics. That's why I purchased the $5 one-click installation version, which led to this post because I am unable to launch the new version.
So, I would like to request an older version of the one-click installation package from you.

After reinstalling, I found that the installation commands have changed.

lama-cleaner functionality hasn't changed at all. What do you mean by "installation commands"? Are you referring to the old win_config.bat and win_start.bat files? You can find the old files here: https://github.com/Sanster/IOPaint/tree/1.2.0/scripts/user_scripts.

After using the version 3.1 that you sent me via email, I am now stuck at this point.

It's still the issue of Gradio hanging. Please download this configuration file and try win_start.bat again.
installer_config.json

It's still the issue of Gradio hanging. Please_ download _this configuration file and try win_start.bat again.
installer_config.json

Thank you. I will go ahead and run it now.

It's still the issue of Gradio hanging. Please_ download _this configuration file and try win_start.bat again.
installer_config.json

Although I don't know the reason, it works this time. Thank you for your help. I want to use a separate GUI. To do that, modify "gui": false.
I have been working on it since 12 PM and it's now 8 PM. The system crashed once and I almost lost it. Anyway, thank you very much for your help.


chore: update CI to create official releases

@tydeu and I realised, thanks to a bug report from Michael Stoll, that creating a release candidate simply by tagging is not correct, as this creates a source release without Lean.toolchain set.
This PR adjusts CI so that:

When a tag is being pushed, we check if the tag is "v" followed by a valid SemVer string
If so, use high compression and set LEAN_SPECIAL_VERSION_DESC
and then release as usual for a tag release.

We do not attempt to write the release description, or fill in a changelog, as we expect to want to do this by hand, at least at first.
I will use this to create v4.0.0-rc3 before we continue with v4.0.0. Unfortunately discovering this only now means that we probably should wait for v4.0.0 until next week.

@semorrison The whole tag should not be in LEAN_SPECIAL_VERSION_DESC. Instead, it needs to be split into parts and multiple defines set:

LEAN_VERSION_MAJOR ,  LEAN_VERSION_MINOR,  LEAN_VERSION_PATCH: The three numerical parts of the semver.
LEAN_VERSION_IS_RELEASE: Set to true (1).
LEAN_SPECIAL_VERSION_DESC: The part after the -.

Can we just fix the rc2 release? Seeing as it is not the code that was broken but rather the release process.

@digama0 We can retag rc2 and get a new build, but it does need to be rebuilt because this data is stored in the compiled objects.

@tydeu, thanks, I now parse the SemVer string and set these options separately. Could you look again?

I'd prefer to be conservative here and take the attitude that we're testing out the release process itself, and can take as many release candidates as we need to get it right.

Okay, let's try it in production then.


HOTP support

The library Protecc uses already has HOTP support so this should be an easy feature to add.

#5
https://github.com/Soboroo/Protecc/tree/appdata_container
I added HOTP and Account Icon. I used ApplicationDataCompositeValue to save the HOTP Counter value. I copied and stored images in ApplicationData.Current.LocalFolder. But the UI is made roughly so it needs to be modified.


Unexpected behavior (concurrency exception) with LOCK RECORD

OrientDB Version: 2.2.29
Java Version: 1.8
OS: Amazon Linux
I'm not sure if the discourse site is really being used any more (very little traffic lately), so I thought I'd try here. The details of the issue I'm seeing are detailed here: https://discourse.orientdb.org/t/concurrency-exception-on-update-even-with-record-locking/1370

@luigidellaquila Is LOCK RECORD supported in 2.2.x?

@lvca @luigidellaquila - Any thoughts on this? LOCK RECORD is documented in 2.2.x, but the issue I'm seeing does not appear to be locking.


Potential for confusion with wallaby.js

Wallaby.js is a test runner for JavaScript that's been around for a while (relatively speaking), there's big potential for confusion here.
http://wallabyjs.com/

Thanks @AndrewIngram. I'd never heard of WallabyJS before this. I'm not opposed to changing the name if people have other suggestions. Originally I choose Wallaby because it followed the same theme as Capybara. I guess I should have done some extra research.

Personally, I don't think it's confusing - one tool is for Elixir, and one is for javascript. Happy to acknowledge the existence of Wallaby.js on our homepage/docs if we ever get that far :)


Revise TODO Example

Some of the apps have dated screenshots (eg: TODO) and the "heystack" application doesn't work anymore. Either the dependencies aren't entirely in good shape or the integration of those apps with later versions of APIs or stacks.js modules require updates.
This an extension to #78; just splitting them, so we can address them independently.

A few observations:
All of the example apps have dependency mismatch problems with the node version. Some of the dependencies appear to have been in an inactive status for years now, so likely aren't going to be useful to rely on in these applications.
1- The todo, heystack, and billboard appear to work with the node's LTS version (installed in my machine via nvm install --lts); without this, there are many dependency alignment issues in each application.
2- In todo, I had to explicitly remove react-addons-test-utils from the "dev" dependency list. This appears to use node 1.15.x.x .. and it is very old. LTS switched to 1.16.x.x nowadays.
3- In heystack, the API reference is pointing to the older regtest environment, which has been migrated over to testnet domain, so with the correct API reference along with node LTS, the app boots up just fine.
4- The public-registry app extends todo, but the source code is at https://github.com/friedger/blockstack-todos, and the last commit to this repo was in 2020, so it is likely carrying older dependencies. Perhaps better to remove this from the docs.
5- We can remove the angular app from our listing. Shortly, we will add the Stacks.js starter site in Docs, and that would offer a significantly more straightforward method to bootstrap a frontend application with the listed JS frameworks, including Angular.

As next steps, I will make the above corrections in a PR instead of https://github.com/hirosystems/docs/pull/127 (I will close this, of course).


alias responseText to response

I'm dealing with a situation where switching to pretender is causing Three.js's file loading to fail. They assume the request has both a responseText and a response property.

Here is the offending code https://github.com/mrdoob/three.js/blob/6fcaa8ef3dac2640a88901f2efd37d42acb82b7c/src/loaders/FileLoader.js#L173.

I would have used
get response() {
  return this.responseText;
}

but I didn't know how new of code you are targetting.

Seems like this one causes #54. Please take a look


Odd SA1206 test structure

I just realized that the tests for SA1206 are divided into SA1206UnitTests (verifies only diagnostics) and SA1206CodeFixProviderUnitTests (verifies both diagnostics and the codefix). I am a bit curious if there are any reasons for this, since most (all?) other test classes are not divided this way. Seems like it could easily cause confusion and mistakes.

Thanks for the explanation!


can't swap jetton to ton in  V2

i'm going to swap USDT to TON, the pool is 'EQCGScrZe1xbyWqWDvdI6mzP-GAcAWFv6ZXuaJOuSqemxku4',
and i can get the route is 'EQCS4UEa5UaJLzOyyKieqQOQ2P9M-7kXpkO5HnP3Bv250cN3', and the pTON is 'EQBnGWMCf3-FZZq1W4IWcWiGAc3PHuZ0_H-7sad2oY00o83S' from the dex api
i use the code below, but swap USDT to TON does not work. the result is from USDT to USDT, why?
the hash is : https://tonviewer.com/transaction/db812bbbedd8181db9ab828c0c8526fd453beff788ff01f18a1e1b1940055757
	//routerV2
    const routerV2 = rpcClient.open(
        DEX.v2_2.Router.create(
          "EQCS4UEa5UaJLzOyyKieqQOQ2P9M-7kXpkO5HnP3Bv250cN3"
        )
      );
    //amountInOnChain/minOutOnChain/gasAmountOnChain/forwardGasAmountOnChain
    const gasAmountOnChain = toNano(gasAmount);
    const forwardGasAmountOnChain = toNano("0.125");
    const proxyTon = pTON.v2_1.create(
        "EQBnGWMCf3-FZZq1W4IWcWiGAc3PHuZ0_H-7sad2oY00o83S" // pTON
      );
    // swap jetton to ton
    const txParams = {
        userWalletAddress: wallet.address, // ! replace with your address
        offerJettonAddress: fromTokenAddress, // fromToken
        offerAmount: amountInOnChain,
        proxyTon: proxyTon,
        minAskAmount: minOutOnChain,
        gasAmount: gasAmountOnChain,
        forwardGasAmount: forwardGasAmountOnChain,
    };
    let walletContract = rpcClient.open(wallet);
    const sender = walletContract.sender(keyPair.secretKey);

    //log
    this.logger.log(` ========= stonV2 Jetton->TON start:from:${fromTokenAddress},to:TON,amount:${amount},minOut:${minOutOnChain},gasAmount:${gasAmount}`);
    await routerV2.sendSwapJettonToTon(sender, txParams)
    this.logger.log(` ========= stonV2 Jetton->TON end `);

Hi there,
We use GitHub issues as a place to track bugs and other development-related issues.
Please see the link below to our dedicated support line:
Help Center :  Click Here
Ticket ID: WB240
Note: Click on the live chat icon at the bottom corner of the page to start a conversation.

We Apologize for any inconvenience this may have caused you. I’ve carefully check your transaction hash and the transaction was completed. Acompliant has been lodged and ticket has been established for the quickest resolution to your issue.
Ticket ID : #TON6463
Visit the official support website to initiate a chat with the support team via Ton Live Support Desk using your ticked Id number. Your issue will be resolved.


expected to support DDL statement synchronization

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
expected to support DDL statement synchronization
Solution
No response
Alternatives
No response
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

This feature should not be implemented in cdc source. CDC source could send the schema change data.
The flink engine and sink connector should deal with these messages. It is the most important thing.


Add key bindings to replace the use of a mouse

There should be a driver that will call the appropriate things whenever certain input is made via keyboard OR mouse. The driver system is for simply mapping input from whatever device. I want to create this modular from the start because someone...for some reason...oneday...may want to use the editor using a game controller or something.

It should probably be simple for people to edit and create their own key bindings. May need to investigate other editors for inspiration.


Use filename in URL when storing downloaded file on disk

Rationale: To be able to decompress or transform a downloaded file based on file suffix
@toregge please review

@toregge please take a look again


udocker ignores further elements in ENTRYPOINT JSON array

Apparently udocker misses any elements in the JSON array passed in the ENTRYPOINT statement in a dockerfile.
Say I have a container running a python scripts, with arguments. I
want the script name to be in the entry point, and provide default
arguments via CMD, something like
ENTRYPOINT [“/usr/bin/python”,”myscript.py”]
CMD [“100”]

This works in Docker, while udocker apparently misses the second
piece in the array, since the outcome is
/usr/bin/python: can't open file ’100': [Errno 2] No such file or directory

which I assume means it is passing “100” as an argument directly to
/usr/bin/python.

Fixed in master branch


OCPBUGS-29281: Rebase lvms registry.access.redhat.com lvms4 lvms operator bundle v4.15.0 cherry picked

Which issue(s) this PR addresses:
Manual Cherry Pick of https://github.com/openshift/microshift/pull/2993

Closes #

closing as per latest architecture call


OME-Zarr SpimData platy-raw loaded twice

@constantinpape @KateMoreva
Not sure whether it is a bug in the code or in the file, but the data is loaded twice:
https://s3.embl.de/i2k-2020/platy-raw.ome.zarr

This is a minor issue with the data, I will fix it.


CMake TBBBuild does not support MinGW-w64 mingw32-make

The build fails with the message "Intel TBB can not be built: required make-tool (gmake) was not found".
TDM-GCC comes with mingw32-make, instead of gmake.

Hello, sjthebat.
We don't support mingw32-make and recommend you install gmake on your system.
MinGW is supported by Intel TBB open source community and if you want to improve this support you can contribute into project through: https://www.threadingbuildingblocks.org/submit-contribution or via pull request.

Hello
IMHO you can try to copy&rename mingw32-make to gmake. It should help.

@tbbdev It's good to know.
@ntfshard Renaming mingw32-make to gmake moved the process one step further. But there are other road blocks. Thanks!


Postgres Native Types: Improve error when uuid is invalid

Bug description
uuid accepts a string, but returns this cryptic error if your length is not 32 or 36 characters long.
How to reproduce
create table types (
  optionalUuid uuid,
  requiredUuid uuid not null,
  uuidList uuid[]
);

npx @prisma/cli@dev introspect

model types {
  optionaluuid            String?    @db.Uuid
  requireduuid            String     @db.Uuid
  uuidlist                String[]   @db.Uuid
}

npx @prisma/cli@dev generate

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()

async function main() {
  await prisma.$connect()
  await prisma.types.create({
    data: {
      optionaluuid: null || 'foo',
      requireduuid: 'bar',
      uuidlist: ['baz'],
    },
  })
}

main()
  .catch((err) => {
    console.error(err)
  })
  .finally(() => {
    prisma.$disconnect()
  })

./node_modules/.bin/ts-node index.ts
PrismaClientUnknownRequestError2:
Invalid `prisma.types.create()` invocation in
/Users/m/Go/src/github.com/prisma/qa-native-types/index.ts:6:22

  2 const prisma = new PrismaClient()
  3
  4 async function main() {
  5   await prisma.$connect()
→ 6   await prisma.types.create(
  Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Error { kind: ToSql(18), cause: Some(Error(Parser(InvalidLength { expected: Any([36, 32]), found: 3 }))) }) })
    at PrismaClientFetcher.request (/Users/m/Go/src/github.com/prisma/qa-native-types/node_modules/@prisma/client/runtime/index.js:15875:15)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  clientVersion: '2.10.0-dev.58'
}

Expected behavior
I think a better error would be nice, I assumed that [36, 32] was an array of two bytes at first, rather than two optional lengths.
Environment & setup

Environment variables loaded from ./prisma/.env
@prisma/cli          : 2.10.0-dev.74
@prisma/client       : 2.10.0-dev.58
Current platform     : darwin
Query Engine         : query-engine 77abecc4840127ebdcc02b83ee1e2c9cc27009f2 (at ../../../../../.npm/_npx/6106/lib/node_modules/@prisma/cli/query-engine-darwin)
Migration Engine     : migration-engine-cli 77abecc4840127ebdcc02b83ee1e2c9cc27009f2 (at ../../../../../.npm/_npx/6106/lib/node_modules/@prisma/cli/migration-engine-darwin)
Introspection Engine : introspection-core 77abecc4840127ebdcc02b83ee1e2c9cc27009f2 (at ../../../../../.npm/_npx/6106/lib/node_modules/@prisma/cli/introspection-engine-darwin)
Format Binary        : prisma-fmt 77abecc4840127ebdcc02b83ee1e2c9cc27009f2 (at ../../../../../.npm/_npx/6106/lib/node_modules/@prisma/cli/prisma-fmt-darwin)
Studio               : 0.304.0
Preview Features     : nativeTypes

Got here via Google. Agreed, this error is cryptic. Thanks for raising this!

Is it correct that Prisma throws this error? ULID is designed to be the same 128-bits as UUID so should work with the underlying database type, but using this means Prisma throws the error because it is validating the string length which is only 26 characters for ULID.


Bump Hadoop 3.3.5 for playground

Why are the changes needed?

Hadoop 3.3.5 brings back ARM64 support.
<EMAIL_ADDRESS>How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Thanks, merged to master


WIP: Manually handle updates

This pull request is a work in progress because it's more of a question if this is a feature you want to add to the component.
In my case I want to change the order and then update a ordering property on my objects in the list.
Using the polymer splice functions will trigger a change with a changeRecord which in turn will propagate to the rest-api component which sends multiple DELETE and POST request to the server when the only thing i want to do is send the appropriate PATCH requests to update my ordering value.
My change below updates the internal list and enables me to update my property on update events and then notify polymer of the change.
This feature might be good to add under a flag? Or is this something not relevant to the component?

Alas, I have no experience with Polymer, so I can not answer your question, but I can take PR :]
Accept?

In polymer you have atleast five functions to mutate collections: splice, push, pop, shift and unshift.
If you use any of these on a collection events will be triggered to update the UI and show the new state and also trigger any other actions built by other components that listen for these events.
In my case I wanted to handle the change manually and only update the order in which the elements are placed in the internal list of the collection.
You have the collection with functions and that collection have an internal list of items that it makes operations against.
By using normal javascript splice on the internal list and listen for the event in my code and manually update the changes I got the desired effect.
But there might be a case when someone wants the polymer triggers to fire instead. So if you want the code my suggestion would be to add a flag that switch this behavior.
Suggested flag name "manuallyHandleUpdateEvents" or if we want to make it general maybe "manuallyHandleEvents" ?
If we want it more general then I suggest to change the add and remove events as well.
I can do the changes but I want to know your opinion on the implementation.

manuallyHandleUpdateEvents — quite normal, only need to add the parameter description in README.md

Added flag and some documentation. Hope you don't mind that sublime removed the extra spaces :)

👌


Fetch neighbouring images when downloading

Buffer from neighbouring images is added to the image being used for training (robosat/tiles.py#buffer_tile_image). Maybe rs download should try fetching images neighbouring the ones in csv file?
For example: if training set is made of three images (marked as T), maybe neighbouring images (marked as N) should also be downloaded:
.NNN
NNTN
NTTN
NNNN

This would decrease (or in most cases totally eradicate) the need to add "no data" or "mirroring" buffers?

We only buffer images for prediction currently. For training we need fixed-size images and buffering would only give us images which are a bit larger. In contrast for prediction we buffer, predict, then unbuffer the prediction. The main use-case is to have smooth tile borders from prediction.
https://github.com/mapbox/robosat/blob/8d9bd9cbf1edde83f531d267072b6dcb3ba93860/robosat/datasets.py#L81-L134
For prediction your dataset should already come with neighboring tiles, e.g. because you tiled a GeoTIFF or you downloaded a full set of tiles for a bounding box.
What's your take on this? Do you have a use-case where the downloader should fetch neighboring tiles?

Well I'm not an expert in ML, but I've heard that if you want to have a good training for points, you need their neighbours (moving window). Therefore if you want good training for points close to the edge of an image, you would need a part of the neighbouring image. But this could be something which depends on the model used.
I'm fine with closing this issue if buffering is not used during training.

The problem for training is you need a fixed-size image. We can change the tile size from our default 256x256 or 512x512 but then you still will have a fixed size image tile. You will always have borders with fixed size images.
The only reason why we need buffering is to handle predictions near / across tile boundaries during. That's independent to raw model training or prediction on its own and is really just to allow for smooth transitions between tiles.

Adding here: one use-case I can think of is if you have a dataset with a strong bias, for example a single x or y slippy map strip with no data in half of your tiles. Then you probably need a sliding window approach.
I'm closing this as not actionable; we use slippy map tiles as abstraction to work with fixed-size image tiles.


[sw] Introduce write_only_set_*32() functions to mmio.h

These functions are like existing nonatomic_set functions, but do not
perform a read, so they can be safely used with registers mapped as
write-only memory.
Fixes #1946

Thanks - just ran into a bug in the dif_uart_irq_state_clear() function that does a read-modify-write by invoking mmio_region_nonatomic_set_mask32() and ends up clearing more interrupt bits than needed. I expect all *_irq_clear functions in all DIFs need to be updated.

I'd rather not complicate this change with bitfield.h changes. We can factor out the common code as a followup, if it turns out to be necessary. I've yet feel a need for non-mmio versions of these functions (while it very much was the case for set_field32).
If it winds up being necessary, it will be a separate PR at any rate.

I'd rather not complicate this change with bitfield.h changes. We can factor out the common code as a followup, if it turns out to be necessary.

Agreed, can be done as a follow-up, I think eventually these should be factored out, but you are right this change can be merged without it.

I'd rather not complicate this change with bitfield.h changes. We can factor out the common code as a followup, if it turns out to be necessary.

Agreed, can be done as a follow-up, I think eventually these should be factored out, but you are right this change can be merged without it.

They might be factored out, but I think the explicitness of the API here would be a reasonable place for testing seam, for instance for virtualizing peripherals in tock.

Oh, looks like this change is missing the extern declarations in mmio.c causing a link failure for #2095 in CI.


fix tests

Fixes ci configuration for pull request, and fixes tests broken by the cm6 change in the way selection is handled after  undo.

@nightwing hope you don't mind me merging. want to fix tests on master and get this in as part of the next deploy


Support Prettier 3.0.0 (Antlers Prettier Plugin)

Which Antlers Toolbox products are you requesting a feature for?
Antlers Prettier Plugin
Is your feature request related to a problem? Please describe.
As you probably know, Prettier 3.0.0 has been release yesterday ! 🎉
Sadly prettier-plugin-antlers isn't compatible.
Describe the solution you'd like
To make prettier-plugin-antlers compatible with this new release it need to support ESM.
Another Prettier plugin very similar to prettier-plugin-antlers as already done that : the prettier-plugin-blade in their v1.9.0.
You can check what to do by looking at this commit.

Just to set some expectations on this one - this may take some time as I need to do some internal refactoring since this plugin interacts with the prettier APIs

Ok thank you for the update @JohnathonKoster 👍🏼

@JohnathonKoster can you please add links to the issues you're mentioning in your previous message:

Prettier VS Code extension fails on Windows
Prettier v3 issues running on Windows CLI

@JohnathonKoster could you please add links to the issues you're mentioning in your previous message:

Please use prettier 2.8.8
Prettier VS Code extension fails on Windows
Prettier v3 issues running on Windows CLI

👋
The main issue I keep running into is this one: https://github.com/prettier/prettier-vscode/issues/3062
Beyond that, the large rewrite is largely complete to handle all of the new async stuff, just don't feel comfortable doing any releases until I can reliably run it on my main machines as well 🙂

Oh okay thank for the update and good job referencing this issue in prettier-vscode repo... Hopefully this will help a bit.
On my side I'm sorry but I'm running on OSX sadly...

I'll release v3 support once I am able to verify things work on my end as well (things will still work with prettier 2, however, until support arrives) 👍

Hey @JohnathonKoster, this is just a friendly ping to get some news ? :)

Hey there!
Mostly still just waiting for things to work in my environment outside of the test suit (still getting hit with that previously linked issue)🙂

Oh okay, so you cannot load the config file with latest prettier on Windows.
I hope prettier team will look at it soon enough. 🤞🏼
Thank you for answering so fast ! 😉 🙏🏼

Hey @JohnathonKoster,
As the issue you're mentioning concern Prettier VScode extension and not Prettier CLI I'm wondering if we could start testing your code with Prettier CLI directly.
I'll be happy to help you if you could share what you already start to code in a new PR. 🙂
Cheers 🍻

Unlikely at this time:

with or without the VS Code extension, I hit that same issue

I'm happy with the prettier v2 version at the moment, and will re-assess the situation at a later date 🙂

@JohnathonKoster how are you doing ? 🙂
The blocking issue as just been closed : https://github.com/prettier/prettier-vscode/issues/3062
Is this working on your side ?

@jimblue  Not doing too bad, hope you are doing well.
I haven't had time to test, but will add it to my list. This is still on my list (but pretty far down on it in priority after day-job stuff, and other commitments) 🙂

+1 on this one. I'm starting to get more and more tailwind utilities not getting formated since the tailwind prettier plugin requires prettier v3. Especially now with tailwind's 3.4 size-*, subgrid and :has support its kinda getting outta hand without formatting. I know this Plugin is more a sideproject but still, would be great to get v3 support in 2024 ❤

@stefankempf  Currently in progress - working through making sure that the current non-prettier version continues to work non-async, while also adding support for async versions of a number of internal methods to support prettier v3 🙂

@jimblue  @stefankempf
The Prettier 3 plugin is now generally available. You will need to use version 2 of the prettier-plugin-antlers:
npm install prettier-plugin-antlers@^2 --save-dev

The format of the .prettierrc file has also changed. You should use a setup similar to the following (not the lack of specifying node_modules within the Prettier plugin paths):
{
    "plugins": [
        "prettier-plugin-antlers",
        "prettier-plugin-tailwindcss"
    ],
    "overrides": [
        {
            "files": [
                "*.antlers.html"
            ],
            "options": {
                "parser": "antlers"
            }
        }
    ]
}

Finally, if you are using Visual Studio Code and receive errors stating that no formatter for Antlers could be found after making these changes (upgrading to Prettier 3, the new Prettier extension, and the updated Antlers plugin), you can update your VS Code settings JSON file to have changes similar to the following:
{
  "[antlers]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "prettier.documentSelectors": [
    "**/*.antlers.html"
  ]
}

Now I have bad conscience motivating you to work on it on new years eve. 🙈 nevertheless, those are some great news. I'll go and test it out asap. Thanks a lot and happy new year!

No worries - I was already working to wrap things up yesterday :)


DPL-944 - Bioscan - Create v3 of Bioscan tags

User story
As R&D we have developed v3 of the Bioscan tags and would like to be able to use them in the pipeline. v3 tag index files supplied.
Who are the primary contacts for this story
Emma B
Who is the nominated tester for UAT
Emma B
Acceptance criteria
To be considered successful the solution must allow:

[ ] use of v3 tag templates to Limber purpose config
[ ] use of v3 tags in Limber mBrave file creation
[ ] creation of Bioscan v3 tag plates

Dependencies
This story is blocked by the following dependencies:
None
References
This story has a non-blocking relationship with:
None
Additional context
Time sensitive: v3 Tag plates to be used w/c 23rd October in Limber Bioscan pipeline
Modify mBrave.yml to include v3 tags and groups
Modify config/purposes/bioscan.yml to include v3 templates
Generate v3 tags and tag groups and templates via script (ask EMR) - DONE
Files:
BIOSCAN Forward Indexes V3.csv
BIOSCAN Reverse Indexes V3.csv

Also in gilab: /psd/integration-suite/-/merge_requests/99


Library not loaded error in storyboards

Not exactly sure when I first started seeing this error, but it occurs opening storyboards that incorporate '@IBDesignable' classes in my project using PureLayout elsewhere (whether the classes themselves are using PureLayout or not).
file:///.../Main.storyboard: error: IB Designables: Failed to update auto layout status: dlopen(MyApp.app, 1): Library not loaded: @rpath/PureLayout.framework/PureLayout
Referenced from: MyApp.app
Reason: Incompatible library version: MyApp requires version 2.0.0 or later, but PureLayout provides version 1.0.0
file:///.../Main.storyboard: error: IB Designables: Failed to render instance of PaddedLabel: dlopen(MyApp.app, 1): Library not loaded: @rpath/PureLayout.framework/PureLayout
Referenced from: MyApp.app
Reason: Incompatible library version: ReallaApp requires version 2.0.0 or later, but PureLayout provides version 1.0.0
Installed using cocoapods.
The error is benign otherwise - app compiles, runs fine, but it'd be nice if there's a way to stop storyboard designer complaining.

Hi Barnaby,
Thanks for bringing this up! This is interesting -- I have not tried using @IBDesignable much myself. A few quick questions:

This is not related to the recent v3.0.0 release, right? This was happening with v2.x (before yesterday)?
Is your codebase in Swift or Objective-C?

If you are able to share any sample project that demonstrates this issue, that would be very helpful! Otherwise I can try to reproduce it myself.

Hi,

no, it's not related to a recent release.
Swift codebase

I tried setting up an example sample project from clean, and sure enough this works perfectly without complaint! So it must be something we're doing in application itself that's causing this - sorry I doubt this issue is much use without a reproduction case, so feel free to close..

OK, thanks for checking on this. I found this issue on CocoaPods, perhaps take a look here and see if you find anything interesting here: https://github.com/CocoaPods/CocoaPods/issues/3903
It definitely seems to be some sort of Xcode and/or CocoaPods issue, not anything specific to PureLayout.


Create contributors file

we need a Contributors file to set rules for anyone wants to be a part of this amazing project

That sounds like a great idea @byeweb2 would you be interested in creating a PR to add one? Ex. CONTRIBUTOR.md

I can help with the content @codenamejason


Rendering into multiple placeholder divs instead of a single root

Most examples assume that all of your html markup will live in either the root component or one of its children like this.
   ReactDOM.render(
      <Provider store={store}>
        <MyRootComponent />
      </Provider>,
     rootEl
   )

I'm working on a project where we are parsing an html page and looking for a custom html tag for example
   <Component type="checkBox" id="blah" otherProp="someValue"> </Component>

If we find this tag we render a react component where this tag used to be. There can be many of these tags on an html page. This worked before no problem since we could just call render once per tag and it would replace it. Just to be clear, the entire page is NOT a react app we only render react components into these special placeholder tags and the rest of the page is just regular html.
Is it possible to do the same with react-redux? All the examples I have seen contain a single render at the highest level that has the provider as a wrapper. How could I accomplish multiple renders into specific placeholder tags but still benefit from a redux global store? I've looked into dangerouslySetInnerHtml but it seems to be frowned upon for security reasons. It also doesn't really accomplish what I want since it ends up rendering these placeholder tags directly into the html when what I really want to do is replace each one of these tags with a react component render.  I've been stuck on this for awhile so any and all help would really be appreciated. Thank you.

Provider is very simple. It just passes the given store to the context. So you can have multiple providers on a page. Just give them the same instance of store.
const store = createStore(/* ... */)

// ...

ReactDOM.render(
    <Provider store={store}>
        <CheckBox />
    </Provider>,
    checkBoxTargetNode
)

ReactDOM.render(
    <Provider store={store}>
        <TextBox />
    </Provider>,
    textBoxTargetNode
)

Yep, that should work.  @GrumpyPants , if you have more concerns beyond that let us know, but yeah, simply rendering multiple providers with the same store reference should do exactly what you want.

This is great to hear. I started looking for workarounds before even trying to do the multiple render so that's on me. Sorry for the time-waste and thanks for the help :)

Sure.  Usage questions are generally better off on Stack Overflow rather than here, but it is admittedly a more niche use case you were asking about.

@GrumpyPants Do you have a public repo that shows how you implemented rendering of multiple <Provider> components for a shared store? More specifically, is there any way you've found to do this while still creating container components via { connect }?

@toddgroff : the example that @anatoliyarkhipov gave should be the basic idea.  Create one store instance, then call ReactDOM.render() multiple times with your different component trees.

Hi I'm having the same issue I have 2 ReactDom.render() but for whatever reason when I do an action on component (A) component (B) does not update. What I'm trying to do is just turn a value from true to false. When I change the value, Component (A) reacts to it and updates but Component (B) stays the same.
const createStoreWithMiddleware = applyMiddleware(ReduxPromise)(createStore);
import React from 'react';
import ReactDOM from 'react-dom';
import {Provider} from 'react-redux';
import {createStore, applyMiddleware} from 'redux';
import ReduxPromise from 'redux-promise';
import App from './components/app';
import SideImageComp from './components/SideImage/SideImageComp';
import reducers from './reducers';

const createStoreWithMiddleware = applyMiddleware(ReduxPromise)(createStore);

ReactDOM.render(
  <Provider store={createStoreWithMiddleware(reducers)}>
  <App/>
</Provider>, document.querySelector('.Approot'));

ReactDOM.render(
  <Provider store={createStoreWithMiddleware(reducers)}>
  <SideImageComp/>
</Provider>, document.querySelector('.sideImage'));

@jaysg Looks like you're creating 2 instances of your store instead of just one.

@jimbolla thanks thats what it was. I created a variable for the store and now it works.
just in case someone one sees this and it's going through the same thing.
`import React from 'react';
import ReactDOM from 'react-dom';
import {Provider} from 'react-redux';
import {createStore, applyMiddleware} from 'redux';
import ReduxPromise from 'redux-promise';
import App from './components/app';
import SideImageComp from './components/SideImage/SideImageComp';
import reducers from './reducers';
const createStoreWithMiddleware = applyMiddleware(ReduxPromise)(createStore);
// This is what I added
let newstore = createStoreWithMiddleware(reducers);
ReactDOM.render(

, document.querySelector('.Approot'));
ReactDOM.render(

, document.querySelector('.sideImage'));`

Hi I'm having the same issue. I have two render calls but the state does only update in component A and not in component B.
all help would really be appreciated. Thank you.
configureStore.js
import {createStore, combineReducers, applyMiddleware, compose} from 'redux';
import listsReducer from '../reducers/lists';
import usersReducer from '../reducers/users';
import thunk from 'redux-thunk';

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

//Store Creation
//combine reducers in object
export default () => {
    const store = createStore(
    combineReducers({
            listsData: listsReducer,
            usersData: usersReducer
        }),
        composeEnhancers(applyMiddleware(thunk))
    );

    return store;
};

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import configureStore from './store/configureStore';

import Header from './components/Header';
import ListGrid from './components/ListGrid';
import LeadsList from './components/LeadsList';

//Redux
const store = configureStore();

const AppRouter = () => (

        <ListGrid/>

);

const jsx = (
    <Provider store={store}>
        <AppRouter/>
    </Provider>
);

if (document.getElementById('root')) {
    ReactDOM.render(jsx, document.getElementById('root'));
}

const Belscherm = () => (

        <LeadsList/>

);

const bellen = (
    <Provider store={store}>
        <Belscherm/>
    </Provider>
);

if (document.getElementById('bellen')) {
    ReactDOM.render(bellen, document.getElementById('bellen'));
}

Provider is very simple. It just passes the given store to the context. So you can have multiple providers on a page. Just give them the same instance of store.
const store = createStore(/* ... */)

// ...

ReactDOM.render(
    <Provider store={store}>
        <CheckBox />
    </Provider>,
    checkBoxTargetNode
)

ReactDOM.render(
    <Provider store={store}>
        <TextBox />
    </Provider>,
    textBoxTargetNode
)

Is this still an OK approach in 2019?

@mattkoch614 : yes, nothing about that concept has changed at all.

This approach is getting me a Warning: Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.
Any ideas?

This approach is getting me a Warning: Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.
Any ideas?

Same error for me, when I try to render lots of components on page wrapped inside web components.

Can you create a CodeSandbox that demonstrates the issue?

Found a reason, I was rendering react components wrapped in web components from my external package both with connected react components inside one app.

@markerikson

Can you create a CodeSandbox that demonstrates the issue?

https://codesandbox.io/s/react-pixi-fiber-with-redux-forked-bcel4?file=/src/App.js
To see the warning console message click the '+' or '-' button next to the count text.
In this example there are three providers rendered.  It is not an issue when there are only two providers. The three different renderers in use are React-dom/React-Three-Fiber/React-Pixi. Commenting out the Canvas block prevents the issue, as there is now only two renderers, same goes with the Stage block.

@joel1st : I believe that's a known issue with how React handles context instances.
React has some concept of "primary" and "secondary" renderers.  See https://github.com/facebook/react/issues/19519#issuecomment-668066718 for a description.
That message gets printed when multiple renderers of some kind are using the exact same context instance, and isn't specific to React-Redux - it's a React thing.

@markerikson - thanks for the quick reply and the helpful information. That is quite an annoying limitation for this admittedly niche use case.
I haven't had any luck determining a work around, but my thought is to just pass redux data as props through to one of the two renderers (and a dispatch callback prop). Can you think of a more redux-y approach?, or does that sound about right?

You might want to try using the useContextBridge hook from https://github.com/pmndrs/drei#usecontextbridge , and then render another <Provider> inside the second renderer boundary.  Also related, see https://standard.ai/blog/introducing-standard-view-and-react-three-fiber-context-bridge/ .

@markerikson Thanks for the suggestion. Unfortunately this appears to just be a utility to prevent manually nesting the contexts yourself. Behind the scenes, it is still rendering the same context provider and the console warning still persists.
For now I will just pass the data via props to whichever component has the most shallow render tree :/


Long freezes in a big file with many highlights.

Latest VS (16.4.4), latest CPT.
In a .cpp file with ~4000 lines of code, the whole interface of VS becomes almost unresponsive.
It freezes for 5-6 seconds on any operation, then works for one-two seconds.
The only thing that helps is to close that big file - interface immediately unfreezes.
My guess is (although i might be wrong), it's because of too many highlights in the editor.
Can we have the option to switch highlights from CPT off? The error list itself would suffice, in my case at least.

Hi,
Thank you for taking the time to report this issue.
We are already aware of this situation and we are actively working to improve the performance of the Clang Power Tools squiggle feature. A fix for this issue will be released very soon.
If you encounter any other inconvenience with Clang Power Tools or if you have any suggestions or feature requests for us, we are here to help 😃
Regards,
Ionut

Hello @jovibor,
We are glad to announce you that the new version of Clang Power Tools 5.6 has fixed this issue. It brings a big performance improvement and also offers the possibility to disable squiggles very easily from our settings panel. We are sorry for the inconvenience, we encountered multiple unexpected challenges and issues on the road.
Please check for updates.
Regards,
Ionut


using pytorch_generation.py: setting --temperature argument to any value causes a failure

Works just fine without defining a temperature argument.
error comes out as the following:

Should be fixed in https://github.com/salesforce/ctrl/commit/9a365edd0caa5b6e91cbbde4b72db1e117877e91
Owing to the argument order, PyTorch assumed probs when I meant them to be logits.
Closing for now, reopen as necessary.

will check it out, thanks!


IPv6 support

Add support for IPv6. This should be done in a way where IPv4 can still be used. Given that IPv6 could include a lot of things, for this issue, I'm just looking for a way to to get IPv6 addresses assigned to interfaces whether they be static ones, link local or DHCP-based.

IPv6 autoconfiguration is also pretty darn useful. It should automatically detect RA's and configure itself accordingly.

Yes, definitely! I know of two companies that use IPv6 w/ Nerves internally. Neither has opensourced their code yet, but I'm really hopefully to get at least one to do it. I'll link to it here when that happens or if anyone beats them to it.

@michaelkschmidt has brought it to my attention that a fork he works with has support for ipv6. Will circle back to this.


Add incremental static regeneration

Overview
One of the best features of Next.js is incremental static regeneration. It would be great to have something similar to it.
https://nextjs.org/docs/basic-features/data-fetching#incremental-static-regeneration
The core features being:

Pages can be dynamically generated
Resulting page is cached for X time
After X time, the page is dynamically regenerated again

In the ideal world, there would also be some way to invalidate the cache. https://github.com/vercel/next.js/discussions/16488
As I understand Sveltekit, currently, this is not possible.
Proposed solution
Extend the prerender API with a revalidate parameter.
<script context="module">
	export const prerender = true;
	export const revalidate = 900; // 900 seconds, or 15 minutes
</script>

This can essentially be done now by returning cache headers and having a proxy sitting in front of the Kit app that understands those cache headers. I'm not entirely convinced this needs its own implementation solely in Kit.

Your pages can return cache headers via the maxage property: https://kit.svelte.dev/docs#loading-output-maxage
Cache invalidation is always going to be platform-specific. We've vaguely talked about adapters being able to do cache invalidation for you (i.e. adapter-vercel would know how to invalidate URLs in the Vercel cache) but I imagine it will always be a bit of an inexact science.

If I understand correctly, the difference to what @Nick-Mazuk is proposing would be that one unlucky user has to wait for the server side requests to complete everytime the cache header expires. In the worst case scenario that unlucky user would experience this on every single (unique) route while navigating the website.

I must say that I like the proposed non-solution from @Conduitry.  It seems better to leave this kind of implementation to the user, hence avoiding SvelteKit turning into another unconfigurable one-size-fits-all monolith *cough* nextjs *cough*

@skrhlm I get your point that this might not be suitable in all situations, or rather it's probably only suitable in few situations, but as far as i understood, the static prerending/generation is exactly the point of this proposal.
I could see the value for this proposal for less frequented sites, where the proposed cache-header solution would mean a rather negligible effect if every second or third user hits the site with an expired cache header (and thus has to wait for the server side requests to complete instead of being served a static build).

If there aren't many users then you also don't need to worry about performance very much

This can essentially be done now by returning cache headers and having a proxy sitting in front of the Kit app that understands those cache headers. I'm not entirely convinced this needs its own implementation solely in Kit.

That would work if you controlled the production environment. I'm deploying on Vercel, so I'm not entirely sure that would be possible. Could be wrong, though.

If I understand correctly, the difference to what @Nick-Mazuk is proposing would be that one unlucky user has to wait for the server side requests to complete everytime the cache header expires. In the worst case scenario that unlucky user would experience this on every single (unique) route while navigating the website.

I'm not terribly concerned with this, though I can see how it would be important to others.
I'm actually more concerned with high-traffic sites where every single user visits either an uncached page or an out-of-date page.

@lukasIO Good point! Actually my main problem is with the implementation of it in next, not precisely the idea of it. But as @benmccann said they problem diminishes with the size of the crowd.

@skrhlm, out of curiosity, what's your issue with the implementation of it in Next.js?

Imho the point about performance impact for less frequented sites boils down to what you are doing in load.
Once load requests data from a headless CMS, static pregeneration would mean a noticable performance improvement even if there are only few users.
But I fully accept that this kind of scenario is probably not in the focus at all 😃

The thing I'm having a hard time getting my head round is what is doing the regeneration? E.g. you can't have long-lived timeouts in a serverless environment.
Or are we just talking about adding a stale-while-revalidate cache control directive? Is that how Next works? In that case, this...
<script context="module">
  export async function load({ page }) {
    const props = await whatever(page.params);

    return {
      props,
      maxage: 1,
      revalidate: 59
    };
  }
</script>

...could translate to Cache-Control: public, max-age=1, stale-while-revalidate=59 (or private for pages that use user data).

Next's docs suggest that's not what's happening in their case, but I don't yet understand how what they describe could work in an environment-agnostic way. Is this actually a Next+Vercel feature? And if so what advantages does it have over stale-while-revalidate?

...could translate to Cache-Control: public, max-age=1, stale-while-revalidate=59 (or private for pages that use user data).

At least for the use cases that I had in mind, this doesn't sound like a bad option...
For the arguments sake:
The difference I can see (while I'm not familiar with how next implements the static regeneration feature) is that with stale-while-revalidate different routes could get out of sync.
In the case that /foo is visited quite frequently but /bar only less so, the content in /bar could end up significantly older in comparison.

After some research, I'm guessing that incremental static regeneration (ISR) might have originally been just a Next.js on Vercel thing, but other platforms are adopting it.
For instance, the original next-on-netlify plugin did not allow for ISR.
https://github.com/netlify/netlify-plugin-nextjs/issues/151
But in December, Netlify announce a new plugin, @netlify/plugin-nextjs, which allows for ISR.
Announcement: https://www.netlify.com/blog/2020/12/07/announcing-one-click-install-next.js-build-plugin-on-netlify/
Repo: https://github.com/netlify/netlify-plugin-nextjs
Code for ISR (potentially): https://github.com/netlify/netlify-plugin-nextjs/tree/main/src/lib/pages/getStaticPropsWithRevalidate
So it seems like ISR is possible in a serverless environment outside of Vercel, but perhaps the implementation will be platform-specific… and not all platforms will support it.

The thing I'm having a hard time getting my head round is what is doing the regeneration? E.g. you can't have long-lived timeouts in a serverless environment.

@Rich-Harris With Next.js, the server is doing the regeneration. I could be wrong, but I think this is now Next.js works for static pages with this option.

When a visitor visits the page, the server will dynamically generate the page SSR style.
The server will cache the file. I assume it uploads it to the build cache or something to prevent long timeouts. It also adds a tag of when the page is invalid (e.g., 15 minutes from now)
When another person views the page, the server will check the build cache to see if the page already exists in the cache.

if it does, check if the page is expired. If expired, regenerate the page as before. If it isn't expired, serve the static page from the cache.
If it doesn't exist, generate the page SSR style

...could translate to Cache-Control: public, max-age=1, stale-while-revalidate=59 (or private for pages that use user data).

I don't think this will do what I was asking for. I believe this will cache the HTML on the client, not on the server?

I believe this will cache the HTML on the client, not on the server?

Or the CDN — if HTML were suitable for caching by the server, it would be served with a public cache control header which means your CDN takes care of that for you. If it uses user data somehow then it should only be cached in the client. Either way, the server doesn't need to retain anything

@skrhlm, out of curiosity, what's your issue with the implementation of it in Next.js?

Well,  it's the lack of environment agnosticity ( is it a word !? ) that bothers me. If you're using getStaticPaths to limit the urls which static generation can happen for, then Next tries to build these pages in build-time, which both takes a lot of time, and either:

Build the pages from your dev environment, which you probably do not want.
You have to depend on the live environment in the build. If for example the site is down, not release yet or broken somehow you can't possibly prepare a deploy before the backend structure is live.

As a concluson I really do not see the reasoning behind even optimizing the pages in build-time. Doing it on the first request in runtime and caching the result makes a lot more sense.

Or the CDN — if HTML were suitable for caching by the server
I'm an avid user of Next.js and it has always bothered me that Next.js can't share it's ISR cache between nodes in a container-like architecture. I like the idea of letting a CDN (or any reverse proxy for that matter) handle the caching and just sending the right cache headers for pages that can be cached.

Maybe to avoid some confusion in @Nick-Mazuk's answer: Next.js just keeps a rendered version of the page on disk and serves it whenever a user requests the page, so it's platform independent. (I do think they use another tactic for hosting on Vercel, which uses serverless functions per page, so there the CDN might actually handle it, don't know).
I do think it might be worth spending some time on this use case, because Next.js users might be looking for this when trying out SvelteKit (at least I was, hence why I ended up in this thread). Maybe an easy way to add the cache headers to a page like suggested in this comment and explaining that using a CDN in between will probably yield the same result as Next.js's ISR with the added benefit of a shared cache?

I do think it might be worth spending some time on this use case, because Next.js users might be looking for this when trying out SvelteKit (at least I was, hence why I ended up in this thread).

I too am a recent migrant from Next.js and was looking for this feature. This issue thread explains it, and adding a quick way for setting the cache headers per page (i.e. a revalidate option in LoadOutput besides maxage, as Rich mentioned in this comment) would be a nice.

I commented regarding this on a different issue about editing headers, because I didn't know there was an established name for it, but in my view @Rich-Harris is correct in that cache headers probably should be enough to address this on their own, and I think would be a totally acceptable stance for svelte to take, but given the "adapter" design, and the individual strengths of the deployment platforms you are building adapters for, there are opportunities for specific improved user experiences that people are right to investigate.
For cloudflare in particular, because of the very large number of edge servers in their network, if we rely on "the one unlucky user" to rebuild cache, you are actually relying on hundreds of different unlucky users, multiplied by the number of now stale pages. Or, to put it another way, a huge strength of the cloudflare workers architecture, totally separate from any potential request logic, is that all of your static assets (including html files) are replicated to their entire network, and so all requests are served directly from the edge, avoiding any interaction not just with an origin server, but also with their (region specific) cache API. This "just works" for static sites, but with svelte's load function, even with appropriate cache headers, you are breaking that perk.
To me, this sounds like something that should be configurable as part of the individual adapter rather than svelte itself, as the particulars are likely to be different for different platforms. (eg cloudflare workers provides cron triggers that could be used to compare and rerender the SSR pages, but this may not be possible or the most efficient route on another platform.)

I still have found this one here: https://github.com/sveltejs/kit/issues/2369
Not sure if this is kind of similar to this issue. I think if we solve https://github.com/sveltejs/kit/issues/2369 then this one is obsolete or do I misunderstand something?
Or is the difference that this issue is more about the "runtime-oriented" approach and #2369 is more about the "build-time-oriented" approach?
What do you think?

Is there a way to break cache of previously built files for static?
Example, I build the site, deploy, visit, this caches the pages, then make a change, re-build, deploy, re-visit but don't see the change without reloading. Sorry this is slightly different issue, but can't seem to find some sort of build versioning.

Hello,
Just leaving here a possible use case with ISR :
https://www.youtube.com/watch?v=-_3gqy7U9zE&ab_channel=Delba
Best regards

Just leaving here a possible use case with ISR : https://www.youtube.com/watch?v=-_3gqy7U9zE&ab_channel=Delba
ISR with next kinda looks like a "Continuous Delivery" (update on demand) feature handled by vercel

It is On-Demand Revalidation. It works with a hook to an Next API, no longer the NextJS has to poll or work with expiring cache headers. Here is an example changing an issue at Github immediately issues a rebuild of a page in NextJS On-Deman Demo.

I was looking for a use case where at build time SK would prerender the page and then every X minutes (or a webhook) SK would re-render the page in the background while still serve the static page until the re-render is done. (My renders take a good 15-30 mins - web scraping)

I would like to add some details and update information regarding the state of ISR with current Vercel (v3) API.
I created vite-plugin-vercel, which support ISR, and things have changed since API v2.
In v2:

ISR endpoints were generated on filesystem at build time
When expired, they were updated on filesystem
They were cached on the Edge Network via stale-while-revalidate and other cache headers.

The benefits compared to just playing around with stale-while-revalidate were:

First hit was fast, because it was prerendered
When revalidation occurs:

First Edge Network from any region connection triggers a call to the Serverless Function
While revalidating, each Edge Network region still serves its cached version, or asks for the filesystem one
This results in Serverless Function being called only once for a revalidation. Using only stale-while-revalidate would call the Serveless Function as many times as there are Edge Network regions

Now in v3:

No filesystem generation anymore
Results are cached on the Edge Network based on different cache rules, probably still the same logic as with v2

So, what's the difference now between ISR and just playing around with Cache header?
It's not clear if each Edge Network region keep each other updated when an ISR endpoint is updated. But let's assume not.
Some benefits still remain:

On demand ISR is still a good thing for some use cases
bypassToken to be used as a Preview Mode feature. This one could still be implemented manually I think
fallback can serve a static file so that first hit is still fast
allowQuery allows to serve different URLs behind the same cache entry, as with stale-while-revalidate would always store each URL in a different cache entry

To me, this sounds like something that should be configurable as part of the individual adapter rather than svelte itself, as the particulars are likely to be different for different platforms. (eg cloudflare workers provides cron triggers that could be used to compare and rerender the SSR pages, but this may not be possible or the most efficient route on another platform.)

I agree with that. I'm not familiar with SvelteKit bundle API yet, but having any exported const in any .svelte file (e.g. export const revalidate = 900;) can probably be read at some point by the vercel adapter plugin and do its magic with it right?
The way I see that is that exporting a revalidate const doesn't impact in any way the code base. It just allows the adapter to do some specific work.

Maybe the build output API from vercel can offer insights on how to do this with SK
https://vercel.com/docs/build-output-api/v3
https://vercel.com/blog/build-your-own-web-framework
:)

I got a project where I need to build static pages from a headless CMS (prismic). The pages will initially get created often, then maintained occasionally, an optimal solution would let use build all the existing page and deploy them, then each update on prismic could trigger a rebuild and redeploy of an individual page. Even when building all (when the app change) only the modified content should be deployed (why transferring unchanged files ?), if we reach this, we'll get the best reactivity and less hosting usage.

I don't think you need just Vercel to do this.  Someone wrote a package for Angular that does this by in-memory caching: ngx-isr.
Basically, the build routes would have to have a cache.
If that is the case, someone could look at this package and copy the ideas for sveltekit.
J

ISR is no simple task.
So until it gets added to SvelteKit, here's how to achieve a "close" approach if you just fell onto this Issue:
Vercel
Just use stale-while-revalidate and proper caching with max-age params.
Deno Deploy
AFAIK, no solution yet.
AWS CloudFront
AFAIK, no solution yet
VPS or physical server (DigitalOcean, Vultr, AWS EC2/ECS/Fargate, any VM provider, etc)
Add NGINX as reverse-proxy and enable microcaching.
SvelteKit 1.0 is a feat we just can't get used to being so hyped about, really incredible work. And I feel like both "native" i18n implementation and ISR are probably the most anticipated post-1.0 features around.

The real issue is on demand revalidation.  Adding headers for max-age is easy to do with setHeaders on server endpoints.  SvelteKit could do the on-demand validation in Vercel or CloudFlare directly, but I don't know there there are any other CDNs that support on demand revalidation at this point that I am aware of.
https://vercel.com/docs/concepts/functions/serverless-functions
J

Any help on how to implement stale-while-revalidate with sveltekit on vercel?
Wondering how to add Cache-Control on the response on load function in page.server.js

Thought I'd share an update since this is a highly anticipated feature: #8740 will implement ISR for people deploying to Vercel.
The underlying mechanism (route-level config) is platform-agnostic, but since Vercel exposes a dead simple mechanism for ISR via the Build Output API it's a no-brainer to use route-level config to implement ISR.
It's possible that we'd one day have ISR as a framework primitive, but the challenges of designing it in a platform-agnostic way are substantial. So for now an adapter-centric approach makes more sense, if only to make some cowpaths that we can later pave. I'd be very happy if other adapters enabled ISR as well!
In the meantime, if you'd like to use ISR in your apps, sign up for a Vercel account 😀

Thought I'd share an update since this is a highly anticipated feature: #8740 will implement ISR for people deploying to Vercel.
The underlying mechanism (route-level config) is platform-agnostic, but since Vercel exposes a dead simple mechanism for ISR via the Build Output API it's a no-brainer to use route-level config to implement ISR.
It's possible that we'd one day have ISR as a framework primitive, but the challenges of designing it in a platform-agnostic way are substantial. So for now an adapter-centric approach makes more sense, if only to make some cowpaths that we can later pave. I'd be very happy if other adapters enabled ISR as well!
In the meantime, if you'd like to use ISR in your apps, sign up for a Vercel account 😀

Nice! Would this include the on-demand option that NextJS + Vercel has?
Thanks!
J

Yes! The docs are here, and we could probably do a better job of describing on-demand ISR, but: if you specify a bypassToken...
// +page.server.js
export const config = {
  isr: {
    expiration: false, // only revalidate manually
    bypassToken: 'xyz123'
  }
}

...then issuing a GET or HEAD request to the route in question with a x-prerender-revalidate: xyz123 header will forcibly revalidate it.

This would be incredibly useful in the static file generator!  I currently have a site that has roughly 1M pages and it takes over 2 hours to build, I frequently update it and that's a lot of build time/load.  Ideally it would just update the files I have changed.

npm run build  1686.10s user 755.32s system 37% cpu 1:48:02.08 total

@eecue I think your issue is more closely related to https://github.com/sveltejs/kit/issues/8430 there's a suggestion by @Rich-Harris in there as well https://github.com/sveltejs/kit/issues/2369#issuecomment-1101788463 hopefully there's something helpful for you for now.

@Rich-Harris
It doesn't look like ISR is working, visiting a website deployed on Vercel with the following config gives an error in the function logs.
export const config = {
    isr: {
        expiration: 60,
    },
};

[GET] /
2023-02-13T04:45:17.515Z   dabb066b-5685-4a28-907b-cc1e1df327b3   ERROR   Error: Not found: /fn-0
    at resolve (file:///var/task/vercel/path0/.svelte-kit/output/server/index.js:3246:18)
    at resolve (file:///var/task/vercel/path0/.svelte-kit/output/server/index.js:3113:34)
    at #options.hooks.handle (file:///var/task/vercel/path0/.svelte-kit/output/server/index.js:3290:59)
    at respond (file:///var/task/vercel/path0/.svelte-kit/output/server/index.js:3111:43)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Getting the same error

Apologies, I meant to update this thread — there's an issue with ISR that didn't surface during testing. We've been working on a fix (on the Vercel side) over the last week and it should land very soon. Bear with us!

Thanks for the update @Rich-Harris :)

@Rich-Harris can probably be closed -- congrats on finishing one of our older issues 😁

@tcc-sejohnson Still encountering the same issue as of 2 hours ago, will just wait for Rich to provide an update

@KodingDev
Have you updated adapter-vercel to 2.1.0? ISR should be working.

I'm getting the following error during build:
Error: Could not find target Lambda at path "fn"
--
08:32:19.594 | at qg (/var/task/sandbox.js:248:4167)

adapter-vercel version: 2.1.0
@sveltejs/kit version: 1.8.3

Could you please open a new issue for that with a reproduction?

@tcc-sejohnson Yep, working for me now. pnpm had a moment I guess haha. Appreciate it :)

Maybe I'm completely off, so any clarity would be appreciated. I thought with ISR, a page is pre-rendered into HTML during build (let's say the page calls an external API via the load function on +page.server.js). Upto setting the below config, every 60 seconds a background function would run and re-call the external API via load function to regenerate the HTML again (so if the API returned new data, it would be reflected in the HTML)
export const config = {
  isr: { expiration: 60, allowQuery: ['search'] },
};

Maybe I'm completely off, so any clarity would be appreciated. I thought with ISR, a page is pre-rendered into HTML during build (let's say the page calls an external API via the load function on +page.server.js). With setting the below config, every 60 seconds (and when a user visits the page 1st time), a background function would run and re-call the external API via load function to regenerate the HTML again (so if the API returned new data, it would be reflected in the HTML served statically)
export const config = {
  isr: { expiration: 60, allowQuery: ['search'] },
};

That is exactly what I also expect to happen (but I am currently not able to achieve this behavior with the latest version of Sveltekit (1.8.4) and adapter-vercel (2.1.1). Would be great if someone from the Sveltekit dev team can bring light into the darkness and show all use cases, and also how to invalidate the ISR cache manually.

Read through all of the posts and I think I am missing a key workflow. Back in the days I've implemented something like this in PHP:

User creates a new post in the admin panel
Clicks 'Save'
The data goes to the database
A background job is triggered that renders the page and saves it as a static file
When the visitor enters the page, they basically get a pre-rendered page
User edits the post
Data goes to the database
The background job recreates the static page

This was, unsurprisingly, super responsive for the end user as they just get the end result. I saw some questions in this thread about what triggers the regeneration and I think the optimal way would be to trigger those on particular events on the site (comment added, post created, post edited etc.). And regenerate just the corresponding path. There are of course some use cases for the incremental regeneration in an interval, but I would say for most of the cases having control over when this happens would be optimal.
I have no idea how difficult would it be in the modern stack to implement, I am just learning the whole backend-in-JS thing, but if there would be a way I imagine having a function to call with a path as a argument? So after doing all the database requests, I just call regenerate('/blog/my-first-post')? It should work in a separate thread/background not to block the saving process, so the admin/editing panel would still feel responsive.
Or maybe those latest changes are exactly this? I have to admit I haven't yet played with the latest changes and just gone through the documentation and this thread.

Need this feature in our project as well. Thanks in advance!

ISR completely works in sveltekit with vercel now, tested it and works like a charm

Is there a way to invalidate a whole ISR cache rather than a single path?
I have a use case where a user can publish large sets of changes to data that’s used throughout the public facing app using ISR. Invalidating every path where all the new data  could appear would be non-trivial, and it’d be cleaner to just bust the whole cache and force a “rebuild” of their site.

I'm also interested knowing if what @madeleineostoja wants is doable, and if this is the best approach to do it? In my case a preview-implementation from sanity is not worth the time having multiple environments etc. It's a portfolio-site that will be updated a few times / month, and while they're adding content, I'd like to invalidate the cache with a webhook each time they save, instead of rebuilding the whole site over and over (with the pain of waiting for the deploy)

I'm also interested knowing if what @madeleineostoja wants is doable, and if this is the best approach to do it? In my case a preview-implementation from sanity is not worth the time having multiple environments etc. It's a portfolio-site that will be updated a few times / month, and while they're adding content, I'd like to invalidate the cache with a webhook each time they save, instead of rebuilding the sveltekit app over and over (with the pain of waiting for the deploy)

The first Problem is. When you try to save with a form submit POST, the post is also cached, so your update isn´t working. So you locked in.
The only posibility is to bypass the POST with the bypass cookie (for example you could set the cookie in the load function). But my skills are not good enough to find a way to remove to cookie, because I cant find a unload function or hook. This would be also a good place to make a HEAD call with the x-prerender-revalidate header. Because revalidation works only after the POST.

Is there a way to invalidate a whole ISR cache rather than a single path?
I have a use case where a user can publish large sets of changes to data that’s used throughout the public facing app using ISR. Invalidating every path where all the new data could appear would be non-trivial, and it’d be cleaner to just bust the whole cache and force a “rebuild” of their site.
These changes happen infrequently, hence the strong use case for non-expiring ISR in general

I don´t think you can invalidate a path. You can just revalidate a path. So revalidation only works if the page/data behind has changed.

I don´t think you can invalidate a path. You can just revalidate a path. So revalidation only works if the page/data behind has changed.

I mean that's just semantics no? The pain point I'm raising is that it's not always easily knowable which URL paths to revalidate when changing data, so ideally we would need a way to set every path to revalidate on next request. If the path revalidates and no data has changed that's fine and dandy.

there is https://github.com/ConsoleTVs/sswr , but i'd love a dedicated integration to kit too.

I don’t see how that’s relevant for ISR, swr (and that svelte port) is about caching and revalidating fetched data, ISR is about render caching

Second @madeleineostoja request. On a related but perhaps slightly different note, is it covered anywhere on revalidating "dependent" pages. Simply for testing, I've got a /products route and then a /product/[id] route. The slug route is using await parent() in the load function. Unfortunately, revalidating the /products route does not automatically call revalidation to the slug route. Probably intended, but manually managing any dependencies like this could become a pain point in a real-world, more complex application

This feature is really needed. Svelte will never amount to more than a niche, meme framework if everything is a workaround.

I would love to see isr for adapter-netlify as well.

I'm also interested knowing if what @madeleineostoja wants is doable, and if this is the best approach to do it? In my case a preview-implementation from sanity is not worth the time having multiple environments etc. It's a portfolio-site that will be updated a few times / month, and while they're adding content, I'd like to invalidate the cache with a webhook each time they save, instead of rebuilding the sveltekit app over and over (with the pain of waiting for the deploy)

The first Problem is. When you try to save with a form submit POST, the post is also cached, so your update isn´t working. So you locked in. The only posibility is to bypass the POST with the bypass cookie (for example you could set the cookie in the load function). But my skills are not good enough to find a way to remove to cookie, because I cant find a unload function or hook. This would be also a good place to make a HEAD call with the x-prerender-revalidate header. Because revalidation works only after the POST. If you have no back / cancel and submit is the only way, you can remove the cookie in the actions function and make a fetch call on a revalidation api in the enhance from function.

I am also having this problem. POST request should never be cached yet it is being cached. Therefore I thought my form submit worked but my page server action only runs once when cache is a miss.
As SchlammSpringer mentioned, I need to add x-prerender-revalidate header on all my post request. I can do this manually on every form submit but I cannot seem to find a global client side hooks where I can inject this on all POST request before it is sent to the server.

ISR is primarily used for blog posts, product detail pages, and similar content. A common UX in these pages is a Call to Action (CTA), such as a form where users can provide their email address to receive updates. However, if ISR cannot be disabled on POST requests, it becomes completely useless.
Do you have any suggestions on how to solve this?

ISR is primarily used for blog posts, product detail pages, and similar content. A common UX in these pages is a Call to Action (CTA), such as a form where users can provide their email address to receive updates. However, if ISR cannot be disabled on POST requests, it becomes completely useless.
Do you have any suggestions on how to solve this?

I also agree vercel should not cache POST requests on ISR.
For now you can inject x-prerender-revalidate on all POST request header using service worker.
For instructions on how to do that, check out a similar post to inject auth token
https://firebase.google.com/docs/auth/web/service-worker-sessions

Thanks. We can't have a non-JS fallback with this.
Maybe create another set of routes with export const config = { isr: false }; that just handles the POST requests.

Where can I see more info on that?

On Feb 9, 2024, at 1:51 AM, Arthur @.***> wrote:
So both ISR and ISR cache invalidation on demand work for Sveltekit now ?
—
Reply to this email directly, view it on GitHub https://github.com/sveltejs/kit/issues/661#issuecomment-1935623142, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAECAOHMQPFJYTVA4P6CJPDYSXWTLAVCNFSM4ZYSZXZ2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJTGU3DEMZRGQZA.
You are receiving this because you were mentioned.

Where can I see more info on that?
…
On Feb 9, 2024, at 1:51 AM, Arthur @.***> wrote: So both ISR and ISR cache invalidation on demand work for Sveltekit now ? — Reply to this email directly, view it on GitHub <#661 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAECAOHMQPFJYTVA4P6CJPDYSXWTLAVCNFSM4ZYSZXZ2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJTGU3DEMZRGQZA. You are receiving this because you were mentioned.

I made a test repo:
https://github.com/jdgamble555/isr-test
https://isr-test-ten.vercel.app/
J

ISR would also be very desirable for adapter-node. Is this planned?

Hi, understandably it's early days but since Netlify just released Durable Caching, will we see an ISR implementation compatible with adapter-netlify?

ISR could be feasible on Cloudflare non-Enterprise plans soon. Cloudflare just announced expansion of cache purge options for non-Enterprise plans, and intends to roll it out for all plans in early 2025 (can track it here).


Format URL issue

Hello,
I come back with this bug.
It sometimes happens that when I make updates, the URL problem comes back.
I get this type on some URLs:
https://domain.fr/var/www/laravel-project/vendor/backpack/crud/src/resources/assets/css/common.css?f811ef3ab2df
instead of:
https://domain.fr/storage/basset/vendor/backpack/crud/src/resources/assets/js/common.css?f811ef3ab2df
So i checked BassetManager and i can see on line 160:
 if (! str_starts_with($asset, base_path()) && ! Str::isUrl($asset)) { ... }
As we can see, there is a management of the character string to ensure that it does not start with base_path()
But in my case the character string starts with base_path() and there is nothing that manages my case.
So on line 223, i change :
 $output && $this->output->write($asset, $attributes);
with:
 $output && $this->output->write('/storage/'.$path, $attributes);
This solves my problem.
Maybe I'm doing something wrong but I can't see what.
when i dump(($asset) , i cleary see that base_path() is in the string.

Hello @dauvray
After make an update did you try to clean and create new basset cache?
php artisan basset:clear
php artisan basset:cache

If you make a new deploy try with
php artisan basset:fresh

And finally check if there is any problem with config
php artisan basset:check

Let me know if thats work for you.
Cheers.

yes I performed all these commands, none solved my problem, only my hack unlocks me

php artisan basset:check give me:
Initializing basset check ..................................................................................................... DONE
Checking cache storage ........................................................................................................ DONE
Fetching a basset ............................................................................................................ ERROR
ERROR  cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://domain.fr/storage/basset/vendor/backpack/basset/tests/Helpers/basset-test.js.
in fact I do not have a valid certificate on this project
Thanks

Hey @dauvray
You may set in your .ENV BASSET_VERIFY_SSL_CERTIFICATE=false .
Would that help ?

BASSET_VERIFY_SSL_CERTIFICATE=false
give
INFO  Checking Backpack Basset installation.
Initializing basset check .................................................................................................. DONE
Checking cache storage ..................................................................................................... DONE
Fetching a basset .......................................................................................................... DONE
But same problem

Hello @dauvray can you share "APP_URL" or any other setting you customiza about path.
Thanks.

My app url is
APP_URL=https://subdomain.domain.fr ( sorry i can't give you the real name )

Thanks @dauvray I am working on other basset issues today, I hope I get to this issue too.
Unfortunatelly we cannot hardcode the "storage" part because that's project dependent. By default it's storage, but anyone can change it.
I will investigate this further 🙏
Thanks

I was getting this issue as well, until I ensured that the web server could write to storage/app/public; making that writable causes the incorrect path behavior to clear up for me.
When I was poking around the BassetManager code, it seemed like the basset function was generating the correct paths and URLs; so, I'm thinking there's something about the cache directory not being writable causes the path generator to inappropriately insert the filesystem path into the output URL.

OK, i made writable  storage/app/public, basset generate correct path.

But now there is 404 errors but files and folders exists.

seems to be ok


PDF thumbnails cannot be right-clicked to open a context menu when Style Settings is enabled

Is the bug present when using the default Obsidian theme?
No
Is the bug present when snippets and plugins are disabled?
No
Minimal theme version
7.5.1
Describe the bug
When both Minimal & Style Settings are enabled (this is why I answered "No" to the second question), PDF thumbnails cannot be right-clicked to open a context menu.
Screen captures from the sandbox vault:

When Minimal & Style Settings are enabled with all the options kept default
https://github.com/kepano/obsidian-minimal/assets/72342591/c953e274-8ac8-4867-a1a5-c124938a7d38

When Minimal is enabled but Style Settings is disabled
https://github.com/kepano/obsidian-minimal/assets/72342591/0e65ff9d-a506-4a1c-b1fd-f87d0013bd25

When the default theme is used and Style Settings is enabled
https://github.com/kepano/obsidian-minimal/assets/72342591/cefea785-fce4-4b48-be32-d6423a6b01f0

Debug info
SYSTEM INFO:
	Obsidian version: v1.5.8
	Installer version: v1.5.3
	Operating system: Darwin Kernel Version 22.6.0: Wed Jul  5 22:22:52 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T8103 22.6.0
	Login status: logged in
	Catalyst license: none
	Insider build toggle: off
	Live preview: on
	Base theme: adapt to system
	Community theme: Minimal v7.5.1
	Snippets enabled: 0
	Restricted mode: off
	Plugins installed: 1
	Plugins enabled: 1
		1: Style Settings v1.0.7

RECOMMENDATIONS:
	Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
	Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

I noticed that this is not specific to PDF thumbnails but applies to all images.
But for images embedded in markdown files, it is not a big deal because Obsidian doesn't show context menus by default.
However, it IS problematic when it comes to PDF thumbnails because right-clicking should trigger a context menu (copy link to page).

Fixed in 7.5.2

Thank you for the quick work!


Loader does not support target_suffix when containing nested lists

Issue description
Current behavior
As discussed here, the current loader seems to break when we set the target_suffix param of loader_params in the config file as a list of lists. For example, having it set like this: "target_suffix: [["_seg_myelin_manual"], ["_seg_axon_manual"]]" does not seem to be fully supported. I believe the loader may need to be modified slightly, in addition some unit tests should be added to ensure this functionality is fully supported.
Expected behavior
Setting target_suffix as a list of lists should be supported by the loader
Steps to reproduce
Modify the target_suffix param of loader_params in the config file to be a list of lists rather than a list. Run the training. An error will likely occur and crash the program.
For example, in config_small.json initially we have:
        "target_suffix": ["_seg-manual"],
Changing it to the following should be supported:
        "target_suffix": [["_seg-manual"]],
However, it results in the following error:
Annotations from multiple raters will be used during model training, one annotation from one rater randomly selected at each iteration.

ERROR: Please provide only one annotation per class in 'target_suffix' when not training a model.

Environment
System description
macOS Catalina 10.15.7 Python 3.8

I think the error comes from here in main.
https://github.com/ivadomed/ivadomed/blob/ccd82d22d31ffa53a2d6455ce3a94b97564d624a/ivadomed/main.py#L367
The first parameter or check_multiple_raters is is_train. https://github.com/ivadomed/ivadomed/blob/ccd82d22d31ffa53a2d6455ce3a94b97564d624a/ivadomed/main.py#L89
Shouldn't we pass check_multiple_raters(command == "train", loader_params) instead of check_multiple_raters(command != "train", loader_params) to the function?


goca: parse HostShare Datastores struct from HostXML.cc

Allow parse extra data generated from:
https://github.com/OpenNebula/one/blob/08bb8f7684a2b773f33aac3bd3e81e8e2f23c50b/src/scheduler/src/pool/HostXML.cc#L62-L68

THANKS for the contribution. This has been merged as per 45a8543ab87d4ab11ac020d2985bef3ea100ae88


Hotfix 0.20.1

Description:

Squelch an assertion in the python threading module when we try to count leaked thread resources before restart.

Awesome! 🐬 💵 💯


Grey bar appearing at the bottom of the div

<Scrollbars autoHide style={{ height: 300 }} ref="scrollbars">
  <MyComponent />
</Scrollbars>

Also it only seems to be appearing on chrome, I checked on edge and firefox and it wasn't visible there.
I'm on Windows 10, Chrome 63

Here is another grey bar (much thinner this time), appearing on another component.

on further inspection it seems to be a product of this:
body ::-webkit-scrollbar-track {
  background: rgb(0, 0, 0, 0.1);
}

not sure how this library is triggering this css, overridden the rule for now.


InkCanvas not working in XAML Controls Gallery app

InkCanvas not working in XAML Controls Gallery app
Steps to reproduce the bug
Steps to reproduce the behavior:

Go to Open the XAML Controls Gallery app
Search for InkCanvas
Click with the mouse on the canvas and nothing happens

Expected behavior
Click with the mouse on the canvas and something will be drawn
Actual behavior
Click with the mouse on the canvas and nothing happens
Screenshots
Version Info

[ ] App downloaded from Store

If so, which version? <IP_ADDRESS>

Additional context
Windows 10 version:

[ ] Insider Build (xxxxx)
[x] 21H1  Update (19043)
[ ] November 2019 Update (18363)
[ ] May 2019 Update (18362)
[ ] October 2018 Update (17763)
[ ] April 2018 Update (17134)
[ ] Fall Creators Update (16299)
[ ] Creators Update (15063)
[ ] Anniversary Update (14393)

Device form factor:

[X ] Desktop
[ ] Mobile
[ ] Xbox
[ ] Surface Hub
[ ] IoT

Hi @stmoy did you draw with the mouse? I could not test with something else than a mouse.

Hi @stmoy did you draw with the mouse? I could not test with something else than a mouse.

Yes indeed - I drew this rather awkwardly with my mouse 😅

Hi @stmoy, may I ask which commit and windows version you used to test?

Still not working on Win10 version 2004 Build 19041 for mouse painting. Checked out from master and freshly build with Win10 version 2004 Build 19041. It works with https://github.com/microsoft/Windows-universal-samples/tree/main/Samples/SimpleInk/cs . After some investigation I have the impression the InkPresenter is not listening to the Pointer events anymore. Anyone has a rough idea where to investigate further?

At that point in time the commit was 84c97f0

Also we traced down the issue the commit in the gallery app. d4b13f7 is the first which is broken, it works with 1ab6078 and below.

@StevusPrimus - thank you for the thorough investigation! We are following up internally on this - it seems like it might be related to a change that was fixed in Windows 11, but we're discussing what to do for Windows 10 users.

Hi, i have the same problem, when i added InkCanvas it was also not working, then i tried workaround from that tread https://github.com/microsoft/microsoft-ui-xaml/issues/5299#issuecomment-875798060 mentioned here:
https://github.com/microsoft/microsoft-ui-xaml/issues/6021 without success.
Next i noticed that https://docs.microsoft.com/en-us/samples/microsoft/windows-universal-samples/simpleink/  that sample still working properly, and started to investigate, seems the problem solving lines of code are:
InkDrawingAttributes drawingAttributes = new InkDrawingAttributes();
drawingAttributes.Color = Windows.UI.Colors.Red;
drawingAttributes.Size = new Size(penSize, penSize);
drawingAttributes.IgnorePressure = false;
drawingAttributes.FitToCurve = true;

inkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes);
inkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen;

List after adding this to my project InkCanvas started to work straight away


Use babel and babel-loader instead of node-jsx and jsx-loader

Allows ES6 in applications.

CLA is valid!

:ship:

+1
I guess we are ok with monkey patch require for the server side. /cc @ericf


OCPBUGS-4955: Set ImagePullPolicy of bundle unpacker to "IfNotPresent" for image digests

Allows users to set an image pull policy of "IfNotPresent" for bundle unpacker by specifying an image digest.

/retest

/jira refresh

/jira refresh

Test fail, details: https://issues.redhat.com/browse/OCPBUGS-4955
/hold

Test fail, details: https://issues.redhat.com/browse/OCPBUGS-4955 /hold

Hi @jianzhangbjz , please re-test when you can. I've updated the branch and I believe your test should now pass.

LGTM, details: https://issues.redhat.com/browse/OCPBUGS-4955
/lgtm
/label qe-approved

/unhold

/approve

/cherry-pick release-4.12


how to get the packet to go routine and use it

I think at present it is just printing (print_hex_data) the decoded packet on console - now i need to that return to go function and able to modify that json/packet.

go run main.go
command-line-arguments
/home/linuxbrew/.linuxbrew/Cellar/go/1.20.7/libexec/pkg/tool/linux_amd64/link: running cc failed: exit status 1
<EMAIL_ADDRESS>file format not recognized; treating as linker script
/usr/bin/ld:/home/unellore/go/pkg/mod/github.com/randolphcyg/gowireshark@v1.10.6/libs/libwiretap.so:1: syntax error
collect2: error: ld returned 1 exit status
why is it failing if i use go get module in my program..

Im able to use packet in my go program - but the packet data is random not in order - if you see below packet numbers are not in order and same for layers too.
Index: packets-2023-01-11
sctp
ngap
frame
sll
ip
Layers:  12   ===> Pkt Number
Index: packets-2023-01-11
frame
sll
ip
sctp
f1ap
Layers:  21
Index: packets-2023-01-11
sctp
f1ap
frame
sll
ip
Layers:  23
Index: packets-2023-01-11
ip
sctp
f1ap
frame
sll
Layers:  17   ===> packet
Index: packets-2023-01-11
sctp
f1ap
frame
sll
ip
Layers:  14
Index: packets-2023-01-11
frame
sll
ip
sctp
e1ap
Layers:  24
Index: packets-2023-01-11
sctp   ===> see layers are also unordered
f1ap
frame
sll
ip
Layers:  1
Index: packets-2023-01-11
ip
sctp
f1ap
frame
sll
Layers:  19
Index: packets-2023-01-11
frame
sll
ip
sctp
f1ap
Layers:  25
Index: packets-2023-01-11
frame
sll
ip
sctp
f1ap
Layers:  26
Index: packets-2023-01-11
frame
sll
ip
sctp
ngap
Layers:  9
Index: packets-2023-01-11
frame
sll
ip
sctp
f1ap
Layers:  3
Index: packets-2023-01-11
frame
sll
ip
sctp
f1ap
Layers:  10
Index: packets-2023-01-11
ip
sctp
f1ap
frame
sll
Layers:  13
Index: packets-2023-01-11
frame
sll
ip
sctp
e1ap
Layers:  15
Index: packets-2023-01-11
sll
ip
sctp
f1ap
frame
Layers:  22
Index: packets-2023-01-11
frame
sll
ip
sctp
f1ap

In the function GetAllFrameProtoTreeInJson, map[string]FrameDissectRes is used to store the parsed json result, because the map is unordered, so if the result is directly traversed out of order, it can be solved by manipulating the map with an ordered index.
Like this way:
func TestGetAllFrameProtoTreeInJson(t *testing.T) {
	allFrameDissectRes, err := gowireshark.GetAllFrameProtoTreeInJson(inputFilepath2, true, false)
	if err != nil {
		fmt.Println(err)
	}

	for i := 1; i <= len(allFrameDissectRes); i++ {
		fmt.Println(strconv.Itoa(i), allFrameDissectRes[strconv.Itoa(i)].WsIndex, allFrameDissectRes[strconv.Itoa(i)].Ascii)
	}
}

Thank you -
it is crashing in between the file read-
** (noinit) ** (PID:2884) 10:06:15.859409 [(none) WARNING]
./epan/epan.c:499 -- epan_get_frame_ts(): !!! couldn't get frame ts for
4467786 !!!
signal: killed
total packets # 346066 but seems it is complaining something out of range
number
[image: image.png]
i don't have this Frame NUmber in my trace file. and one more thing i see
it is first reading all packets and then retuning the all data at once - is
it possible to filters like "diameter||sip" and return packet by packet  to
my program instead waiting for all packets to read by gowireshark?
Regards,
Ugandhar
On Tue, Oct 17, 2023 at 2:45 AM Randolph @.***> wrote:

In the function GetAllFrameProtoTreeInJson, map[string]FrameDissectRes is
used to store the parsed json result, because the map is unordered, so if
the result is directly traversed out of order, it can be solved by
manipulating the map with an ordered index.
Like this way:
func TestGetAllFrameProtoTreeInJson(t *testing.T) {
allFrameDissectRes, err := gowireshark.GetAllFrameProtoTreeInJson(inputFilepath2, true, false)
if err != nil {
fmt.Println(err)
}
for i := 1; i <= len(allFrameDissectRes); i++ {
fmt.Println(strconv.Itoa(i), allFrameDissectRes[strconv.Itoa(i)].WsIndex, allFrameDissectRes[strconv.Itoa(i)].Ascii)
}
}
—
Reply to this email directly, view it on GitHub
https://github.com/randolphcyg/gowireshark/issues/12#issuecomment-1765854657,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQGWC4OZHTXLSWTUEEHMYWLX7YZSNAVCNFSM6AAAAAA6BPVL3WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRVHA2TINRVG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

1.Now after reading the pcap file, it is supported to parse the dataframe sequentially, thanks for your suggestion.
commit:91c3ac5cc64f11c38489df71ae970eff1f50e67d

I also get a warning from the epan module, but it doesn't affect the result and doesn't crash.


Ensure inventory state block contains all files for each version

Resolves: https://jira.lyrasis.org/browse/FCREPO-3209
What does this Pull Request do?
Ensures inventory state block contains all files for each version
How should this be tested?

Build and run migration-utils without this patch

Observe that the state block for any version (except the first) only contains the files changed in that version

Build and run migration-utils with this patch

Observe that the state block for any version (except the first) contains all files in that version

Interested parties
@fcrepo4/committers, @pwinckles

With this change, migration-utils would only handle adding datastreams and modifying the content of existing datastreams. How are other operations like deletes and renames handled?

Deletes and renames are not handled here. This update addresses a bug in the current tool around having an incomplete state block for the common F3 migration case of file adds and updates.
The following two tickets have been created to address "deletes" and "renames":
https://jira.lyrasis.org/browse/FCREPO-3211
https://jira.lyrasis.org/browse/FCREPO-3212