Copy of files (logs, templates, etc...)

https://github.com/BIADwiki/BIADwiki/blob/3d85e5c2b9a3bacea68a2169c259ff4dc396ad41/BIADwiki.sh#L18-L21
There are two problems with these scps (my bad) :

they are redundant with what https://github.com/BIADwiki/BIADwiki/blob/main/R/auto.make.daily.109.images.to.wiki.R is doing, so maybe we should just use one way or the other
scp always stupidly copy all. rsync -avz, or something like that, will only copy if files are more recent. I think that would be a better aproach

as per 2981542, we have no more scps and we use a different default user, which is great. the redunancy aiwh auto.make.daily.109 isn't solve, but it's fine, will be solved if needed at some point.


Actual tag filtration

That extremely important feature that somehow hasn't been added ever.
Now that the tag system is greatly simplified, this should be easy.

'without' filtration has been added, but root-level filtration is still needed.


Adding more HDR

I have done some work on the HDR functions.
I'm a little new to Git. Which branch/how should I pull so that I am authorized to push back the additions?

Thank you!! :laughing:
If your work is for OpenCV3.0, please pull (fork) the master branch.

Will do.


Kainda Validators

I can't see how to implement useful validators to be created by default.
Both Mongoose and Sequelize have built-in validators for almost any cases and every model requires a different level of in-model validation, if any.
Then, i will not implement built-in or autogenerated validators in the near future. This may change in a medium term and if someone of my team or anyone in this issue request some coherent and useful in many cases one


[Enhancement] Add infrastructure for testing the low-level SCSI driver

As mentioned in #410 I think it could be meaningful to add infrastructure for testing low-level SCSI functionality. It is generally robust, though we both very well know how easy it is to mess up ByteBuffer usage and forget a .flip() here or a .clear() there.
I was thinking we could add a UsbCommunicationRecorder that proxies a real UsbCommunication and records all commands to a .pcapng or similar, as well as a UsbCommunicationPlayer that reads the capture, asserts that sent commands match the output and replays responses.
Then we can have a shared set of test cases that can be called from instrumented tests to generate the capture, and from regular unit tests to ensure the commands are correct.
What do you think?

Hey @depau
thanks a lot for your message. Generally, yes. This sounds like a great idea!
I have to be honest though. My time but also my interests shifted in the last years. So I am unable to put a resonable amount of work into this. You already have collaboration access to this repository. Not sure how to make you an admin though. Maybe I have to transfer to an organization.
But I would give you full responsiblity. I obviously would be happy to review code. But I think in the mid term future I wont write any code myself for this.
Thanks for your continued contribution. It is really awesome to have at least someone helping out. Mostly people are just requesting bug fixes or new features instead of contributing. (although I guess over the time there have been several one time contributions which is also great. But I think this whole topic is also so complex to get 100% right it is alsmost impossible for an individual to pull off on the side)

Hey!

I have to be honest though. My time but also my interests shifted in the last years. So I am unable to put a resonable amount of work into this. You already have collaboration access to this repository. Not sure how to make you an admin though. Maybe I have to transfer to an organization.

I absolutely understand.

Thanks for your continued contribution. It is really awesome to have at least someone helping out. Mostly people are just requesting bug fixes or new features instead of contributing. (although I guess over the time there have been several one time contributions which is also great. But I think this whole topic is also so complex to get 100% right it is alsmost impossible for an individual to pull off on the side)

You're welcome and thank you too for the reviews and for the quality of the code! I'm happy to hear that you do occasionally get contributions
I fully understand your position about the project and I feel the same for many of my projects. Speaking about EtchDroid specifically, after lots of frustration and burn-out I decided I want to keep it somewhat alive, dedicating some free time to it when I can and feel like it. This implies I'm definitely interested in keeping libaums alive, the core functionality in particular. Since real-life devices have their own quirks, this type of functionality is very valuable.
Since you like the idea I will work on it over the coming months (or maybe years, let's see how my free time, interests and stress fluctuate).

But I would give you full responsiblity. I obviously would be happy to review code. But I think in the mid term future I wont write any code myself for this.

I think I do have write access to the repo, if I need help I'll ping you when I start working on it as well as when it's ready for reviewing.
Thanks for your reply!


Add a lookup array for the properties directory (?)

require('unicode-6.3.0/properties')[ 0x41 ] // does this make sense? what would the value be?

This doesn’t make sense.


Empty state for dismissed insights view when no dismissed insights

https://www.figma.com/file/MxA95ZHK5NqGX4ptFQljRJ/⭐-Design-System-3.0?type=design&node-id=4064-113141&mode=design&t=9aBNFO1u6NjAvx8W-11 - Design Link


GRIFFIN-181-add popup window when performing stop action to a job

GRIFFIN-181-add popup window when performing stop action to a job

add a popup window for user confirmation


kubectl: oidc configuration

This is a...

[x] Feature Request
[ ] Bug Report

Problem:
The OIDC parameters for kubectl configuration aren't documented as far as I can find. These fields include: client-id, client-secret, idp-certificate-authority-data, idp-issuer-url, and refresh-token.
Proposed Solution:
Document. @ericchiang or @rithujohn191 could you take a swing?
Page to Update:
http://kubernetes.io/docs/user-guide/kubeconfig-file/

Is this already added? Even i seem to be confused with the right value for these parameters while configuring K8S with oidc.

@spnzig the docs were added to the authentication section https://kubernetes.io/docs/admin/authentication/#using-kubectl

@ericchiang But it doesnt mention how one can get values for id_token, refresh-token.

@spnzig that's out of scope for kubernetes. You should consult your identity provider's docs.
https://github.com/coreos/dex/blob/master/Documentation/using-dex.md
https://developers.google.com/identity/protocols/OpenIDConnect

Thanks for that @ericchiang . I was confused with this because i came across another issue which told me that i can use k8s-oidc-helper package to get these details. I was facing errors with its install too. So could not proceed


fix utils::prefix bug: #113

Looks good!
Last thing: could you add a test with the input from #113? Thanks!

Doh, turns out this actually is wrong when the input begins with an empty token (for instance a string that begins with a space).
30cac851e7cd61de2b2df5de9b7251b00c4fe059 should fix this.


On iOS 16+ when you open camera it crashes and closes the app

Bug Report
Problem
On iOS 16+ when you open camera it crashes and closes the camera
What is expected to happen?
The camera should open
What does actually happen?
App crashes when you open camera
It also gives warning as follows:
Attempted to change to mode Portrait with an unsupported device (BackWide). Auto device for both positions unsupported, returning Auto device for same position anyway (BackAuto).
Information

Before mentioned warning does not appear with iOS 15.7.2 and below
const options: CameraOptions = {
quality: 90,
destinationType: Camera.DestinationType.FILE_URI,
encodingType: Camera.EncodingType.JPEG,
mediaType: Camera.MediaType.PICTURE,
sourceType: Camera.PictureSourceType.CAMERA,
correctOrientation: true,
targetWidth: 700
}
Command or Code

await Camera.getPicture(options).then((result) => {
...
});
Environment, Platform, Device

iPhone 17.0.3 iOS version
Version information

cordova-plugin-version: 6.0.0
Ionic 5.5.2
xCode 15.0
Checklist

[ x ] I searched for existing GitHub issues
[ x ] I updated all Cordova tooling to most recent version
[ x ] I included all the necessary information above

Looks like you're using an old version of the plugin. Also I think this issue was resolved in version 7.x.
I would recommend to try upgrading and testing. You most likely will also need to upgrade the platforms too.

I looked into plugins RELEASENOTES.md i found no mention of iOS 16 or above

I updated the plugin, seems to be working, closing the issue.


invalid document fails editor initialization

Create an invalid reaction. Load it in the editor. Open JS console. Observe an uncaught exception during init(). I think the exception is thrown somewhere in validateReaction().
Currently this only prevents the call to ready(), which seems to be used only in automated tests. Maybe we need an invalid reaction test case.
  | init | @ | reaction.js:51726
-- | -- | -- | --
  | async function (async) |   |
  | init | @ | reaction.js:51717
  | onload | @ | 0?user=5e2fad6d1c354…a318d3eda9e3bd9f:32

reaction.js:51726 Uncaught (in promise)
goog.asserts.AssertionError {message: "Assertion failed", reportErrorToServer: true, messagePattern: "Assertion failed", stack: "AssertionError: Assertion failed↵    at new goog.a…er (http://localhost:5000/js/reaction.js:49756:7)"}
message: "Assertion failed"
messagePattern: "Assertion failed"
reportErrorToServer: true
stack: "AssertionError: Assertion failed↵    at new goog.asserts.AssertionError (http://localhost:5000/js/reaction.js:4143:20)↵    at Object.goog.asserts.doAssertFailure_ (http://localhost:5000/js/reaction.js:4224:11)↵    at Object.goog.asserts.assert (http://localhost:5000/js/reaction.js:4255:18)↵    at jspb.BinaryWriter.writeEnum (http://localhost:5000/js/reaction.js:21998:16)↵    at proto.ord.Time.serializeBinaryToWriter (http://localhost:5000/js/reaction.js:27915:12)↵    at jspb.BinaryWriter.writeMessage (http://localhost:5000/js/reaction.js:22053:3)↵    at proto.ord.ReactionInput.serializeBinaryToWriter (http://localhost:5000/js/reaction.js:37869:12)↵    at jspb.BinaryWriter.writeMessage (http://localhost:5000/js/reaction.js:22053:3)↵    at jspb.Map.serializeBinary (http://localhost:5000/js/reaction.js:25737:21)↵    at Function.proto.ord.Reaction.serializeBinaryToWriter (http://localhost:5000/js/reaction.js:49756:7)"
__proto__: goog.debug.Error
`

Sorry! There was something wrong with my runtime environment. This does not reproduce when running the editor from a Docker image.


fix a bug when the key/value pair is ended with =

*Issue #247
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I've implemented the fix with test in the core branch. I'll push it out with the next release


Don't require write access to repository when moderation=true, fork instead of branch

The staticman github bot shouldn't need write access to the repository if moderation is set to true.  Instead of branching and making a pull request, it can fork and make a pull request.  This way there is less at stake if the bot is compromised.

The Gitter Badger works this way, FWIW.

So I tracked down the documentation for the github Node.js module being used, and apparently it explicitly disallows pull requests from separate repositories.  In Pull Requests - Create:

The branch (or git ref) you want your changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repo that requests a merge to a base of another repo.

This is strange.  This Node.js module is a wrapper for the [github API](https://developer.github.com/v3/}, which allows such pull requests.  The notorious GitHub bot image-optimizer used the Ruby gem httparty to directly access the API and make such pull requests, as can be seen in its source code.

This sounds interesting. I'd love to see a PR! :)

Actually I misinterpreted the documentation for the github module.  It's totally possible to pull in changes from a separate repository.  All that the passage in the documentation said is that the repository that changes are being pulled into must be the same repository that has the pull request on it, which makes a lot of sense.


HockeyApp upload successful but can't find build anywhere

Hey, I just got hockeyapp distribution working. Here's my command and my output:
✗ ipa distribute:hockeyapp --token MY_TOKEN -i MY_IDENTIFIER -r beta
Build successfully uploaded to HockeyApp
However, I can't find the new build anywhere on the system. I bumped my version number and...nadda. Is there anywhere specifically I should be looking in? Any debugging I can do on my end?

As of #179, Shenzhen is uploading to upload.hockeyapp.net instead of rink.hockeyapp.net, as recommended by their support documents.
If you are still having trouble determining where uploaded builds are located on their system, I would recommend talking to HockeyApp support. If Shenzhen is posting to the latest API endpoint and the API is not behaving as documented or as self-reported, there's unfortunately very little to be done from the client side.


Crash while creating renderables when reloading new heavy 3D object - Mac

Hi,
The issue relate to Mac OS, Xcode11.3, filamentv1.6.0
I am loading a fbx file and in some of the cases it is crashing at below code.
RenderableManager::Builder builder(1);
builder.boundingBox(rm.aabb)
.material(0, mat)
.geometry(0, RenderableManager::PrimitiveType::TRIANGLES, rm.vb, rm.ib, 0, rm.indexCount)
.culling(false)
.castShadows(true)
.receiveShadows(true)
//.blendOrder()
//.priority(rm.mPriority)
;
auto res = builder.build(*mEngine, renderable);
I've got the below crash stack:
0   com.adobe.illustrator.plugins.AI3D 0x000000011c1aaece filament::OpenGLDriver::allocateHandle(unsigned long) + 142
1   com.adobe.illustrator.plugins.AI3D 0x000000011c1ab24e filament::OpenGLDriver::createUniformBufferS() + 14
We thought this might be buffer allocation issue and modified the Allocators.h file from TNT project. This is what we did
static constexpr size_t CONFIG_PER_RENDER_PASS_ARENA_SIZE = 32 * 1024 * 1024;
static constexpr size_t CONFIG_PER_FRAME_COMMANDS_SIZE = 16 * 1024 * 1024;
static constexpr size_t CONFIG_MIN_COMMAND_BUFFERS_SIZE = 16 * 1024 * 1024;
static constexpr size_t CONFIG_COMMAND_BUFFERS_SIZE = 48 * CONFIG_MIN_COMMAND_BUFFERS_SIZE;
I am loading one fbx file after another using same engine, view and scene instances and cleaning up the renderables, renderable meshes, materials and textures before each loading.
Any idea what could be going wrong?
Could you please point us to any sample code where we are loading multiple files(one after another and one at a time) and cleaning and reusing same engine, renderer and scene.
Thanks,
Pankaj

Does increasing the allocation sizes fix your issue? If not, then that's a different problem. Note that these allocations only matter for the duration of a frame, usually they would cause an issue when rendering with many objects, not with a 1 large one. Have you tried with a more recent version of Filament too?

BTW: with recent versions of Filament you can override those allocation sizes directly using environment variables when compiling Filament.

No, buffer size increase hasn't fixed the problem. I haven't tried with any other version of Filament. We are using same Engine,  SwapChain and renderer for each file load just cleaning the materials, renderable, textures etc.. Do we need to create new instance of the Engine and Renderer for new 3D object? Or are we missing any cleanup?

No you don't need to clean up anything. Is there more to the stack trace? I wonder if it's because you didn't clean up the material instances. You can definitely reuse Engine/Scene/Renderer/View/etc.

we are cleaning the material instances. Below is the code snippet of what we are cleaning up before setting up the scene
for (auto mat_texs : mTextures) {
if (mat_texs.albedo)
mEngine->destroy(mat_texs.albedo);
if (mat_texs.normalMap)
mEngine->destroy(mat_texs.normalMap);
if (mat_texs.aoMap)
mEngine->destroy(mat_texs.aoMap);
if (mat_texs.specMap)
mEngine->destroy(mat_texs.specMap);
if (mat_texs.maskMap)
mEngine->destroy(mat_texs.maskMap);
}
mTextures.clear();
for (filament::MaterialInstance* mat : mMaterialInstances) {
mEngine->destroy(mat);
}
mMaterialInstances.clear();
for (RenderMesh& rm : mRenderMeshes) {
mEngine->destroy(rm.vb);
mEngine->destroy(rm.ib);
}
mRenderMeshes.clear();
for (utils::Entity e : mRenderables) {
mScene->remove(e);
    mEngine->destroy(e);

    // destroy entities themselves
    utils::EntityManager::get().destroy(e);
}
mRenderables.clear();

I am downloading filamentv1.9.3 and see if it works. But looks like many things have been deprecated in this version and api to create View, SwapChains have been changed.

Ah I see you are not cleaning the Material themselves, which probably means their default MaterialInstance is still around.
All the things that have been deprecated have been replaced with other APIs. The main change is how to clear/set a background clear color (basically you use a Skybox now to draw a clear color in the background).

Quick side note: one strategy for finding leaks is to use a debug version of Filament, and quit your application normally after a few reloads; you might see a message like: cleaning up 3 leaked filament::FMaterial

do I need to call mEngine->destroy(mMaterial); everytime before setting the new scene and create new Material?
We are initializing the material as mMaterial =
filament::Material::Builder().package(RESOURCES_TRANSPARENT_DATA, RESOURCES_TRANSPARENT_SIZE)
.build(*mEngine);

For every call to build(...), there should be a corresponding call to destroy(...).

You only need to destroy the material if you don't use it anymore. If you are going to reload the same material, just keep it around and create new instances instead. From package(RESOURCES_TRANSPARENT_DATA, RESOURCES_TRANSPARENT_SIZE) it seems you are using the same material, so don't destroy it.

Attached complete crash log. Please have a look and let me know if it gives any clue...
Crash.rtf.zip

Hi,
I am facing different issues related to the Filament library usage, may be I am missing something basic.
I am collating issues below for general discussion.

Off-Screen rendering:
I’ve created a sample application in which I am using two swap chains. One for onscreen rendering associated with native window and other for offscreen rendering for file saving. I’ve created a test application and both the swap chains are working as expected.
But when I used the same code in one of our Adobe illustrator plugin app, I am getting black output with offscreen rendering.
I am suspecting that Adobe Illustrator has also created some rendering instances and it may be limiting the rendering resource allocation?
Is there a way we can switch the context between onScreen and offScreen swapChains/rendering?

I am using OpenGL backend, I tried using Metal backend but getting the crash with the message that material is not created for Metal framework.
I’ve compiled material resource using below steps
cmgen -x outFolder -f ktx hdrfile.hdr
matc -o "transparent.filamat" "transparent.mat"
resgen -qc -p resources transparent.filamat skybox.ktx ibl.ktx

Do I need to use some flag to compile the material for Metal backend?

I am loading a 3D object(fbx file) which has over 1million vertices and more than 10000 renderable. While building the renderables, filament is crashing in OpengGL driver handle allocation. I’ve increased the buffer size as below but it doesn’t have any impact, it prevented the crash on Windows OS.
static constexpr size_t CONFIG_PER_RENDER_PASS_ARENA_SIZE    =  32 * 1024 * 1024;
static constexpr size_t CONFIG_PER_FRAME_COMMANDS_SIZE = 16 * 1024 * 1024;
static constexpr size_t CONFIG_MIN_COMMAND_BUFFERS_SIZE = 16 * 1024 * 1024;
static constexpr size_t CONFIG_COMMAND_BUFFERS_SIZE     = 48 * CONFIG_MIN_COMMAND_BUFFERS_SIZE;

If I limit the number of  the renderables to 9900, I am able to prevent the crash but it’s also not loading the complete data.
Is there any limit for renderables?
Thanks,
Pankaj

For 1: I don't understand what you mean by "Is there a way we can switch the context between onScreen and offScreen swapChains/rendering?". Filament will take care of this when you ask to render a frame into a swap chain.
For 2: By default matc generates shaders only for OpenGL (see matc --help). Use matc -a metal … to generate for metal (you can also use matc -a all … to generate for Vulkan, GL and Metal).
For 3: With a large number of renderables, yes you'll have to increase the size of those buffers. An alternative solution is to load the renderables over several frames to bypass this problem. It's something we definitely want to fix. That said, you may still run into allocations issue while drawing the scene if all 10,000 renderables are visible at the same time. Do you have 10,000 different materials? If not, it would be useful to merge as many renderables as possible for performance reasons (libraries like assimp can do it for you at load time).

@romainguy Thanks for your reply.

What could be possible reason for offScreenSwapChain creating/saving file with black output? Same code works fine in my test application. The only difference here is I am loading Filament inside Adobe Illustrator which already may be opening OpenGL/Metal resource handles. On screen swapchain and view are rendering correct data. So somehow either readPixels call is failing or I may need to reset/clear or flush some data...not sure...

I am using assimp to load the FBX file, I'll see if I can merge the renderables...Thanks for pointer

below is my implementation for saving the file using offscreen swapchain...do you see any issue which may be causing the black output issue:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void saveScreenshot(const QString &filepath, bool transparency, int w, int h)
{
using namespace filament;
using namespace std::chrono_literals;
const bool transparent = true;
int n_channels = transparent ? 4 : 3;
auto dataformat = transparent ? backend::PixelBufferDescriptor::PixelDataFormat::RGBA : backend::PixelBufferDescriptor::PixelDataFormat::RGB;
auto qimageformat = transparent ? QImage::Format_RGBA8888 : QImage::Format_RGB888;
const Viewport& vp = mOffscreenView->getViewport();

mCamManipulator.updateCamera(mMainCamera);

//    if transparent, change clear color to full alpha
Renderer::ClearOptions new_clear_options = mClearOptions;
if (transparent) {
new_clear_options.clearColor[3] = 0.0;
} else {
new_clear_options.clearColor[3] = 1.0;
}
mRenderer->setClearOptions(new_clear_options);
bool done = false;

uint8_t* pixels = new uint8_t[vp.width * vp.height * n_channels];
backend::PixelBufferDescriptor buffer(
                                      pixels,
                                      vp.width * vp.height * n_channels,
                                      dataformat,
                                      backend::PixelBufferDescriptor::PixelDataType::UBYTE,
                                      [](void* buffer, size_t size, void *capture_state) {
                                          CaptureState* state = static_cast<CaptureState*>(capture_state);
                                          const Viewport &v = state->view->getViewport();
                                          QImage img(reinterpret_cast<unsigned char*>(buffer), v.width, v.height, state->img_format);

                                          int dpm = 120 / 0.0254;
                                          img.setDotsPerMeterX(dpm);
                                          img.setDotsPerMeterY(dpm);

                                          img.save(state->filepath);

                                          // cleanup.
                                          delete[] static_cast<uint8_t*>(buffer);
                                          delete state;

                                          *(state->done) = true;
                                      }, new CaptureState{mView, filepath, qimageformat, w, h, &done});

while (!mRenderer->beginFrame(mOffscreenSwapChain)) {
    std::this_thread::sleep_for(8ms);
}
mRenderer->render(mOffscreenView);
mRenderer->readPixels(0, 0, vp.width, vp.height, std::move(buffer));
mRenderer->endFrame();

while (!done) {
    // Keep flushing the render buffer.  Filament requires the
    // command stream to execute while CPU bound operations are scheduled
    if (mRenderer->beginFrame(mOffscreenSwapChain)) {
        mRenderer->render(mOffscreenView);
        mRenderer->endFrame();
    }
    std::this_thread::sleep_for(8ms);
}

mRenderer->setClearOptions(mClearOptions);

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Try doing readPixels after endFrame().

I already tried that...it produces same result

There are many bugs/problems/discussions reported in this issue.  Please create a new issue per problem.
As it is now, nothing is actionable here.


+error.svelte isn't utilized when in layout group

Describe the bug

In a formation like that, the root directory of the webpage will follow +page.svelte that exists in the (design) directory, but an error will fail to detect +error.svelte in that same directory and will display the generic one.
Curiously so, even if the error is happening in a subdirectory of (design) like posts, it will still fail to detect (design)/+error.svelte and display that.
Reproduction
Stackblitz test
Logs
No response
System Info
System:
    OS: Linux 5.10 Ubuntu 20.04.5 LTS (Focal Fossa)
    CPU: (16) x64 AMD Ryzen 7 5800H with Radeon Graphics
    Memory: 6.27 GB / 7.70 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 19.6.1 - ~/.nvm/versions/node/v19.6.1/bin/node
    npm: 9.5.0 - ~/.nvm/versions/node/v19.6.1/bin/npm
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.91
    @sveltejs/adapter-netlify: ^1.0.0-next.64 => 1.0.5
    @sveltejs/kit: next => 1.7.1
    svelte: ^3.44.0 => 3.55.1

Severity
blocking an upgrade
Additional Information
I cannot utilize advanced layouts with groups while still having my error page designed with one of them because of this.

In your reproduction there's a link to a page that does not exist, resulting in a 404. A 404 error will always invoke the root +error.svelte. The question now is whether or not it's expected that the (a)/+error.svelte file isn't used. I'd say it's expected because

You can also have a +error.svelte at the root in this situation
SvelteKit can't know whether or not the route in question would lead down the (b) or (b) path, so it needs the common ancestor, and that's only the src/routes/+error.svelte file

Therefore closing as "works as designed".

Hello @dummdidumm, the issue wasw opened precisely for the question that you posed, and the repoduction was to show the issue I believe there is. So yes, I knowingly redirect you to a page that does not exist.
I don't think it works as designed, and please let me explain why.
Just like with a root +page.svelte inside a (a) path will be treated as the root page (explained here https://kit.svelte.dev/docs/advanced-routing#advanced-layouts ), I believe that the +error.svelte should also have the same treatment.
Why having a +error.svelte at my root would not be a good solution has to do with design. I believe that since we have a system to have advanced layouts, I should also be able to utilize a layout for my error page and not have to repeat all of my layout properties to it. That's just useless code repetion.
I hope I have made my question/issue clearer.

There can be only one +page.svelte pointing to a specific URL across groups, but there can be multiple +layout.svelte and +error.svelte files across groups. What you propose would mean that we would have to make the same "there can only be one +error.svelte across groups" restriction, which is a breaking change. It is also incorrect if your error is coming from within another group: you wouldn't want to show (b)/+error.svelte if the error happened within the (a)/.. tree. The 404 case is a special case because it happened from no tree at all, but even then there's no way for the 404 page to decide which of the groups it should look into to use a +error.svelte (should it pick the first it sees? etc).
In your case that might mean some repetition but I'm sure it can be diminished through reusable components.

Ok those are very valid points and thank you for following up on this.
I have updated this Stackblitz test here though to show something else. You say we can have multiple +error.svelte in the layout groups. All right, so, when you enter the about page which is under the about dictory (so clearly below the a layout group), and then click the link for the 404 I've set up which redirects you to /about/test, that should've given you the (a)/+error.svelte right? But it doesn't.
I realize this can be because Sveltekit cannot know if /about/test would've been inside (a) or no, but still that kinda makes error pages in root folders of layout groups not respond like you would expect, essentially requiring you to make a new error file in the root folder.
Thanks again!

404 is a special case, because there's no routing tree to walk up and find the nearest error boundary, which is why it always uses the root error page. Walking up from the last tree before the link is clicked would lead to inconsistent results - if you visit the 404 page directly it would be a different error page than if you click on a link from within the app.
If you would have an error inside a load function inside (a)/something, it would use (a)/+error.svelte because there's a routing tree now that can be walked up.

Ah thank you, got it now. Thanks for clarifying it to me!


Adjust the doc order of the content table

Signed-off-by: Lei Jitang<EMAIL_ADDRESS>To make it more readable, make manifest.md and manifest-list.md above layer.md and config.md

LGTM

lgtm

On Sun, Oct 23, 2016 at 08:30:47PM -0700, Lei Jitang wrote:

To make it more readable, make manifest.md and manifest-list.md above layer.md and config.md You can view, comment on, or merge this pull request online at:

The previous order was intended to be bottom-up, so folks reading in order would never be reading about undefined dependencies.  The new order is mixed.  If the intention is to make it top-down, manifest-list should come first.

Missed that. I guess it makes a bit of sense but I'd probably rather go for the top-down

On Mon, Oct 24, 2016 at 09:05:07AM -0700, Jonathan Boulle wrote:

I guess it makes a bit of sense but I'd probably rather go for the top-down

Would that be:
DOC_FILES := \
  README.md \
  code-of-conduct.md \
  project.md \
  media-types.md \
  manifest-list.md \
  manifest.md \
  layer.md \
  config.md \
  descriptor.md \
  image-layout.md \
  canonicalization.md

?

@wking  I though make manifest-list.md before manifest.md, but after reading the manifest.md, I think we could make manifest.md at first because at the beginning of manifest.md, it defines the manifest specification.

On Mon, Oct 24, 2016 at 06:18:22PM -0700, Lei Jitang wrote:

… I think we could make manifest.md at first because at the beginning of manifest.md, it defines the manifest specification.

There is similar context-setting at the start of manifest-list.md.  I think manifest.md's current “three main goals” language is a bit stale though, since it seems to be introducing goals that lead to manifest lists (“fat manifest”) and configurations (“translatable to the OCI Runtime Specification”).  Regardless of whether we use top-down or bottom-up ordering, I think manifest.md's lead-in should be trimmed to focus on the role of the manifest in the OCI image modeling.


Informational: Endpoint Detection and Response Alert

Describe the bug
EDR alerts on this installation with the following detection telemetry:
Initiated By: Agent Policy
Engine: Behavioral AI
Detection type: Dynamic
Classification: Malware
Path: /Applications/AeroSpace.app/Contents/MacOS/AeroSpace
Command Line Arguments: N/A
Publisher Name: N/A
Originating Process: launchd
SHA1: 864e916bb80aa207626af7a7d6e140c3568c4e6f
Sandbox analysis describes the following:

Process added a suspicious property list to achieve persistency;
Process achieved persistency through launchd job

This file was NOT detected on VirusTotal:
https://www.virustotal.com/gui/file/883076ecdeddc5497815d8d159c0bc7cc22845dfa831f9d56ef5a47663480334
This is provided as information to the developer and to assist SOC analysts with triaging endpoint detection and response results.

spam

@nikitabobko Just wanted you to know that AV was blocking your software.


hide protolude redifined imports

attempt to solve #150

Thanks for tackling this, @marcosh
This change introduces build warnings for users of protolude 0.2.0. I would rather not have the warnings, and think the right thing to do is restrict graphql-api to use protolude 0.2.1 and later.
Concretely, this means:

[ ] Add a note to the $next release section of CHANGELOG.rst about the changed protolude requirements
[ ] Update package.yaml to depend on protolude >= 0.2.1
[ ] Update stack.yaml to say protolude-0.2.1 rather than protolude-0.2 (not 100% sure this is necessary)

@marcosh, are you OK to make these changes?
Separately, we should do a follow-up PR that breaks the build on warnings.

@jml I updated the PR, hope everything's fine


Fixes local IPFS hosting.

Modern versions of IPFS use localhost subdomains for serving content in order to guarantee that each application operates within its own browser context.  If you are running with the IPFS browser companion, or try to access the site via IPFS desktop, or get given a localhost IPFS link you will end up at an address like http://<CIDv1>.ipfs.localhost:8080.  Prior to this patch, this code would force redirect such an address to https://<CIDv1>.ipfs.localhost:8080 which will never work (because 8080 is a 'standard' HTTP port and because IPFS is not served over HTTPS and because getting valid localhost certificates is effectively impossible).
This PR fixes the redirect so it doesn't occur for any localhost subdomains (or localhost root domain itself).

Bug was introduced in #8788, which is how I chose reviewers.


[V3] Forking booleans from C#

https://github.com/exercism/v3/tree/master/languages/csharp/exercises/concept/booleans

I'm going to go ahead and close this, as there is no context provided in the issue body, and the link now returns a 404.
If I've misunderstood, holler, and we can re-open the issue.


Use case check: sharing files with custom authn/authz

Hello!
First of all: I apologize for the wall of text. I wanted to make sure to describe my use case in details, so that the questions at the end can be put in context.
I've written a file sharing service that shares files from various object stores (called "drives"). These object stores can be "mounted" to paths (and optionally domains) (for example: /assets would be served from my S3 bucket, but gcs.mydomain.com/assets could serve files from a GCS bucket).
The service is integrated into with an other application that generates these files. By integration I mean that issuing credentials (JWT tokens for users, opaque tokens for service-to-service auth) and authorization (who can access what) are done by this other system (identity and authorization providers are abstracted, so theoretically, I could implement different providers).
To simplify things a bit: I wrote a custom HTTP server that calls out to external services for verifying credentials and authorizing subjects to access files from object stores.
As you could imagine, a considerable amount of the configuration overlaps with what a Caddyfile would contain for a similar use case. Therefore, I'm trying to rewrite this service as a Caddy module (basically: serving files from object stores).
I came across your project and I was amazed by the volume of features. Unfortunately, for that same reason, I'm having a hard time deciding whether it could serve my purposes (I should probably add that I'm planning to open source this module, so maybe not just my purposes) or what the gaps are (if any).
I tried to form a few questions that could (hopefully) help me decide (and I really hope this could work):
Can I chain multiple authentication methods?
For example, can I have a portal supporting both basic auth (and maybe even checking multiple identity providers) and JWT based auth?
Or to rephrase: how would I configure caddy-security to allow both basic auth (potentially backed by multiple ID stores) and JWT auth?
Is there a way to completely disable the UI?
In the particular use case I'm working on uses a different system for identity store and authz, so I probably don't need the UI or any of the management functions it provides. Can I disable it completely?
(This is strictly for my use case, less important if I get to open source the project).
Can I implement my own authorization providers?
As mentioned above, authorization is based on object attributes stored in another system. I would have to implement my own authorization layer for that (based on the URL, or rather the object key). Is that possible with this library? Can you give a few pointers how to do that?
I saw the so-called user transformers, but I'm not sure that helps in this case.
Can I customize the response given for authn/authz failures?
As a security feature, authz failures (ie. no access to a file) is returned as 404 as well so users can't guess file existence. (Actually, 403 would be equally fine). Is this something easily customizable?

These are the questions I came up with so far. I really hope I can use this library, because it looks awesome and from the looks of it, it implements at least 90% of what I need, so I'd hate to waste time to duplicate some of it.
I'd be happy to contribute back if we identify gaps that you believe might be interesting for this library.
Thanks for this library and appreciate any help you could give me related to the above!

First of all: I apologize for the wall of text. I wanted to make sure to describe my use case in details, so that the questions at the end can be put in context.

@sagikazarmark , that is totally OK! 👍

Can I chain multiple authentication methods?
For example, can I have a portal supporting both basic auth (and maybe even checking multiple identity providers) and JWT based auth?
Or to rephrase: how would I configure caddy-security to allow both basic auth (potentially backed by multiple ID stores) and JWT auth?

The answer is partially yes. It is done by adding with basic and with api directives. See https://authp.github.io/docs/authorize/basic_api_key_auth

Is there a way to completely disable the UI?
In the particular use case I'm working on uses a different system for identity store and authz, so I probably don't need the UI or any of the management functions it provides. Can I disable it completely?
(This is strictly for my use case, less important if I get to open source the project).

Yes. It can be done in two ways: (1) using caddy path matches, (2) using disable settings directive, see https://github.com/authp/authp.github.io/issues/35

Can I implement my own authorization providers?
As mentioned above, authorization is based on object attributes stored in another system. I would have to implement my own authorization layer for that (based on the URL, or rather the object key). Is that possible with this library? Can you give a few pointers how to do that?
I saw the so-called user transformers, but I'm not sure that helps in this case.

This is not available out of the box. I would need to add facilities to "enrich" user identity with additional info from that third-party system.

Can I customize the response given for authn/authz failures?
As a security feature, authz failures (ie. no access to a file) is returned as 404 as well so users can't guess file existence. (Actually,
403 would be equally fine). Is this something easily customizable?

If you are not authenticated, you get 401. If you are authenticated, but not authorized, you get 403.
More on redirects and status codes are here:
https://authp.github.io/docs/authorize/auto-redirect-url
https://authp.github.io/docs/authorize/acl-rbac#forbidden-access


EOFError: Ran out of input [INSTALLATION PROBLEM]

Specifications:
Processor	Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz   3.60 GHz
Installed RAM	32,0 GB
System type	64-bit operating system, x64-based processor
Edition	Windows 10 Pro
Version	        20H2
OS build	19042.1202

Check folder structure, png files im "img" folder and last but not least - permissions on all folders and files inside your "uvr-root-folder")
And yeah, pass requirements dependencies and check python version (but for me both 3.9 and 3.7 worked).

Checked file structure, all is as it should be.
Img files are also ok
Moved folder to c:/ still same error
Python version:

Tried to type “python3” instead of python? Did all PATH enviroments are present in system?

Same issue here. I hope somebody can help.

Fixed. I've simply relocate the folder.


[KO] Translation for scrolling-intervention

This translation has passed a high-level review by Alconost.
Check out a review request at GitLocalize

Hi @yt-alconost, can you please provide a more detailed description of what's included in this PR? Please update the title and description. "Acceptable" doesn't tell me about what this is.
Also, can you make sure you've signed the CLA please?

@ilyaspiridonov Can you answer @petele 's question?

@googlebot I signed.

@moonformeli Can you please check if you have a signed CLA (and sing one if not)? Thank you!

@agektmr apart from the CLAs this one is good to be merged.

@moonformeli we can't accept this pull request unless you sign the CLA.


quickstart for confluent - add datagen connector following examples fails

I'm following the Confluent developer quickstart for Confluent platform page.
confluent-7.2.0.tar.gz running locally on Mac Monterey 12.4.
I have the services up and running,
confluent local services start
The local commands are intended for a single-node development environment only,
NOT for production usage. https://docs.confluent.io/current/cli/index.html

Using CONFLUENT_CURRENT: /var/folders/p1/99852nrd7xn0fjqkp8gfk6rh0000gn/T/confluent.565137
Starting ZooKeeper
ZooKeeper is [UP]
Kafka is [UP]
Starting Schema Registry
Schema Registry is [UP]
Starting Kafka REST
Kafka REST is [UP]
Starting Connect
Connect is [UP]
Starting ksqlDB Server
ksqlDB Server is [UP]
Starting Control Center
Control Center is [UP]

I am able to use the confluent control centre to add topics but when i try to create the datagen connector I see the following error,

org.apache.kafka.common.config.ConfigException: Unable to parse the provided schema.

Problem seems to involve the quickstart field (also mentioned on #57).
See screenshots below.

Uninstalled and reinstalled the connector... now works 👍
 ~ % confluent-hub install \
   --no-prompt confluentinc/kafka-connect-datagen:latest
Running in a "--no-prompt" mode
Implicit acceptance of the license below:
Apache License 2.0
https://www.apache.org/licenses/LICENSE-2.0
Downloading component Kafka Connect Datagen 0.5.3, provided by Confluent, Inc. from Confluent Hub and installing into /Users/joseph.jobbings/confluent-7.2.0/share/confluent-hub-components
Implicit confirmation of the question: Do you want to uninstall existing version 0.5.3?
Adding installation directory to plugin path in the following files: ...


After running "yum install rh-dotnet30 -y" I get " There are no enabled repos.  Run "yum repolist all" to see the repos you have.  You can enable repos with yum-config-manager --enable "

Problem encountered on https://dotnet.microsoft.com/download/linux-package-manager/rhel/sdk-current?journey=vs-code
Operating System: Linux RHEL 7 - x64
I ran yum install rh-dotnet30 -y but got "There are no enabled repos.
Run "yum repolist all" to see the repos you have.
You can enable repos with yum-config-manager --enable " and how to get the DotNet repo is not mentioned in the installation instructions. I'm using Linux Mint (Cinnamon) 19.2

The page you were on had the RHEL 7 instructions, but Linux Mint is a derivative of Ubuntu, so you should select it in the dropdown instead. It looks like Mint 19.2 is based on Ubuntu 18.04, so you would pick that.

@dagood gave the accepted response: Mint is based on Ubuntu.
Closing since there was no response in a week.


dbhome path/version

As Oracle changed it's version numbering and i can't even install e.g. 19.8 directly it does not make sense to install into <IP_ADDRESS> directory. After RU apply it's not 19.3 anymore.
It i think version and directory should be only 19
db_homes_config:
  19-base:
    home: db1
    version: 19
    edition: EE

installing <IP_ADDRESS> into /u01/app/oracle/product/19/db1

Hi,
the solution is very simpel:
Add oracle_home with path.

db_homes_config:
19-base:
home: db1
oracle_home: /u01/app/oracle/product/19/db1-latest
version: 19
edition: EE


groff: Remove indeterminism in manpages

It was caused by including the modification date
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Used a patch instead of substituteInPlace for louder failure when the patch stops applying. Any better alternatives for next time?

Well, there's a feature request to make substituteInPlace --replace fail by default if nothing matches.  (I just assume that hasn't been implemented yet.)

Nitpick: I wonder whether to put a meaningful date in there instead.  When we run date -r . soon after unpacking, it will get us stamp stored on the root dir in the tarball Tue Nov  4 08:39:21 UTC 2014 – that's fairly easy and probably quite accurate.  What do you think?

@vcunat Okay, it uses the ChangeLog time now

Looks good, thanks!


Add support for powershell

It looks like it's already available in adambard/learnxinyminutes-docs, and it's definitely on StackOverflow.

Nevermind. Undocumented, but already works.

@ironbishop: What prefix do you use? powershell/?
Only questions do work, but not learn-x-in-y, right?
And RosettaCode does not work either?

This works:
$ curl cheat.sh/powerhsell/install+activedirectory+module
This too, but through SO:
$ curl cheat.sh/powerhsell/:learn
That's more than enough for my need :)

curl cheat.sh/powerhsell/install+activedirectory+module
should be
curl cheat.sh/powershell/install+activedirectory+module


Fix minor typo

The code was obviously working without the conditional, so it might be simpler to drop it entirely.

Oops :) I guess nothing uses these "extra cflags" anymore, probably better to delete altogether I agree.


Detail Guide's permissions on a wiki page

Issue title says it all.

Resolved a few days ago, https://github.com/AlmuraDev/Guide/wiki/Permissions


Install Configuration Issue

I'm a junior sys admin testing Nudge for potential deployment, but after running the demo configuration file and approving via Profiles, nothing shows up in Applications. Tried running log stream --predicate 'subsystem == "com.github.macadmins.Nudge"' --style syslog --color none but it stalls after spitting output "Filtering the log data using "subsystem == "com.github.macadmins.Nudge""".
I'm running v11.6.1, so input min OS version as 11.99.1, and tried it with multiple different install dates.
This is the com.github.macadmins.Nudge.mobileconfig file after my modifications:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>PayloadContent</key>
    <array>
      <dict>
        <key>PayloadDescription</key>
        <string>Configures all Nudge preferences</string>
        <key>PayloadDisplayName</key>
        <string>Nudge Preferences</string>
        <key>PayloadIdentifier</key>
        <string>com.github.macadmins.Nudge.preferences.example</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.github.macadmins.Nudge</string>
        <key>PayloadUUID</key>
        <string>CA02957C-7472-446B-9F77-3E0414405556</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>osVersionRequirements</key>
        <array>
          <dict>
            <key>requiredInstallationDate</key>
            <date>2021-08-28T00:00:00Z</date>
            <key>requiredMinimumOSVersion</key>
            <string>11.99.1</string>
          </dict>
        </array>
      </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Configures Nudge application</string>
    <key>PayloadDisplayName</key>
    <string>Nudge (v1.1.0) Example</string>
    <key>PayloadIdentifier</key>
    <string>com.github.macadmins.Nudge.example</string>
    <key>PayloadOrganization</key>
    <string>Nudge</string>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>2F54F734-132D-4539-B583-F1DCF23DB5EB</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
  </dict>
</plist>

Advice appreciated, thanks in advance!

Have you tried running Nudge.app? I believe it's just tailing system logs and so far there is nothing to report.

Have you tried running Nudge.app? I believe right now it's just tailing the system logs and there is nothing to report.
Once I run Nudge.app you should see something like this.
2021-12-06 13:56:46.062173-0600  localhost Nudge[2697]: [com.github.macadmins.Nudge:softwareupdate-download] enforceMinorUpdates: true 2021-12-06 13:56:46.207322-0600  localhost Nudge[2697]: [com.github.macadmins.Nudge:utilities] Current operating system (11.6.1) is greater than or equal to required operating system (0.0) 2021-12-06 13:56:46.207374-0600  localhost Nudge[2697]: [com.github.macadmins.Nudge:user-interface] Device is fully updated 2021-12-06 13:56:46.207384-0600  localhost Nudge[2697]: [com.github.macadmins.Nudge:user-interface] Nudge is terminating due to condition met

Not sure where Nudge.app is located - if it's what is supposed to show up in my Applications folder, it's not there. That would explain why my logging isn't working, but not why Nudge.app is not installing in the first place.

/Applications/Utilities/Nudge.app

Check here: /Applications/UtilitiesNudge.app

Nothing like that there either

Did you install Nudge-<IP_ADDRESS>92021162608.pkg in releases? Maybe you did the logger or the LaunchAgent pkg.

There it goes, now showing up in the Utilities folder. Much appreciated!


ReservedFlashlightSlot by FlipMods compitability

as per title, it's all good as you hold the flashlight, but when triggered via hotkey (ReservedFlashlightSlot by FlipMods) or it's not selected, the light is unchanged.
It's a bit of a shame because both mods are quite popular but don't coexist too well :/

Thank you for your note, as soon as possible I will try to integrate it so that the mods can work together correctly.

What you are talking about is called helmet light, in the latest version v1.0.9 I added light support, which will also now work with your mods.
If everything works, I will be glad if you star this repository, after that you can close that issue.

Starting from v1.1.0 you can see this more powerfull flashlight effect (including if you use it through a helmet with F button).
Green-flashlight

Pro-flashlight

Getting back here to thank you for fixing it in such a timely manner! Much appreciated :)
(only now I realize it's sometimes a bit too bright with volumetrics and would be cool if radius/cone/intensity/volumetric amount  was configurable via LethalConfig - but that's another story :D )

Hello again! Will be added with the next mod update)


[Path Item Object] "in": "path" management

Hi again!
Problem
Getting through the code I found that the lib isn't taking part of the "in": "path" specification (aka Path Item Object) of the OpenAPI Specifications.
Such as follow :
https://swagger.io/specification/v3/#path-item-object
Making it available in the lib would be great! At least for Open API please, so that we can use routes like /users/{id}/remove .
An idea for minimal avaibility
I think that changing this line
https://github.com/rakutentech/laravel-request-docs/blob/63511df8c01deb6946d2ca0581c0169ea96f46f0/src/LaravelRequestDocsToOpenApi.php#L94
To :
'in'    => str_contains($rule, 'path') ? 'path':'query',

Would be a great way to start.
I tried to code it like the way you managed the required parameter

Fwd to @kitloong

Related #162

Thanks I think it is work in progress by @kitloong

Ref: #198


call service every 2 minutes without run "python manage.py runcorns" command everytime

hi,
from django_cron import CronJobBase, Schedule
class MyCronJob(CronJobBase):
RUN_EVERY_MINS = 2
schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
code = 'my_app.my_cron_job'    # a unique code
def do(self):
    print('test....')

python manage.py runcrons "my_app.cron.MyCronJob"
so my prob is every time i have to run above command?
is there any way  print test.....   every 2 minute
python manage.py runserver
than i can see print  test...... every 2 minutes
so how to do this?

The cron program of linux will run your script every time but django-cron only will run your job if its passed 2 minutes...so, i think that configure your command in linux cron is enough. Do you are using linux? Or, why you cannot use cron?

@xporium is using Windows 10 (from issue title #145). I just finished moving and tomorrow will update the other issue with how I have the task scheduler set up and give details about it. Maybe we can add it to the documentation for setting this up on Windows.


Namecheap adapters (with/without clouDns auto config)

Requirements:
Install XML on your server before using.
Details:
There are two files in this PR.
The first is Namecheap.php which provides support for registering/transfer of domain names through the Namecheap API.
The second is essentially a copy of the first, but with added support for Auto-config of nameserver using ClouDns Master Zones.
Bug reports:
The setPrivacy functions throw appropriate errors but they do not appear in the fossbilling UI.
Fossbilling UI always shows a success message when changing privacy setting on a domain. This is a Fossbilling src bug and I couldn't fix it from the scope of my adapter.
Namecheap API does not support EPP code retrieval. So transfering out of Namecheap is not supported.
There are a few contact fields that should be added to Fossbilling settings to comply which certain country TLD's. For example, only canadian companies/citizens can purchase .ca domains.

Is there some realationship between Namecheap and ClouDNS that I'm missing, or is that just something that fits your personal use case?

It looks like there are 2 different identities.
https://www.similartech.com/compare/cloudns-vs-namecheap-dns
It would be nice if we can add support for 3rd party DNS on all registars but it probally becomes a huge drama.

It would be nice if we can add support for 3rd party DNS on all registars but it probally becomes a huge drama.

It would be very nice.

Thanks for the great contribution. We really appreciate it. ❤
If you want to have direct contact with the team, we would be very glad if you joined our Discord server.


Python 3 bytes, string JSON problems

Hi,
I might have stumbeled on a small bug concerning serialization. It seems that when running python 3.5
the encode_data method does not always work as expected as it return bytes and json expects string objects. For example if the executor does not speciy a uuid the default assignment lead to JSON serialization errors.
Adding a    encode_data(uuid.uuid4().bytes).decode(),  solves this. Adding the decode does not seem to break the code for python 2 .
The same problem is also present in the examples folder.
This can be reproduced by:
Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Dec  7 2015, 11:16:01)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from binascii import b2a_base64, a2b_base64
>>> import json
>>> json.dumps(b2a_base64("a").decode())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>> json.dumps(b2a_base64(b"a").decode())
'"YQ==\\n"'
>>> json.dumps(b2a_base64(b"a"))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/anaconda3/lib/python3.5/json/__init__.py", line 230, in dumps
    return _default_encoder.encode(obj)
  File "/opt/anaconda3/lib/python3.5/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/opt/anaconda3/lib/python3.5/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/opt/anaconda3/lib/python3.5/json/encoder.py", line 180, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: b'YQ==\n' is not JSON serializable
>> json.dumps(b2a_base64(b"a").decode())
'"YQ==\\n"'

I am not sure if this is a bug or I am just misunderstanding something. If this is indeed a bug, adding a decode call to the encode method seems to fix the issue

This is definitely a bug, thank you.
we expect binascii.b2a_base64 in python 3 should return str, but in fact it returns bytes
we will fix this ASAP

Ok cool, I guess adding a decode at the end should not impact much?

yes, but we prefer add decode('ascii') inside enode_data than outside.

Ya thats what i ended up doing as well. Cheers.


v2.5.2

Spanish translation

This change is

Reviewed 25 of 26 files at r5.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Typing with exact props on a component with passThrough props

When typing the props on a component that accepts some passthrough props to give to its child, I'd expect this to work
import * as React from 'react';

type FirstComponentProps = {|
	a: number,
	b: number
|}

class FirstComponent extends React.Component<FirstComponentProps> {}

type SecondComponentOwnProps = {|
	c: number
|}

type SecondComponentProps = {|
	...FirstComponentProps,
	...SecondComponentOwnProps
|}

class MySecondComponent extends React.Component<SecondComponentProps> {
	render () {
      	        const { c, ...props } = this.props
    	        return <FirstComponent {...props} />
	}
}

const Node = <MySecondComponent a={1} b={2} c={3} />

But it errors with props of React element 'FirstComponent'. Inexact type is incompatible with exact type
https://flow.org/try/#0JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwBQdMAnmFnAGLBSowDCJkAHZZBMAArEw6ALxwA3gB86ASGQAuOIICuIAEZYoAGhW6N2vQbhXrcOgoC+DXABs06Ttz4CIw0XCwAHjAiACbo2HgwAHT84D4iMAA8HjyxQgkSEFIAfPKOjCxsAMpYuD4hafGiAPIA7oKZUnCyiiq4Zjr6UHb5zKxwJWWCFd6+4pIy8krKUbMpXnFjjajGM7OD5ZVjdQ0TPU6uqOgAskwbw1sJ-kGh4VTRl6KJ5yOLGRO5ciqUw5YAFABKeR0GxWZRDHjyOC4QxwWZRMATOD2ZpwGAAC2AqARSJB1mUlBgWiggjgyS4qVGVzk8MRWVQKIA9NkVI58hD4AA5CAhNiyRKnF6PeDIaRyACMKN0YoATCjcGKAMxMllAA
Passing each prop individually works
class MySecondComponent extends React.Component<SecondComponentProps> {
	render () {
    	        return <FirstComponent a={this.props.a} b={this.props.b} />
	}
}

But this does not seem like it would be the best solution.
Also attempted this to no avail.
class MySecondComponent extends React.Component<SecondComponentProps> {
	render () {
      	        const { c } = this.props
      	        const passThrough = getRest(this.props, { c })
      	        return <FirstComponent {...passThrough} />
	}
}

function getRest<Props: {}, ToOmit: {}> (
  props: Props, toOmit: ToOmit
): $Rest<Props, ToOmit> {
	const rest = { ...props }
	Object.keys(toOmit).forEach(prop => delete rest[prop])
	return rest
}

https://flow.org/try/#0JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwBQdMAnmFnAGLBSowDCJkAHZZBMAArEw6ALxwA3gB86ASGQAuOIICuIAEZYoAGhW6N2vQbhXrcOgoC+DXABs06Ttz4CIw0XCwAHjAiACbo2HgwAHT84D4iMAA8HjyxQgkSEFIAfPKOjCxsAMpYuD4hafGiAPIA7oKZUnCyiiq4Zjr6UHb5zKxwJWWCFd6+4pIy8krKUbMpXnFjjajGM7OD5ZVjdQ0TPU6uqOgAskwbw1sJ-kGh4VTRl6KJ5yOLGRO5ciqUw5YAFABKeR0GxWZRDHjyOC4OD2ZpwGAAC2AqCiYD2oOsEPgYDcABVEcQtABzRHw4lYGDYHh-JEotETQxQmH2AEg6zKSgwLRQQRwZJcVKjK5yWZo-GEiAkxFwgD02RUjny2LgADkICE2LJEqcXo94MhpHIAIxw3RGgBMcNwRoAzHKFXQCFpBPhgD44BSqVgeIllho5PYmXiINUQMAYAH7Lk-uz0VlUBplkyYKHw5G4CGwxG6ACNAASalJZOZtMRz5tHyQyiQlpwMXxpqOZTVXQAK1K0QA1lgmKhaWWYACogRoABRPCIv6N5q5TXOSlsGswADajYAumzOZSeXzl3R7EA

The spread operator creates an unsealed object type which is incompatible with an exact type. Pass props explicitly (as you've noted) or use inexact types.

I see. How does that affect spreading props? I see that this still errors.
class MySecondComponent extends React.Component<SecondComponentProps> {
	render () {
    	        return <FirstComponent {...getFirstComponentProps(this.props)} />
	}
}

function getFirstComponentProps (props): FirstComponentProps {
      return {
            a: props.a,
            b: props.b
      }
}

Really seems like this should work. It would allow the definition for the function that extracts the props the component cares about (getFirstComponentProps) to live next to the corresponding component (FirstComponent), rather than having to rely on passing each prop individually or using non-exact types.

Flow seems to have issues inferring that the result of a spread operation is exact (#2405). A working, temporary, unideal solution is to use the shape of FirstComponentProps:
- class FirstComponent extends React.Component<FirstComponentProps> {}
+ class FirstComponent extends React.Component<$Shape<FirstComponentProps>> {}

Good enough for me, thanks!

Unfortunately this solution does not work when no props are given.

Are exact types a requirement? If spread props are handled explicitly within components, inexact types could be sufficient:
type FooProps = {
  a: number,
  b: number
};

class A extends React.Component<FooProps> {
  render() {
    return <div data-a={this.props.a} data-b={this.props.b} />;
  }
};

type BarProps = {
  c: number
};

type BazProps = FooProps & BarProps;

class B extends React.Component<BazProps> {
  render() {
    return <A {...this.props} />
  }
}

<B a={1} b={2} c={3} />
<B a={1} b={2} c={3} d={4} />

Yes, exact types are worth explicitly passing each prop to the component in my opinion..
I am currently building a UI component library to be used by my entire team and getting errors in real time for mistyped prop names is invaluable.

The spread operator creates an unsealed object type which is incompatible with an exact type. Pass props explicitly (as you've noted) or use inexact types.

What's the rationale for this?  <div {...props}/>; compiles to React.createElement("div", props); so it's not like a copy of props is actually being created.  Also, I would expect that if obj is sealed that {...obj} would also be sealed.

Given the release of Flow 70 with support for object-rest-spread maintaining a seal, I would expect the same to work with jsx-rest-spread. However, it appears not to (even with Object.freeze backflips).
😞

@rattrayalex-stripe I'm glad to hear that object-rest-spread maintains sealed objects in the latest version.  Hopefully it won't too long before jsx-rest-spread does the same.

Seems like this is resolved in the latest 0.71 release!! Closing this issue, thanks everyone!


Typo in 05_torch_connector.ipynb

Summary
Simple feature map -> simple parameterized ansatz
Details and comments
There is a typo in the comments at line 602 in the regression task. A simple parameterized ansatz is initialized in the code cells and not again a feature map.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1851

Relevant Lines:
1997

💛  - Coveralls


Support for array types

Array types in method parameters are currently (hopefully) correct in the raw VTable definitions, but not yet idiomatically represented in the wrapper methods. (Array parameters are taken as raw pointers and just forwarded directly.)
https://msdn.microsoft.com/en-us/library/hh700131.aspx shows how arrays are handled in C++/CX. Also have a look at vccorlib.h (part of Visual Studio installation) for the definitions of Platform::Array, etc.

See also the ComArray type that I have added in comptr.rs

This is mostly done in #24. The only case left is dealing with arrays as output parameters, where a safe API would require a mutable, write-only, empty slice, e.g. in SpiController.read(...).

Maybe it's helpful that the arrays in those remaining cases are always (at least until now) arrays of value types (primitives or structs) ... which means that those arrays are easily constructible (because the elements are Copy). So maybe taking &mut [T] is not too bad after all.


Error: No data found for resource with given identifier

Perhaps you can help me with this, I try to get body from some ajax request on the page, but I all time getting   Error: No data found for resource with given identifier and looks like problem only with this request, maybe I'm missing something
const CDP = require('chrome-remote-interface');

setTimeout(() => {
    CDP(async (client) => {
        const {Network, Page, Runtime} = client;
        Network.requestWillBeSent(({requestId, request}) => {
            if(request.url.indexOf("ct2/results/rpc") != -1){
                console.log(`REQ [${requestId}] ${request.method} ${request.url} \n`);
            }
        });
        Network.responseReceived(async ({requestId, response}) => {
            if(response.url.indexOf("ct2/results/rpc") != -1){
                const {body, base64Encoded} = await Network.getResponseBody({requestId});
                console.log(`RES [${requestId}] body: ${body} \n`);
            }
        });
        try {
            await Promise.all([Network.enable(), Page.enable()]);
            await Page.navigate({url: 'https://clinicaltrials.gov/ct2/results?cond=Parents&term=&cntry1=&state1=&Search=Search&recrs=a#wrapper'});
            await Page.loadEventFired();
            await Runtime.evaluate({
                expression: `document.querySelector('.paginate_button.next').click()`
            });
        } catch (err) {
            console.error(err);
        }
    }).on('error', (err) => {
        console.error(err);
    });
}, 1000);

Thanks.

This happens because AFAIK you're only allowed to call Network.getResponseBody when the Network.loadingFinished event has fired. Unfortunately this event doesn't contain the associated request object so you have to keep track of the requestId for which you want to fetch the response body.
I implemented this in the following using a Set:
const CDP = require('chrome-remote-interface');

setTimeout(() => {
    CDP(async (client) => {
        const {Network, Page, Runtime} = client;

        const requests = new Set(); // <---------- HERE

        Network.requestWillBeSent(({requestId, request}) => {
            if(request.url.indexOf("ct2/results/rpc") != -1){
                console.log(`REQ [${requestId}] ${request.method} ${request.url} \n`);

                requests.add(requestId); // <---------- HERE

            }
        });
        Network.loadingFinished(async ({requestId}) => {

            if (requests.has(requestId)) { // <---------- HERE

                const {body, base64Encoded} = await Network.getResponseBody({requestId});
                console.log(`RES [${requestId}] body: ${body} \n`);
            }
        });
        try {
            await Promise.all([Network.enable(), Page.enable()]);
            await Page.navigate({url: 'https://clinicaltrials.gov/ct2/results?cond=Parents&term=&cntry1=&state1=&Search=Search&recrs=a#wrapper'});
            await Page.loadEventFired();
            await Runtime.evaluate({
                expression: `document.querySelector('.paginate_button.next').click()`
            });
        } catch (err) {
            console.error(err);
        }
    }).on('error', (err) => {
        console.error(err);
    });
}, 1000);

Thank you very much for your help, only you are helping people)

@pmurley that may also happen (if I recall correctly) when you navigate away from the URL then you call Network.getResponseBody on a stale object; possibly not your case.

Wow, you're quick! Yeah, that makes sense, and it's something I should look into a bit more, but I don't think that's what is going on here - at least not in a straightforward way. I'm certainly only calling Page.navigate once to visit the target site.
I guess it could be something caused by some sort of auto-navigation/redirection within a particular frame(?), but if anyone has any other ideas, I'd be grateful!

@pmurley if you can come up with a minimal program that reproduces this issue I could take a look at it.

Here's an example.  at least once.
const CDP = require('chrome-remote-interface');

setTimeout(() => {
    CDP(async (client) => {
        const {Network, Page, Runtime} = client;
        var req_ids = new Set();
        Network.requestWillBeSent(({requestId, request}) => {
            req_ids.add(requestId);
        });
        Network.responseReceived(async ({requestId, response}) => {
        });
        Network.loadingFinished(async ({requestId, response}) => {
            if (req_ids.has(requestId)) {
                try {
                    var response_body = await Network.getResponseBody({requestId});
                } catch (err) {
                    console.log(err);
                    console.log('Why does this happen?');
                }
            } else {
                // I am also confused as to why we sometimes we get here,
                // but this is not my main concern.
                console.log('requestId not seen before');
            }

        });
        try {
            await Promise.all([Network.enable(), Page.enable()]);
            await Page.navigate({url: 'http://cnn.com'});
            await Page.loadEventFired();
        } catch (err) {
            console.error(err);
        }
    }).on('error', (err) => {
        console.error(err);
    });
}, 10000);

This happens because AFAIK you're only allowed to call Network.getResponseBody when the Network.loadingFinished event has fired. Unfortunately this event doesn't contain the associated request object so you have to keep track of the requestId for which you want to fetch the response body.
I implemented this in the following using a Set:
const CDP = require('chrome-remote-interface');

setTimeout(() => {
    CDP(async (client) => {
        const {Network, Page, Runtime} = client;

        const requests = new Set(); // <---------- HERE

        Network.requestWillBeSent(({requestId, request}) => {
            if(request.url.indexOf("ct2/results/rpc") != -1){
                console.log(`REQ [${requestId}] ${request.method} ${request.url} \n`);

                requests.add(requestId); // <---------- HERE

            }
        });
        Network.loadingFinished(async ({requestId}) => {

            if (requests.has(requestId)) { // <---------- HERE

                const {body, base64Encoded} = await Network.getResponseBody({requestId});
                console.log(`RES [${requestId}] body: ${body} \n`);
            }
        });
        try {
            await Promise.all([Network.enable(), Page.enable()]);
            await Page.navigate({url: 'https://clinicaltrials.gov/ct2/results?cond=Parents&term=&cntry1=&state1=&Search=Search&recrs=a#wrapper'});
            await Page.loadEventFired();
            await Runtime.evaluate({
                expression: `document.querySelector('.paginate_button.next').click()`
            });
        } catch (err) {
            console.error(err);
        }
    }).on('error', (err) => {
        console.error(err);
    });
}, 1000);

How to filter url when i use loadingFinished.

@xgj1988 you need to keep track of the actual request URL, e.g., using a Map. In a nutshell:

in Network.requestWillBeSent associate request.url to requestId;
in Network.loadingFinished fetch the URL using requestId as key.

This is off topic though, file a new issue if needed.

@xgj1988 Actually ,I use  webContens.debugger  of electron  ,I couldn't find how to get response body .I found the issue from this page , So i think you  know the electron too. Could you tell me how to get the response body in the electron ?

@xgj1988 in the same way AFAIK, the API should be the same. Anyway I don't know electron at all. :)
Feel free to file a new issue with some minimal working example.

@cyrus-and  Network.getResponseBody how to get requetId?

@xgj1988 as I told you, it's the one that you get in the Network.requestWillBeSent, it's all in the original snippet really.

@cyrus-and  ok I got it . THANKS

@pmurley @xgj1988 did you figure out what causes problem getting response for some requests? i am also facing this in electron. Could you have a look https://stackoverflow.com/questions/66101799/electron-browserwindow-cannot-get-response-when-debugger-is-attached

@maklimcz could it be about caching as mentioned above?

@cyrus-and  nay, I think it isn't loaded from cache because I don't get a Network.requestServedFromCache
I have traced the event stack for this particular request and got:
Network.requestWillBeSentExtraInfo 13548.212
Network.requestWillBeSent 13548.212
Network.responseReceivedExtraInfo 13548.212
Network.responseReceived 13548.212
Network.dataReceived 13548.212 [repeated 135 times]
...
Network.loadingFinished 13548.212

@maklimcz see if you can reproduce this without Electron.

The conclusion that I came to was that any attempt to "sniff"[^1] network packets using the devtools protocol is not reliable. The getResponse* functions may work but when they fail you can't pin it down to anything that you can trace or correct - it's burried somwhere within chromium (more below).
My solution has been to use workaround code - e.g if I need data in the response body and fail to get it then either I find the data on the rendered html page, or I send a fetch request from the app code directly (i.e. rather than asking devtools to ask chrome to fetch it ... and then trying to sniff the response).
I expect that getResponse* are just poorly tested, poorly used parts of devtools and over time bugs are introduced or get resolved which leads to erratic performance i.e. there isn't a large enough community of people relying on them to moan about it. I came to this conclusion based on this stackoverflow post[^2] which talks about various changes to to chromium which have caused requestWillBeSent to omit some headers, as well as a lot of my own failed experimentation[^3]. It's been years since I did any c++ dev though - so I can't say for sure (haven't tried to tack it down in the chromium source).
Hope it helps.
[^1] like Network.getResponseBody, Network.getResponseBodyForInterception on the receiving side, or Network.requestWillBeSent etc on the sending side
[^2] albeit about requestWillBeSent - not getResponse*
[^3] not much of which is public other than intercept image data and my original chromium bug

@cyrus-and @ilanc  it seems i managed to do what I wanted. However I didn't use Network.getResponseBody. I used https://chromedevtools.github.io/devtools-protocol/tot/Fetch/
To use that one need to subscribe for Responses matching a pattern. Then you can react on Fetch.requestPaused events. During that you have direct access to request and indirect to response. To get the response call Fetch.getResponseBody with proper requestId. Below I've pasted a snippet.
dbg.sendCommand('Fetch.enable', {
            patterns: [
                { urlPattern: interestingURLpattern, requestStage: "Response" }
            ]})

   var getResponseJson = async (requestId) => {
         const res = await dbg.sendCommand("Fetch.getResponseBody", {requestId: requestId})
         return JSON.parse(res.base64Encoded ? Buffer.from(res.body, 'base64').toString() : res.body)
     }
    dbg.on('message', (e, m, p) => {
        if(m === 'Fetch.requestPaused') {
            var reqJson = JSON.parse(p.request.postData)
            var resJson = await getResponseJson(p.requestId)
            ...
        }
    });

dbg.sendCommand('Fetch.enable', {

Can you please elaborate  how to run your example.

One thing I found was that it was necessary to ignore 'preflight' requests when calling
Network.on("responseReceived",(async (params) => {
  if (params.type == 'Preflight') return
  const {body} = await Network.getResponseBody(params);
  // Do something with the body
}));

I have discovered that some web sites (like https://nfl.com at time of writing) create mutiple RequestWillBeSent objects for the same URL. Only the first RequestWillBeSent object will allow you to call Network.getResponseBody(...) successfully. The others will result in the "No data found..." error. I haven't thoroughly investigated why you can receive multiple RequestWillBeSent objects for the same URL, but I did notice that the successive RequestWillBeSent objects were of type "script" if you examine the RequestWillBeSent.getInitiator()'s type property, whereas the first one is of type "other". To resolve this problem, I only keep the first RequestWillBeSent for a given URL and discard the others.
Here is some sample output if I add this code when I receive a RequestWillBeSent object:
System.out.println("RequestWillBeSent: " + requestWillBeSent.getRequestId() + " -> " + requestWillBeSent.getRequest().getUrl() + ", " + requestWillBeSent.getInitiator().getType());
RequestWillBeSent: 37A457472C2662A67CB40AFDFE5852AA -> https://www.nfl.com/, other
RequestWillBeSent: 758821.132 -> https://www.nfl.com/, script
RequestWillBeSent: 758821.131 -> https://www.nfl.com/, script

(filtered to show only relevant output)


First os contribution

Added a new learning platform - https://www.codewell.cc/

Please how do I resolve all checks failed ? This is my first open source contribution please. I'll appreciate any form of help so that this doesn't happen again. Thank you.

Hello @TheFlorz ,
First, thank you very much for your possible addition!
It looks like something went wrong with your PullRequest (PR) since i see a redirect, 2 commits and some weird check errors.
I will close this PR and ask you to try to fork the repo again and make a new Pull Request.
I've had a quick search for a little tutorial about it and found this. I hope it helps you with this task.
Kind regards,
Bram


Error with django-overextends with Django 1.8

I'm getting an error with django-overextends using Django 1.8.  I've installed overextends with pip.
django.template.base.InvalidTemplateLibrary: ImportError raised loading overextends.templatetags.overextends_tags: cannot import name find_template_loader

Has anyone been able to get django-overextends to work with Django 1.8?

Looking at https://github.com/stephenmcd/django-overextends/issues/16 and the commit history https://github.com/stephenmcd/django-overextends/commits/master, it appears that Django 1.8 support is in progress (or is possibly complete, but hasn't made it into a release yet).
Closing as this isn't something that we can provide support for (although if no fixed version appears soon, we'll have to come up with an alternative method for custom branding...)

Just to chip in on this - we're using Django 1.8 and found that importing the latest version of django-overextends from Github rather than PyPi works fine.


SoulForge

Mod Name
SoulForge 2.2.5
Mod Homepage
https://modrinth.com/mod/soulforge/version/2.2.5
Minecraft version
1.20.1
Describe the bug
.
Steps to reproduce
start the game - wait for "loading bootstrap resources" - crash
Logs
https://gist.github.com/fb451a1d9aecf7bafcfbd3cdaaca356a.git
Additional context
Mod list:
architectury-9.2.14-forge
cardinal-components-api-5.2.2
Connector-1.0.0-beta.44+1.20.1
fabric-api-0.92.2+1.11.8+1.20.1                         (forgified api if anything...)
modmenu-7.2.2
soulforge-2.2.5

ModMenu is incompatible with Connector

ModMenu is incompatible with Connector

compatible... the buttons are one to one, but you can change them in the config... In any case, it didn't have any effect if you delete it.


Too many confusing notebook scroll settings

Testing #196327
There is notebook.scrolling.revealNextCellOnExecute and notebook.scrolling.experimental.anchorToFocusedCell.
Do we really need to make this configurable? Can't we just figure out what is the optimal behaviour? Do we know how many users actually change these settings?

there has been a lot of appreciation for notebook.scrolling.revealNextCellOnExecute and the experimental setting was intended to let people experiment with other options to provide feedback - it will likely be removed.


RFE: repeat test until it fails

I have a test that is failing due to a rare race condition. There is about 1% chance of failure. I'd like to be able to automate the failure during fixing the bug. It would be good if there was an option to do a test-only and repeat running the test until it fails (with an upper bound).

+1

+1

Hi All,
This sounds like a good job for overriding withFixture. withFixture gets the test body passed in as a function. The test has already started when withFixture is invoked (i.e., the TestStarting event has already been fired). withFixture's job is to invoke that test function, and by default, that's all it does. When the test function returns, the test has not yet completed, so you can change its outcome, including by rerunning it until it fails with an upper bound. This may make a nice addition to ScalaTest itself, but it is achievable with just a few lines of code yourself in the meantime. I'm teaching a class today, but when I'll try and whip up an example and post it yere.

+1


strace: 6.7 -> 6.8

Description of changes
ChangeLog: https://github.com/strace/strace/releases/tag/v6.8

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@OfBorg build pkgsStatic.strace pkgsMusl.strace


crashing on special characters

I can't help but feel like I'm partly to blame for this lol
In game my fremennik name is barrak dräpare, when I talk to an npc like falo the bard who calls  the player by their fremennik name it consistently crashes
snipit from client.log if there's another log or more info I should send your way lmk
2024-05-21 00:00:32 EDT [Client] WARN  d.p.naturalspeech.tts.TextToSpeech - Starting piper for libritts when there are already pipers running for the model.
2024-05-21 00:00:32 EDT [[Piper for libritts with 1 active processes] Piper::processPiperTask Thread] ERROR d.p.naturalspeech.tts.piper.Piper - pid:dead model:libritts.onnx had an unexpected exited, either crashed or terminated by user.
2024-05-21 00:00:32 EDT [[Piper for libritts with 1 active processes] Piper::processPiperTask Thread] ERROR net.runelite.client.RuneLite - Uncaught exception:
java.util.ConcurrentModificationException: null
	at java.base/java.util.HashMap$HashIterator.remove(Unknown Source)
	at dev.phyce.naturalspeech.tts.piper.Piper.processPiperTask(Piper.java:130)
	at java.base/java.lang.Thread.run(Unknown Source)
2024-05-21 00:00:32 EDT [Client] INFO  d.p.n.tts.piper.PiperProcess - D:\appdata\piper\piper.exe --model D:\appdata\piper\models\libritts\libritts.onnx --output-raw --json-input

I have just checked and can confirm that you are not partly to blame for this hahaha (if you're referring to issue #12)
It seems like piper just crashes when it receives the "ä" character. I am not sure if this is an issue with the piper engine itself, or just with that model, I assume English was not trained to understand other characters not included in the english alphabet.
Seems like we need to keep track the accepted character list for each one of the engines/models, and possibly have some replacement characters.
Good find, thanks for reporting.

Good to hear I'm not partly at fault lol
And happy to help, I love the plugin!

Hi @SirFireNewt  !

We found a fix and will do a hotfix to the plugin with version 1.2.5.

It's possible to manually fix the current 1.2.4 Natural Speech by adding a RuneLite configuration.

By adding -Dfile.encoding=UTF8 on a new line inside JVM arguments, we can configure RuneLite to correctly handle the text from the new game update.

https://github.com/runelite/runelite/wiki/RuneLite-Launcher-Configuration


now --alias does not use specified config

Hi!
Thanks for this awesome product, love it :)
I tried to combine the config and alias options with now --config=custom.json --alias but it seems that the code which check the --alias arg and apply it does not read its settings from the configuration file specified with --config.
Most probably here but I haven't fully explored the code yet. It looks like the custom configuration should be passed to readMetadata

--config is meant to be used for the user-configfile that holds the token. Not the one that holds the config for your deployment... :blush:

oh right, so there's no way for specifying an alternative now.json file currently ? Use case: I'd like to have one for staging and another for production.


Make donejs upgrade upgrade all can deps

This makes it so that running donejs upgrade it will check the
compatible version of can's package.json and update any depenencies
that you have therein.
This means if you depend on can-stache you'll get the correctly
upgraded version of can-stache. This is true for ecosystem packages as
well.
Closes #1132 and #1092

Coverage increased (+0.4%) to 96.465% when pulling 51d9054bfee4395b22f80cd85f22050d9b056a34 on upg into e446c1e8798b11ff729e76cda91a49ec9f7445b0 on master.


ERROR (payload): URIError: URI malformed

Link to reproduction
No reproduction as related  to server configuration.
To Reproduce
Deploy Payload to a server running Traefik or similar proxies using Authelia to set a global session for the domain.
Describe the Bug
When deploying Payload to my own server, I have Authelia configured which sets a cookie that applies to the domain .mydomain.com (note the "." in the beginning). Payload's JWT middleware doesn't get along with this, because you use decodeURI() to parse the domain of the cookie value I assume, based on parseCookies.ts#10.
Edit: My initial diagnosis was way off, Authelia's token simply seems to include characters that cause decodeURI to throw in parseCookies.ts#10 so it would be good to have some error handling, e.g. ignore the cookie if it doesn't work, or use the raw value.
I'm not sure why decodeURI() is being used in this case at all. But Payload shouldn't assume it's the only thing setting cookies on the request, as this would lead to bugs when other middleware is part of the request chain.
My stacktrace is the following:
ERROR (payload): URIError: URI malformed
at decodeURI (<anonymous>)
at /home/node/app/node_modules/payload/dist/utilities/parseCookies.js:9:42
at Array.forEach (<anonymous>)
at parseCookies (/home/node/app/node_modules/payload/dist/utilities/parseCookies.js:7:23)
at JwtStrategy._jwtFromRequest (/home/node/app/node_modules/payload/dist/auth/getExtractJWT.js:14:52)
at JwtStrategy.authenticate (/home/node/app/node_modules/passport-jwt/lib/strategy.js:93:22)
at attempt (/home/node/app/node_modules/passport/lib/middleware/authenticate.js:369:16)
at authenticate (/home/node/app/node_modules/passport/lib/middleware/authenticate.js:370:7)
at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/node/app/node_modules/express/lib/router/index.js:328:13)

Payload Version
1.15.6

Thanks for the report!
What we'll do here is wrap the decodeURI function in a try / catch and then only add the result to the parsed cookies if the decodeURI succeeds.
Will get this patched up immediately. Thank you!


is this still updating?

Looks dead

the author said in the Discord channel, that he didn't have any time to maintain this project.
He's now maintaining another project called UnrealEngine-Angelscript.

Rust wasn't good enough for UE? Gotta use AngelScript?

I don't think he's maintaining the Unreal Angelscript fork, I think he just suggested it as a viable option if you want to use a scripting language with Unreal. It is a viable option, I'm using it.
I'd rather use Rust, but it is what it is 🤷

@doppioslash oops, my fault, he's just suggested it as an alternative option for unreal-rust, I misread it.

Ah. Then disregard


Context Menu Capitalization rewording rearranging suggestions

Capitalization and rewording
Show lyrics > Show Lyrics
Search for lyrics > Search Lyrics
Search for lyrics (manually) > Search Lyrics Manually
Edit lyrics > Edit Lyrics
Mark as instrumental > Mark Instrumental

Rearrange to
Search lyrics
Search lyrics (manually)
Mark as instrumental
Edit lyrics
Show lyrics

Why? Please provide some justification for changes you suggest.

Capitalization - Looks cleaner
rewording - Looks shorter
Rearrange
Now
Show lyrics
Search for lyrics
Search for lyrics (manually)
Edit lyrics
Mark as instrumental

to
Search for lyrics                      - Used for bulk auto tagging. and is most used
Search for lyrics (manually)    - Similar options should be together
Mark as instrumental             - Bulk mark songs as Instrumental
Edit lyrics                                 - Most people will use Panel>RightClick>Edit
Show lyrics                              - At the end before people rarely just read lyrics

@jacquesh

@jacquesh reconsider this

@Rexadev Listen. I appreciate your interest in openlyrics and its improvement, but I need you to please:

Not @ me. There is almost never a good reason to @ me on issues in the repo. I already get notifications for everything that happens on this repo, you do not need to @ me. I have seen your messages and either I have replied or I have chosen not to reply. @-ing me serves no purpose other than to generate annoyance. Please stop doing this.
Do not add "[reopen this]", or anything to that effect, to issue titles. Ever. That information belongs in the comments, not in the issue title.
If you want me to reconsider a change that I've previously said I'm not going to do, then you need to provide additional justification. Why do you want this change? What benefit would it provide? Are there other examples of the same thing in other software? etcetc. None of this is specific to openlyrics, or even to open-source software in general. If you want somebody to do something (for free, to your benefit), you need to provide some justification for why they might want to do that.
In this case, you've given some examples and the justification that it "Looks cleaner" or "Looks shorter". I can understand why "looks cleaner" would be beneficial, but its also pretty subjective. "Shorter" isn't subjective, but its also not clear to me that shorter is better in this scenario. You have not provided any further justification for either.
For example, I specifically opted for sentence case over title case because I believe that to be preferable in most cases as per some technical writing guidelines I saw a while back (I don't recall where). You are asking me to change that. I took 10 seconds to search for some resources on when to use which casing strategy (something you apparently did not do, or if you did you neglected to include the results in your comment) and the first result I got was this article from Grammarly claiming that it's partly a matter of preference and title case is usually used in more formal settings (which is not what openlyrics is). Another thing you could have taken 10 seconds to do is see what the result of fb2k does and try to use a consistency argument. For example the fb2k "File" menu contains the options "New playlist", "Load playlist" and "Save playlist". This also supports my choice of sentence case. Of course there are other examples that use Title Case (such as the tree entries in Preferences: "Keyboard Shortcuts", "Context Menu" etc), but at the very least it means there is precedent for using either (and the Sentence case examples are possibly more applicable because they're menu items).

Constructing justified responses like this takes time. I need to protect my time but I'm also trying not to block you from this repo because as I say, I appreciate your interest. However you have been warned about this sort of thing in the past. If you continue to waste my time with low-effort and often minimally-justified requests for me to do work that is of questionable value, I will be forced to block you.


Exam mode: Improve action details

Checklist
General

[ ] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[x] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[x] I chose a title conforming to the naming conventions for pull requests.

Client

[x] I followed the coding and design guidelines and ensured that the layout is responsive.
[x] Following the theming guidelines, I specified colors only in the theming variable files and checked that the changes look consistent in both the light and the dark theme.
[x] I added multiple screenshots/screencasts of my UI changes.
[x] I translated all newly inserted strings into English and German.

Motivation and Context

Since the text doesn't look as nice as badges, I replaced the text with badges and icons.
Description

Replaced text with badges

Steps for Testing

Prerequisites:

1 Instructor
One/Multiple Student
1 Exam

Log in to Artemis
Create an Exam with Exam Live Statistics enabled
Participate with the student
Verify that the exercise section and activity section shows the correct data
Verify that the badges work as expected

Review Progress

Code Review

[ ] Review 1
[ ] Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Screenshots

Could you also include translations for the categories (e.g. already done in assessmentType.json for the assessment types)

At the moment this is not planned, but we can think about adding translations in the future (which imo is not necessary, as the actions are implementation specific data that does not need a German translation). Adding translations needs additional refactoring which is out of scope of this PR.


Is the conventional-commit specifications for commit bodies not supported or am I using it wrong?

Making a commit like this:
fix: this is a test commit

Here we add some more context.

According to the conventional-commit specs this should appear in the changelog/release-notes.

Unfortunately the commit body will not show up 😔 (from what I can see the same goes for commit footers)
Is this my fault on misunderstanding how it is supposed to work, or does release-please simply not support this?
My setup is a github action release-please workflow for a node project

Release-please only uses the main portion of the commit message. Often, the extended context is extremely long and actually irrelevant or distracting to the release notes.
As it currently exists for most languages, we use the conventional commit message for the initial blurb and a link to the PR/commit which should give a reader more context if they choose to look deeper.

@chingor13 alright. Is there any other quick way to add some context to a changelog entry as an alternative?
Sometimes one line is just not enough to explain a change :D

@chingor13 Can we make a special case for BEGIN_COMMIT_OVERRIDE, END_COMMIT_OVERRIDE blocks? So we can at least use this feature to generate a long description for the changelog entry we want. Also it could be a nice work around for the issue https://github.com/googleapis/release-please/issues/877

This should be configurable. You may think this feature makes no sense, and I may not live without it. Conventional commits spec allows bodies for better explanation of what the feature is about. This coupled with the inability to manually edit changelogs makes them very user unfriendly (for the people reading the changelogs I mean)


[nxdata] Make debugging information available when parsing

Up to now, attempting to parse an invalid NXdata group caused a TypeError. Debugging information about why the group was invalid NXdata was simply logged.
This PR changes this behavior, the  error should no longer be raised on object instantiation, but only when trying to access the actual invalid data. A new is_valid is also added to the object.
Previously one would need to write:
try:
    nxd = NXdata(group)
except TypeError:
    signal = None
else:
    signal = nxd.signal

The same behavior would now be achieved using:
nxd = NXdata(group)
signal = None if not nxd.is_valid else  nxd.signal

Additionally, the object will store error messages for malformed NXdata groups.
if not nxd.is_valid:
    for i, err_msg in enumerate(nxd.issues):
        print("malformation %d: %s" % (i, err_msg))

Note : this can be considered an small API change, for users who relied on a TypeError being raised for malformed NXdata. I'm hoping that very few users started using the NXdata class, and that most of them tested the validity before creating the object, rather than catching the error.

LGTM