JENKINS_OPTS in docker-compose not reliable

Version report
Jenkins and plugins versions report:

Jenkins version: 2.235.4

What Operating System are you using (both controller, and any agents involved in the problem)?

`Ubuntu 20.04`

Reproduction steps

Hi, I'm running Jenkins with reverse proxy (nginx) in a Docker compose setup.
I want to save build job logs in a volume, but in order to do that I need the JENKINS_OPTS=--logfile=/var/log/jenkins/jenkins.log and since I'm using a proxy I also need the --prefix=/jenkins.
What I've noticed is that I cannot use the JENKINS_OPTS as found in doc or in other blog posts. In order to get --prefix=/jenkins to work I need and extra options in front, like this:
#WORKS
...
environment:
    - JENKINS_OPTS=${JENKINS_OPTS:-"--prefix=/jenkins"}
...

When I use this method I can successfully reach my jenkins https://INSTANCE/jenkins, but I'm not able to add multiple options, e.g --logfile=/var/log/jenkins/jenkins.log...
I've also tried:
Attempt 1
...
environment:
    - JENKINS_OPTS=${JENKINS_OPTS:-"--prefix=/jenkins --logfile=/var/log/jenkins/jenkins.log"}
...

Attempt 2
...
environment:
    - JENKINS_OPTS="--prefix=/jenkins --logfile=/var/log/jenkins/jenkins.log"
...

Attempt 3
I've also tried to add the ENV JENKINS_OPTS="--prefix=/jenkins --logfile=/var/log/jenkins/jenkins.log in my Dockerfile where I build a custom Jenkins image based on your Ubuntu 20.04.

@FF186 Please try https://github.com/jenkinsci/docker/pull/1292

When using docker-compose (e.g. when a YAML file is parsed), the environment has a different behavior than in shell (and even different behaviors between the dictionnary and array notations).
The correct way is to NOT use double quotes by default as the usual YAML specific character are not expected to start the line for either JAVA_OPTS or JENKINS_OPTS.
You can find a working example here: https://github.com/dduportal/cd-summit-ams-2016/blob/f710b5123a06f9f1dbe8ba50cff1aea9236b0618/docker-compose.yml#L14-L27
I'm not sure about the Dockerfile ENV case, but it looks to me that it is interpolated by Docker build's system, and not by a shell, so double quote are not expected either.
Closing is is solved: please feel free to reopen if you feel like there is still an issue (and you can provide more details).


Aim for 90% + Test Coverage

For V1.5rc everyone tries to increase coverage by having a look at the lines missed in coverall's

Checked Email Feature tests and added few more. 89 % right now.


API Available registration methods are now rendered with their thumbnails and information

Resolves #34
We've decided that since more than 3 verification methods is unlikely in a project, we won't bother trying to constrain the designs too much to fit into the same column as the first row's first method. This is designed to handle two or three authenticators nicely. Project code can adjust the CSS for this easily to make four look good in two rows or two (for example) if they want to.
One method:

One method selected:

Two methods:

Three methods:

Hover/focus state:

Unavailable/unsupported state (with mock data):

Four methods (unlikely):

Five methods (unlikely):

Six methods (unlikely):

Also missing media queries for smaller viewports

I have a semantics suggestion for the 4 authenticators scenario. You can apply a class in React:
SelectMethod.js:78
    // Specify 2 columns if theres a number of methods that's a multiple of 2 but not also 3.
    const containerClass = classNames('mfa-method-tile__container', {
      'two-columns': (methods.length % 2 === 0) && (methods.length % 3 !== 0)
    });

And then adjust the styling to use this:
MethodTile.scss:7
  .two-columns & {
    flex-basis: calc(50% - (#{$tile-spacing} / 2));
  }


DeFi, NFT, Game and other dApps on Meter Network

Prize Bounty
Total price pool of $15k value in $MTRG paid out in the Meter network.  Please provide your Meter mainnet address in the submission. The exact amount will be based on the price at the time of the payment.

First Prize - $7000
Second Prize - $5000
Third Prize - $3000

Challenge Description
Develop DeFi, NFT, Game, and other dApps on Meter Network.
This is a contest to invite developers to build creative dApps on the Meter network. The goal is to foster the BUDL activities and the developer ecosystem on the Meter network.  Meter is one of the most decentralized and fastest Ethereum scaling frameworks.  In addition, it is the only Ethereum scaling solution that is front-running resistant.
Submission requirements
You could either fork an existing project or create your own original work. Submissions have to be open sourced with the full source code available on GitHub.  You must provide a link to a fully functional demo of the app either on Meter Testnet or mainnet (mainnet is preferred).
A description of the application and functionality has to be included in the GitHub repo.
Judging Criteria
The prize will be awarded to the individual/team that produces the best approach and the most user-friendly web3 application while respecting the challenge description, goals, and criteria.
We will host a live demo day and have each team present their project on May 25th.  A group of judge and the community will vote for their favorite projects
Resources
Everything you need to start building on Meter - https://docs.meter.io/developer-documentation/introduction
Remix - https://docs.meter.io/developer-documentation/interacting-with-meter-with-remix
Web3 API - https://docs.meter.io/developer-documentation/meterify-api
dApp tutorials - https://docs.meter.io/developer-documentation/meter-dapp-tutorials
Github - https://github.com/meterio
Community tutorials - https://github.com/meterio/meter_docs/tree/main/tutorials
Interoperability guide - http://github.com/meterio/token-list
Any questions, need additional resources or technical support
a. Telegram - https://t.me/Meter_IO
b. Discord - https://discordapp.com/invite/WPjTpMG

use issue 6 instead


Mix.json in production

Hi Jeffrey
I played a little bit with laravel-mix and I really love it so far.
But how would you use it in production?
I normally compiled everything locally, so I don't have to compile the scripts on deployment.
That worked really great with Laravel Elixir.
Now I need access to the Mix.json if I use .version()or .extract().
Sure I can move it to another folder with .setCachePath() and add it to git.
But the file is in my case over 6MB.
Therefore I tried to lower the file size. I saw that even the source code is in that file. Changing the the stats property in the webpack.config.js just changes the console output on compile, but not the Mix.json content.
What's your opinion?
Is it possible to optimize the Mix.json file?
Is the source code in that file necessary? If yes, also for production?
Just ask if I didn't provide enough information! 😊

To clarify why I need the Mix.json file: I'm using your mix() helper which needs that file.
function mix($path, $json = false, $shouldHotReload = false)
{
    if (! $json) static $json;
    if (! $shouldHotReload) static $shouldHotReload;

    if (! $json) {
        $manifestPath = storage_path('framework/cache/Mix.json');
        $shouldHotReload = file_exists(storage_path('framework/cache/hot'));

        if (! file_exists($manifestPath)) {
            throw new Exception(
                'The Laravel Mix manifest file does not exist. ' .
                'Please run "npm run webpack" and try again.'
            );
        }

        $json = json_decode(file_get_contents($manifestPath), true);
    }

    $path = collect($json['assetsByChunkName'])
        ->flatten()
        ->first(function ($compiledFile) use ($path, $json) {
            $compiledFile = trim(str_replace($json['hash'].'.', '', $compiledFile), '/');

            return $compiledFile === trim($path, '/');
        });

    return $shouldHotReload ? "http://localhost:8080{$path}" : url($path);
}

And that helper just need so few information from the Mix.json file.

Ok I changed the output by changing following line in the webpack config from:
    this.plugin('done', stats => Mix.manifest.write(stats));

to:
    function() {
        this.plugin('done', stats => {
            new Mix.File(Mix.manifest.path).write(
                JSON.stringify(stats.toJson({
                    hash: true,
                    version: false,
                    timings: false,
                    children: false,
                    errors: false,
                    modules: false,
                    source: false
                }))
            );
        });
    },

As you see, I just modify your Manifest.write() method a little bit by passing a configuration to the toJson() method.

Yeah, we need to update the manifest contents to be much smaller. I'll do that today.


async function does not working proparly

I tryed to test a little unit that handle dispatches after promise returned in a sync way, but for some reason, I am always get an empty actions array from store.getActions(). Can someone help me?
btw, the action is:
export function firstRefresh(instrumentId)
{
  return dispatch =>
  {
    Router.refresh(instrumentId, 0)
      .then((data) =>
      {
        try
        {
          dispatch(setAssetsByMarkets(data.assetsByMarketsObj));
          dispatch(setAssetsAndOptionsFirstTime(data));
          dispatch(setMarkets(data.markets));
        }
        catch (error)
        {
          console.error('an error catched: ', error);
        }
      }).catch( () =>
      {
        dispatch(setAssetsAndOptions({assets : [], options : []}));
      });
  };
}

and the test is:
describe('async actions', () => {
  it('firstRefresh success', () => {
    const instrumentId = ...,
      serverUrl =...,
      serverPostPath = ...,
      timeStamp = new Date().getTime(),
      replayStatusCode = 200,
      mockReplayBody = {...
      },
      requestHeaders = {
        reqheaders: {...}
      },
      requestBody = {...
      },
      store = mockStore(storeInitialState)

    nock(serverUrl, requestHeaders)
      .post(serverPostPath)
      .reply(replayStatusCode, {body: mockReplayBody})

    const expectedActions = [
      {
        type: 'SET_ASSETS_BY_MARKETS',
        value: mockReplayBody.assetsByMarketsObj
      }, {
        type: 'SET_ASSETS_AND_OPTIONS_FIRST_TIME',
        data: mockReplayBody
      }, {
        type: 'UPDATE_MARKETS',
        value: mockReplayBody.markets
      }
    ]

    store.dispatch(actions.firstRefresh(instrumentId))
    expect(store.getActions()).toEqual(expectedActions)
  })
})

Looks like 'Router.refresh(instrumentId, 0)' is not resolved and as result no actions dispatched. You need to mock this function to ensure that testing workflow is correct.

By doing
nock(serverUrl, requestHeaders)
      .post(serverPostPath)
      .reply(replayStatusCode, {body: mockReplayBody})

I am simulate the ajax call that occur inside the Router.refresh method, So in my opinion, I am curry of resolving, and that is why I don't understand what is wrong in my test unit code.
Btw, thanks for answersing.

Always welcome!
Can you please provide a code for 'Router.refresh' method. Problems with unresonved promises are thr most typical kn such cases. Yiu can also debug(or console log) test to ensure that Test is calling the dispatch.

This is the Reouter.refresh code,
static refresh(instrumentId, timeStamp)
    {
        return new Promise((resolve, reject) =>
        {
            const _timeStamp = timeStamp;
            const _instrumentId = instrumentId;
            const body = { ... };

            const ajaxPromise = AjaxWrapper.executeAjax('POST',
                someUrl,
                someHeaders,
                JSON.stringify(body),
                'json');

            ajaxPromise.then((data) =>
            {
                try
                {
                    // do some proccessing on the recived data ...

                    resolve({
                        // keys .. : values ..
                    });
                }
                catch (error)
                {
                   console.error('Error occourd in Router.refresh: ', error);
                }
            }).catch( () => { reject({}); });
        });
    }

wait for continue

In this case expect will be called before the promise callback call, because of the async behaviour of promises.
store.dispatch(actions.firstRefresh(instrumentId))
expect(store.getActions()).toEqual(expectedActions)

What you need to do is to call expect after store.dispatch promise resolved:
return store.dispatch(actions.firstRefresh(instrumentId))
    .then(() => {
      expect(store.getActions()).toEqual(expectedActions)
    })

See the documentation for async actions:
http://redux.js.org/docs/recipes/WritingTests.html#async-action-creators
http://arnaudbenard.com/redux-mock-store/


Serve logo locally

This won't work when the site is deployed. We might need a static folder for vercel right?


Callback for processor should send a class to split the request in different moments

You can have a better idea of what we mean with https://github.com/cheminfo/rest-on-couch/tree/master/src/import (see ImportContext and ImportResult classes).

@targos @lpatiny this was the previous code
const processB1505: ProcessorType = (content, filename, username) => {
  const value = content.toString();
  const analyses = fromB1505(value);
  return analyses.map((analysis) => {
    const jcamp = toJcamp(analysis);
    return {
      file: jcamp,
      sampleCode: [filename],
      filename: `${filename}.jdx`,
      username: username ?? filename,
    };
  });
};

Is this somehow what you want?
const processB1505 = (Processor) => {
  const processor = Processor({ topic: 'b1505' });
  processor.setUsername(username => username ?? filename);

  const { content, filename } = processor.getNextFile()
  const value = content.toString();
  const analyses = fromB1505(value);

  for (const analysis of analyses) {
    const jcamp = toJcamp(analysis);
    processor.addFile({ file: jcamp, filename: `${filename}.jdx`, sampleCode: [filename] });
  }
  return processor.done();
};

Not sure if the processor needs to have access to a Processor object.
Here is a hackmd for discussion that can be changed / imrpvoed
https://hackmd.io/eK4OEThHRmacqnLTOxAdjQ

I will have a look tomorrow


Unstable subscriptions / No reconnections

Describe the bug
If establishing a connection to the GraphQL websocket fails, URQL does not try again and the only way to attempt is to refresh the page. It also seems to timeout subscriptions after some time to the point where a refresh is required again.
I am the only one using the server, it's not under any load as I am running very basic queries.

Expected behavior
If the first attempt to establish a websocket fails URQL should try again.
Additional context
I anecdotally have never had this problem with apollo-client so it feels like this is URQL specific. I noticed a somewhat similar issue, albeit it different here: https://github.com/FormidableLabs/urql/issues/316
I am using a wss:// websocket but I have run this setup multiple times and all other connections are stable.
I've started this issue as-is and will report back on my findings / open to help or insight from others to potentially configuring URQL to behave differently here also.

Hey @tsujp
I've tried locally to do this with a ws:// connection. This seems to work perfectly the client keeps reconnecting until it's allowed. Are there any more details you could share about the problem, a reproduction would be awesome but I know it's not particularly easy to isolate cases like these.
Could you try it out with a normal ws:// connection and report back if your issue is still present, if it's still present we can isolate the issue to configuration/... Else we'll have to start looking at wss:// as the possible problem.

Closing due to inactivity.
To reiterate on this, we don't develop subscription-transport-ws, so we can't really point out the specifics on what may go on, especially if we don't have a reproduction 😅
For questions unrelated to urql and its development, maybe our Spectrum would be a better destination?


fix: update exceptions.py

The pip install message was wrong.
before:
...Try to run `pip install p[dw]lib[{hasher}]...

after:
...Try to run `pip install pwdlib[{hasher}]...

Ah nice catch, thanks 🙏


Challenges with DAPHNE container images from DockerHub

We have made quite some progress with the DAPHNE containers recently to make DAPHNE run on various platforms (thanks to @corepointer). I know that the support is not yet meant to be 100% user-friendly, and that there are certain difficulties with different flavors of DAPHNE (e.g., with/without CUDA etc.).
I have tried using the DAPHNE container images available on DockerHub to obtain an environment for building and running DAPHNE. I followed the documentation in doc/GettingStarted.md and containers/Readme.md as far as possible. Unfortunately, the container images on DockerHub are currently not usable out of the box. We should fix this, since these container images can simplify the life of users and developers significantly (and we are currently getting several new users/developers, TU Berlin students).
tl;dr Required action points

Rebuild both container images and push the updates to DockerHub:

daphne-dev: needs at least pandas and Eigen3.
daphne-dev-interactive: needs at least git, pandas, and Eigen3.

Make the scripts for starting the containers work out of the box (for a typical case of working of the main branch).
Fix the problems with the user identity inside the container.
Update the documentation accordingly (which is a separate topic).

Here are a few more details:
Problem 1: containers/run-docker-example.sh (the script for running the containers) doesn't work out of the box. I know it's meant to be customized by users, but this is too difficult for a new user/developer. We should provide a working variant for the common case.
Details:

I pulled the images bydocker pull daphne-dev
docker pull daphne-dev-interactive

Then I tried running daphne-dev by ./containers/run-docker-example.sh, but that yielded the following error:docker: invalid reference format.
See 'docker run --help'.

As a quick fix, I removed the "$DEVICE_FLAGS" in the docker run command.
After that, running ./containers/run-docker-example.sh succeeded, but the command immediately finished. As a user, I would have expected to be in the container. I fixed this by adding -it to the docker run command (but that may not be desired in all cases).
After that, by running ./containers/run-docker-example.sh I ended up in the container. However, the outputUse this as an example to start DAPHNE docker containers. Copy and customize for the various flavors.
groups: cannot find name for group ID 1000
I have no name!@60b4d4a9fe94:/home/<...>/prototype$

suggests that something went wrong with the user/group. In any case, it looks suspicious. Nevertheless, I could execute commands inside the container.

Problem 2: The container image daphne-dev doesn't work out of the box; at least we need to rebuild it with Eigen3 and pandas.
Details:

I tried building DAPHNE by ./build.sh --no-deps --installPrefix /usr/local as specified in the docs. That failed due to missing Eigen3:CMake Error at CMakeLists.txt:132 (find_package):
 By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
 asked CMake to find a package configuration file provided by "Eigen3", but
 CMake did not find one.

  Could not find a package configuration file provided by "Eigen3" with any
  of the following names:

    Eigen3Config.cmake
    eigen3-config.cmake

  Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
  "Eigen3_DIR" to a directory containing one of the above files.  If "Eigen3"
  provides a separate development package or SDK, be sure it has been
  installed.

I assume that is because Eigen has recently been added as a dependency, but the container image may not have been updated?
To have a fresh start, I executed ./build.sh --cleanAll.
Then I tried building everything from source by ./build.sh, which finished successfully (well, actually it failed initially since the URL we downloaded Arrow 11.0 from has become invalid, but I have already fixed this in cb3071c2a30c66ab8516af6d1c58016a058312e2)
Executing some DAPHNE script worked: bin/daphne scripts/examples/hello-world.daph.
Running the tests by ./test.sh failed, because pandas is missing in the container (probably we need a rebuild/repush of the container image for that as well).
I tried installing pandas in the container, but that failed because the default container user doesn't have the rights and sudo is missing. But okay, for such purposes we have the daphne-dev-interactive container...

Problem 3: The container image daphne-dev-interactive doesn't work out of the box; at least we need to rebuild it with Eigen3, pandas, and git.
Details:

I tried the same steps as above in the other container image.
A first attempt of ./build.sh --no-deps --installPrefix /usr/local worked, but I assume this was only because the build artifacts were still around.
Then I tried ./build.sh, which failed with ./build.sh: line 820: git: command not found. Same for ./test.sh.
However, running some DaphneDSL scripts worked: bin/daphne scripts/examples/hello-world.daph.
./build.sh --cleanAll started doing something, then it also failed due to missing git.
After that, ./build.sh --no-deps --installPrefix /usr/local failed due to missing Eigen3.
I also tried installing git by apt install git, but the user doesn't have the permissions. I tried sudo apt install git (this container has sudo), but it failed with sudo: you do not exist in the passwd database, probably due to problems with the user identity.

I have also tried building the containers locally, but also found it not to work out of the box...

@corepointer: Could you update the container images on DockerHub as follows, please?

add Eigen3 and pandas (both containers, I guess it just needs a rebuild of the containers)
add git (for daphne-dev-interactive, I guess it requires a little update to a Dockerfile as well)

I hope that doesn't cause any inconvenience. After that, I could also try to fix the remaining issues, but it's surely a good idea to coordinate on this, because the containers are used in multiple places, and you are the expert there :) .

Thx for testing and reporting @pdamme! Just a moment too early - I've not gotten around to pushing the latest developments in containers yet. Otherwise many of the found issues would have not happened. Git, pandas, Eigen3 will all be there (the latter two are only in the github-actions image atm), as will be the  documentation to use the images.

Thanks for the quick response! Sounds very good, I'm looking forward to these updates and will try it again once they are available. Do you think you could make it within the next few days? (Just so that our students can get started more easily.)

Yes, it'll be ready soon© I'll notify you.

Thanks a lot! In the meantime, instructions for a temporary solution with DAPHNE in docker containers can be found in a branch: https://github.com/daphne-eu/daphne/tree/containers-tmp/containers-tmp . This is a reduced variant of the scripts in your PR #534. So take your time to finish your work on the containers :) .


export-installation --target vs import-installation --target arguments differ, causing confusion for users of om

When using om to test backup and restore of Ops Manager, we noticed that the export-installation command did not require us to prefix the Ops Man target value with https://, but when running import-installation, we had to prefix the value with https:// in order for the command to work.
It would be nice to have consistency across these commands in order to improve usability. I can craft a PR for this later today.
 It appears that this should have been fixed since v0.21.0: https://github.com/pivotal-cf/om/blob/master/network/unauthenticated_client.go#L46-L48
Regards,
Dave

Thanks for the bringing this up @dave-malone !
It seems that this line is the issue, as it returns empty scheme and empty host for targets without the "https://" prefix, and then the scheme will be set to "https" but the host is now empty. GoPlayground
Feel free to submit a PR and we'll take a look at it.


Segmentation fault when loading php-fpm with pinpoint.so

Describe the bug
I'm faced with the error "Segmentation fault (core dumped)" when I try to execute the php-fpm with the extension "skywalking.so" activated
To Reproduce
Run php-fpm while the extension skywalking.so is activated
CentOS: 8.1
PHP: 7.4.15
Apache: 2.4.46
Skywalking: 8.2

A very good question, but I have to remind you that this is skywalking

OOps... I just wrote it wrong... but it is really skywalking.so... sorry for the typo, edited my initial comment too

retry 4.1.2


Typo in llama-cpp-server readme

See https://github.com/containers/ai-lab-recipes/tree/main/model_servers/llamacpp_python#llamacpp_python-model-sever

@jeffmaury can you let us know what the typo is? Nothing is jumping out at me

Sever instead of server


debug.breakpoints always returns empty list after reopening vscode

Issue Type: Bug
problem summary
As title.  debug.breakpoints always returns empty list after I reopen vscode.
Reproduce steps:

in a webview, create a button. Add callback to the button so that after clicking the button, console.log this:
debug.breakpoints
open a python file and put some breakpoints in it. Make sure they are enabled. Then close vscode.
open vscode. Make sure the breakpoints are still enabled. Then click the button in step one.

Expected:
console.log should show some Breakpoints in an Array.
Actual result:
There are no breakpoints in the Array.
If I click the button for second time, console.log shows the correct breakpoints in the Array.
VS Code version: Version: 1.55.2021071201
OS: Darwin x64 20.5.0
OS version: macOS Big Sur version 11.4 (20F71)

This is the expected behavior: first access triggers the loading of breakpoints from VS Code to extension. Due to asynchronous communication between VS Code and extensions, breakpoints are not available on first access.
We need to document this behaviour.

thank you @weinand for quick and clear answer. That makes sense to me. I found a solution to call the function when we render the UI first. This solves the problem.


processing a image file filed

python .\Python\process.py AFS COI-page-001.jpg myfil
e -rtf
Traceback (most recent call last):
File ".\Python\process.py", line 8, in
import MultipartPostHandler
File "C:\Python\MultipartPostHandler.py", line 73
raise TypeError, "not a valid non-string sequence or mapping object", traceb
ack
^
SyntaxError: invalid syntax

The original code is here https://github.com/abbyysdk/ocrsdk.com/blob/master/Python/MultipartPostHandler.py#L73 and there the word traceback in fully on one line. The error message you have says the word somehow got split into two words traceb and ack.


⚠ Samsung has degraded performance

In 40ab465, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2075 ms

Resolved: Samsung performance has improved in 4dcefe6.


Storybook: Header component

Description
I've created the Header component with Logo, shopping cart, favorite heart, login icon and text it display (such as 'Log in' and 'Hello {username}').
Fixes #4
How to test?
npm run storybook
Checklist

[ ] I have performed a self-review of my own code
[ ] I have followed the name conventions for CSS Classnames and filenames, Components names and filenames, Style filenames, if you are in doubt check the the project README.MD and here https://github.com/HackYourFuture-CPH/curriculum/blob/master/review/review-checklist.md
[ ] I have commented my code, particularly in hard-to-understand areas, if you code was simple enough mark the box anyway
[ ] I have made corresponding changes to the documentation, if you code was simple enough mark the box anyway
[ ] This PR is ready to be merged and not breaking any other functionality

Please disregard these two first commits as they belong to another branch.

Hi. @NataliaS1994
Remember to create your branch off of develop - always.
So
git checkout develop
git checkout -b feature/<branchname>

Otherwise we spent too much time untangling things


Use semver compliant version in library.properties

Non-semver compliant version value causes the Arduino IDE to display warnings:
Invalid version found: 1.1.02

This can be especially confusing for users since the Arduino IDE doesn't say which library is the source of the problem.
References:

https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#libraryproperties-file-format
https://semver.org/

Thanks for pointing at this - Changed to version 1.1.2


Schiphol Airport (Independent Publisher)

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[x] I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
[ x] I attest that the connector works and I verified by deploying and testing all the operations.
[ x] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[ x] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[ x] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[ x] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[ x] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[ x] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[ x] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[ ] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

Congratulations on your first Independent Publisher connector @Miesjh! Thank you for your contribution :)

Hi @Miesjh! Can you please fix the minor changes from the latest comments? Thanks in advance!

Hi @Miesjh! Can you please fix the minor changes from the latest comments? Thanks in advance!

I did. What are you missing?

Hi @Miesjh! Please check new comments and resolve once fixes are done.

Hi @Miesjh! Can you please fix the minor changes from the latest comments? Thanks in advance!

I did. What are you missing?

@Miesjh We are preparing your connector for production deployment and will queue up for the next deployment schedule. Once your connector onboards the next deployment schedule, it starts to deploy your connector in our production environments that typically takes 3-4 weeks. Please note that the documentation for your connector will not be generated until the deployment process is in the final steps. Thanks.

[[certify-connector]]

[[certify-connector]]

Hello @Miesjh,
I hope you are doing well.
Your connector is in production deployment and queued up for the next deployment schedule. This process typically takes 3-4 weeks. Please note that the documentation for your connector will not be generated until the deployment process is in the final steps.
Please let us know if you have any questions.
Thank you very much for working with us.

@Miesjh Congratulations! The deployment of your connector and documentation page is now complete, We have a short survey on the connector certification process that we would like for you to complete. Your feedback is appreciated and will help us improve the program, Thanks.


Contact which doesn't have any company is Receiving Notification.

Describe the bug
Previously there was contact with same name, email and phone no. I have deleted that contact and created new contact with same details. Now given access to newly created contact.
Screenshots

Resolved

Now newly created user is not getting notification whenever new project gets created.. @mitulpanch


Waymo training set preprocessing

I'm trying to preprocess the waymo training data, however it looks like when I try to generate the info files using create_data.py I'm running out of memory when trying to pickle the info:
train  split  exist frame num: 158081
100%|##############################################################################################################################| 158081/158081 [13:12<00:00, 199.36it/s]
sample: 158081
Killed

My machine has 256 GB RAM; does generating the training info file really require more than that, or is there something else I am not understanding?

does generating the training info file really require more than that

it doesn't. The pkl file should be smaller than 900 mb.

Really? I was getting a pkl file of 60 GB with 100000 frames. Any idea why that is?

Actually I realized I added extra info to the pkl files, that must be why the are so much bigger.


chore: removed hilary-deps base image (no longer needed)

This change is

This has been done here: https://github.com/oaeproject/Hilary/pull/1725


updated config.rb to activate asset_hash

We host our api docs on s3 and cache with max-age=one-year-in-seconds. In order to do this we had to add activate: asset_hash to the config. It works as is.
Any reason this shouldn't be a default config?

Don't see why not? Thanks!


Release 0.5.0

Maintenance release 0.5.0 for python 3.7 end-of-life.
Python 3.7 is removed from:

package metadata, support
estimator metadata
CI and tests
documentation

Codecov Report

Merging #200 (17ede20) into main (f37ac01) will decrease coverage by 0.04%.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #200      +/-   ##
==========================================
- Coverage   82.41%   82.37%   -0.04%
==========================================
  Files          43       43
  Lines        2832     2832
==========================================
- Hits         2334     2333       -1
- Misses        498      499       +1

see 1 file with indirect coverage changes


[BUG]: Unknown Network Error

Is there an existing issue for this bug?

[X] I have searched for this issue

Description of the bug

After bot is firing I am getting an unknown network error.
I am using this version 60e88dd
Steps to reproduce
I am just running a rats command and after the time hits for the request date and I run the list command I am getting an unknown network error. I have tested with a few different venue IDs.
rats -v XXXX-resD 2024:03:13 -resT 20:00 -ps 2 -reqD 2024:03:04:13:10
System Specs
Windows - Git Bash
Additional Context
No response

As previously noted I'm pretty busy atm, but I've taken a quick look at this bug. The network error occurs on line 366 in api/resy/api.go . The status code returned is 500. For anyone whose looked in the source files, this occurs at the config step of the reserve api operation. I checked to make sure the api key in the codebase is still valid and tried adding a user agent header. These didn't fix the issue. Given that the previous operations succeeded but this one fails, and the other investigating I've done, I see two possible issues. 1) The API for the config step has changed, I'll perform some analysis on this the next free moment I have. 2) Resy has increased their use of Captcha, and this is blocking the bot. This is way more probable, since the previous network calls succeed, so it would be weird for this one step to change APIs, and a very fast analysis using firefox network tab showed that that headers are still all pretty much the same :( . In this first case, maybe we can submit a patch, but the second requires a lot of work to get around, so I'd say the bot will be down for at a minimum three more weeks and at an estimated maximum a half year. Sorry.


Changes for the empty layer creation

There were errors with using the dipole annotator with tomoslice. With these changes to the empty layer creation, we can use dipole annotator in tomoslice.

Hey @aysecanuenal ! It looks like your PR includes commits from #248 which has already been merged
Whilst probably salvage-able it'll be a bit messy - I would probably

update my main branch
start a new branch
add the set of changes to fix empty layer creation (possibly fixed by me in #251?)
open a new PR with those changes

Sound good?

Yes, sounds great, thank you very much. I did as you suggested. This was, as you can see with closing reopening and such, my github learning experience, how to (and not to) use it, I got it now - the new one looks better


Testing for covering edge-cases

Up to $98\%$ and I'll close this issue for now. Obtain a hundred percent in a future issue.


feat(openapi): redesigned params table

This PR builds on https://github.com/cloud-annotations/docusaurus-openapi/pull/211, we should likely review that first and then subsequent PRs.
What's new

Adds ApiItem/ParamsTable component to docusaurus-theme-openapi

This component renders the individual param sections (query params, params, headers, and cookies)

Adds ApiItem/ContentSection component to docusaurus-theme-openapi

This component is an internal component used by the param sections and eventually the responses and request body sections.

Re-enables the theme toggle to the demo

We should be able to toggle the light/dark theme to see the display of the components

This looks really nice, but I would rather keep the default theme to look as close to the default Docusaurus theme as possible (even if it doesn’t look as good), but provide an easy way for people to customize the look and feel to match this if they wanted. We could also provide a second theme that looks like this, but will also change the look and feel of the rest of Docusaurus to match?

I think the only constraint with an additional theme, is that a lot of the logic responsibility is coupled with the theme and the components within it. An additional theme would increase the complexity and maintenance scope of this library.
If the desired goal is to align the appearance with Docusaurus, I would suggest the styling is updated to match the stock experience more closely, but offer CSS variables, static CSS selectors, or another mechanism for developers to customize the look further.
Before starting this work, I would want to verify you are still ok with the changes of moving the rendering into JSX like I have demonstrated in these various PRs; while maintaining support for rich markdown support for the various description fields.
If not, I think the work effort may be more appropriate as a fork based on the level of customizations required.

Yep, I love what you're doing with the JSX rendering. I'm also good with the structural UI changes (like moving things around, adding features, etc...). I'd just prefer to keep the overall look and feel as close to the default Docusaurus theme as we can. Things like color, rounded corner size, borders, shadows etc...

This and the parent work for the header section has been updated to remove a lot of custom opinionated styling.
For areas where developers or myself need to theme the experience further, we can probably follow the styling convention that Docusaurus already exhibits:
#__docusaurus {
  [class*="docPage_"] {
    [class*="paramItem_"] {
      /* custom styles */
    }
  }
}


modify default conf value

Codecov Report
Patch coverage: 5.72% and project coverage change: +15.78 :tada:

Comparison is base (f3163b4) 4.14% compared to head (e553ce4) 19.92%.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #1240       +/-   ##
===========================================
+ Coverage    4.14%   19.92%   +15.78%
===========================================
  Files          24       17        -7
  Lines        7140     5329     -1811
===========================================
+ Hits          296     1062      +766
+ Misses       6844     4267     -2577

Impacted Files
Coverage Δ

nanomq/bridge.c
0.00% <0.00%> (ø)

nanomq/cmd_proc.c
0.00% <0.00%> (-12.50%)
:arrow_down:

nanomq/conf_api.c
0.00% <0.00%> (ø)

nanomq/mqtt_api.c
12.09% <ø> (ø)

nanomq/rest_api.c
0.00% <0.00%> (ø)

nanomq/web_server.c
0.00% <0.00%> (ø)

nanomq/webhook_inproc.c
0.00% <0.00%> (ø)

nanomq/apps/broker.c
36.93% <22.38%> (+18.95%)
:arrow_up:

nanomq/pub_handler.c
55.08% <32.50%> (+54.18%)
:arrow_up:

nanomq/sub_handler.c
66.13% <50.00%> (+21.30%)
:arrow_up:

... and 2 more

... and 10 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

related to #1236


ARROW-5043: [Release][Ruby] Fix dependency error in verification script

We ensure using red-arrow in the release archive.

+1


How do I create a promise with the constructor?

I'm trying to translate the following code into Fengari Lua:
function resolveAfter2Seconds() {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve('resolved');
        }, 2000);
    });
}

This is as far as I've gotten:
local function resolveAfter2Seconds()
    return js.global.Promise(function(resolve)
        js.global.setTimeout(function()
            resolve("resolved")
        end, 2000)
    end)
end

But I get the error "uncaught exception TypeError: calling a builtin Promise constructor without new is forbidden".
Is there a way to use the "new" keyword from inside Lua?

After some experimentation and an insight to look into the js table itself, I arrived at the working example:
local function resolveAfter2Seconds()
    return js.new(js.global.Promise, function(self, resolve)
        js.global:setTimeout(function()
            resolve(nil, "resolved")
        end, 2000)
    end)
end
print("calling")
local prom = resolveAfter2Seconds()
prom["then"](prom, function(self, thing) print("thing:", thing) end) -- prints "resolved" after 2 seconds

The function passed to Promise seems to imply it receives a self argument, but it is always nil in all my tests; resolve seems to ignore its first argument, and the function then also seems to take a self parameter that is always nil.
I just wanted to document my findings for anyone else looking for more information into this.
Follow up question, is this intended behavior? The always-nil-values seem a bit weird to be included in the API.

For anyone wanting to use the colon method notation for promises, I've created a small module you can use in your projects. This aliases :and_then() to essentially the same thing as what :then() would do, if it weren't a syntax error.
--[[
Copyright 2024 William Quelho Ferreira

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
]]

assert(js, "This module must be loaded in a Fengari environment")

local function and_then(prom, ...)
    local p = prom["then"](prom, ...)
    if p then
        p.and_then = and_then
    end
    return p
end

local function promise(f)
    local prom = js.new(js.global.Promise, f)
    prom.and_then = and_then
    return prom
end

return promise

@wqferr looks like you figured it out :)

Follow up question, is this intended behavior? The always-nil-values seem a bit weird to be included in the API.

The nil there you're referring to the first parameter to resolve? That first parameter is what this should be inside of the resolve function. Some things care, many don't; but e.g. polyfills might care where browsers themselves don't, and vice-versa: it's truly full of landmines :(


Aggressive GC?

My program started exploding randomly after I refactored this:
vertex_stage = vk.VkPipelineShaderStageCreateInfo(
    stage=vk.VK_SHADER_STAGE_VERTEX_BIT,
    module=vertex_shader,
    pName='main',
)
pipeline = vk.vkCreateGraphicsPipelines(
    pStages=[vertex_stage]
)

Into this:
pipeline = vk.vkCreateGraphicsPipelines(
    pStages=[
        vk.VkPipelineShaderStageCreateInfo(
            stage=vk.VK_SHADER_STAGE_VERTEX_BIT,
            module=vertex_shader,
            pName='main',
        )
    ]
)

The validation layer is (sometimes) reporting
VUID-VkPipelineShaderStageCreateInfo-pName-00707(ERROR / SPEC): msgNum: -1282697375 - Validation Error: [ VUID-VkPipelineShaderStageCreateInfo-pName-00707 ] | MessageID = 0xb38b9761 | vkCreateGraphicsPipelines(): pCreateInfos[0].pStages[0].pName `` entrypoint not found for stage VK_SHADER_STAGE_VERTEX_BIT. The Vulkan spec states: pName must be the name of an OpEntryPoint in module with an execution model that matches stage (https://vulkan.lunarg.com/doc/view/1.3.296.0/windows/1.3-extensions/vkspec.html#VUID-VkPipelineShaderStageCreateInfo-pName-00707)
I think the VkPipelineShaderStageCreateInfo object and the underlying string get garbage collected before the wrapping call to vkCreateGraphicsPipelines happens.
I don't know if this is a bug, maybe I misunderstand object lifetimes, but it's definitely perplexing.

You can reproduce this with this snippet:
import vulkan as vk

for i in range(1000):
    pipeline_info = vk.VkGraphicsPipelineCreateInfo(
        pStages=[vk.VkPipelineShaderStageCreateInfo(
            pName='main'
        )]
    )
    assert vk.ffi.string(pipeline_info.pStages[0].pName) == b'main'
    vk.ffi.new('VkPipeline[%d]' % 1)  # trigger GC
    assert vk.ffi.string(pipeline_info.pStages[0].pName) == b'main' # will fail eventually

The issue is that the cdata string object is only held up by a weak reference, keyed on the result of vk.VkPipelineShaderStageCreateInfo. When vk.VkGraphicsPipelineCreateInfo converts the list of stages in creates a new array and copies over the data, but the object holding up the string goes out of scope.
This is quick and dirty modification to _cast_ptr2 to rekey the reference:
if isinstance(x, list):
    iterable_references = []
    for item in x:
        item_references = _weakkey_dict.get(item)
        if item_references:
            iterable_references.append(item_references)
    if iterable_references:
        _weakkey_dict[ret] = iterable_references

https://github.com/realitix/vulkan/pull/95
I only started checking out Vulkan so I don't have a big application on hand, but it seems to work for the demos.


Add Spek.app(spek-alternative) v<IP_ADDRESS>

Original spek(https://github.com/alexkay/spek) seems not maintaining anymore
So I add the fork version of spek which can work properly as a new cask

After making all changes to the cask:

[ 👌] brew cask audit --download {{cask_file}} is error-free.
[ 👌] brew cask style --fix {{cask_file}} reports no offenses.
[ 👌] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[ 👌] Named the cask according to the token reference.
[ 👌] brew cask install {{cask_file}} worked successfully.
[ 👌] brew cask uninstall {{cask_file}} worked successfully.
[ 👌] Checked there are no open pull requests for the same cask.
[ 👌] Checked the cask was not already refused in closed issues.
[ 👌] Checked the cask is submitted to the correct repo.

OK I see...
But just a friendly reminder that the original one is completely broken.


[ADD] Add a Home Button in the Navbar

Add a Home Button in the Navbar
Description
Implement a "Home" button in the Navbar to provide users with quick access to the home page.

Task Details

File to Modify:
The Navbar.jsx file located at Codebase/frontend/src/components/Navbar.jsx.

Add Home Button:

Add a "Home" button to the Navbar.
Ensure the button is styled consistently with other elements in the Navbar.

Redirect on Click:

When the user clicks the "Home" button, redirect them to the '/' route on the frontend.

Follow Pull Request Guidelines:

Please refer to the Pull_request_template.md file to create your Pull Request for this change.
Ensure proper testing is performed to verify the functionality and styling of the new "Home" button.

Hey @IAMAP842 i would like contribute to the issue if its not yet assigned!

Hey @IAMAP842 i would like to contribute to the issue if its not yet assigned!

Have you registered for the Winter of Open Source event? Please note that this project is part of that event, and we can assign it only to participants who have registered.

oh okay then,

I would like to collaborate for this reporitory

I would like to collaborate for this reporitory

Have you registered for the Winter of Open Source event?

oh okay then,

You can work on this issue.

Thanks .

I have merged the pull request.


Create "Jobs Available" Posting Area

Create a way for citizens to post notices about available jobs. (original suggestion)
will flesh out more prior to working

"Help Wanted" will be the feature name for this, and its entry in the sidebar. Authenticated users can post a job listing, which can consist of:

Title
Continent
Region
Remote (yes/no)
Description (free-form, Markdown)
Needed By Date

The system will provide a link to message the poster using NAS.
The system will track entry and update dates on listings, and expire them after 30 days (or 7 days past the "Needed By" date, if entered). The system will also allow the original poster to expire it, and mark it as filled via the system (allowing them to enter a success story if they so desire).
The system will provide search capabilities for authenticated users, allowing them to search:

Continent
Region (text search)
Remote (yes/no)
Description (text search)

If technically possible, allow links to individual postings to be shared, prompting the user to log in to view them. (No other pages currently work this way.)

Progress will be tracked via this project.

Time for an end-to-end test!


[formrecognizer] Clean up tests

Cleaning up redundant authentication key successful tests.

Leaving this as draft for now meanwhile I keep looking through tests.


Automatically and persistently forcing JSX to indent in a non-preferred way.

2.35.0 has caused an issue for me.
JSX is automatically indented in the following way:
<Component prop1="stuff"
prop2="stuff">
</Component>

Whereas previously, (and as required by my project's eslint rules), I had:
<Component prop1="stuff"
           prop2="stuff">
</Component>

I tried toggling off all settings.
This unwanted indentation change occurs whenever I click on a line. And, if I try to change the indentation, it immediately sets it back again to the unwanted version.
For now, my workaround was:
apm rm language-babel
apm install<EMAIL_ADDRESS>
OSX 10.11.6
Atom 1.9.9
Thanks!

The change in 2.35.0 was very minor and only affected a simple grammar regex for // comments. I have just tried it and it seems fine. Can you try reinstalling 2.35.0, sometimes the Atom cache gets out of step and causes strange issues.

@gandm You are right, now it works, thanks!

@gandm This happened to me again, I think I fixed it by erasing the "language-babel" section in my config.cson.
For reference it was:
"language-babel":
    allowLocalOverride: true
    autoIndentJSX: true
    babelMapsAddUrl: false
    createTargetDirectories: false
    suppressSourcePathMessages: false
    suppressTranspileOnSaveMessages: false

I can't see why the config.cson that would be an issue. Are you sure it wasn't because atom was updated to 1.10.0 recently?

Or maybe it was language-Babel updating a few times today?

@gandm It could be the Atom update that re-triggered my issue initially, and/or the language-babel updates. However, it started after all updates for the day had completed and I had restarted Atom, and all of the actions I took to try and fix the problem occurred with no intervening updates.
Those actions included:
apm rm language-babel
apm install language-babel

(this had fixed my problem initially on 1.9.9)
and the same but with: apm install<EMAIL_ADDRESS>(the last known working version)
but nothing fixed it until the config.cson change.

I wold suggest stopping atom, removing the atom cache at ~/.atom/compile-cache, and restarting to allow it to rebuild.


Usage with monorepo doesn't seem to work

Hi!
First of all thanks for your plugin :)
We are having issues working with<EMAIL_ADDRESS>and typedoc-plugin-merge-modules in a monorepo.
In the<EMAIL_ADDRESS>release, the author rebuilt the way typedoc works and how it builts the documentation for monorepos.
Currently, we are not able to make typedoc-plugin-merge-modules work in a monorepo with multiple packages
This worked with<EMAIL_ADDRESS>and the previous version of the plugin
Expected Behavior
The documentation generated for all the packages properly merge the different packages with the same @module @mergeTarget tags
Current Behavior
Modules are not merged and are shown independently.
Steps to Reproduce
I will provide a repo with an example, we use Nx for the monorepo.
We have these projects in Nx

each one with his own package.json
<EMAIL_ADDRESS>requires to split the configurations, we created a typedoc.json in both of them

the index.ts (entry point configured for typedoc) has the comments

but the result is

and here the typedoc global config

I will provide an example repository this afternoon :)

Hi. I must have missed these changes when I looked at the change log. If you can provide an example repository I can look into this when I find the time.

Hello! thank you for your quick response.
Here you have https://github.com/jperezruiz/typedoc-024-plugin-merge-modules
In the main branch I have created the example using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>I have also created a branch called 0.23 with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>You can execute typedoc by running npm run build:docs and launch a preview with npm run serve:docs.
In the 0.23 branch you will see

And in the main branch

Thank you for the test repository.
The problem should be fixed in version 5.0.0 that I just released on NPM. 🎉
The problem was that TypeDoc 0.24 creates a separate converter for every package when using the entry point strategies "merge" or "package" which resulted in the merge getting called too early. I had to change the TypeDoc events the plugin subscribes to in order to get it working. Unfortunately while doing this I also had to drop support for TypeDoc version 0.23 as that version doesn't include the new events. 😞
Please report back after you updated to and tested the new version so that we can close this issue.

Thank you very much! You plugin os amazing to the point that it should be part of typedoc

Thanks. I also think that this functionality should be part of TypeDoc. Maybe someday it will be.

I confirm is working now, thank you!

Hi. Ok. Please post the current behaviour and how you would like it to be. Then I can take a look.

Hi!
thanks for your fast response ^^
I updated the same example repo.
Here the result using 0.23 and typedoc-plugin-merge-modules@4

And here using 0.24 and typedoc-plugin-merge-modules@5

The merge is well done, all declarations appear in the sidenav and I can navigate to them:

but only the declarations from the first module appear in the index

The good news: I can reproduce the problem and added an automated test to the plugin's repo that currently fails because of this issue: https://github.com/krisztianb/typedoc-plugin-merge-modules/blob/master/test/merge-module-monorepo/test.cy.ts#L32
The (somewhat) bad news: I'm not sure what the problem is. It seems to be unrelated to the plugin's code itself. Either it is a bug in TypeDoc or the plugin is executed too late after the index has already been generated by TypeDoc. I created an issue for this in the TypeDoc repo: https://github.com/TypeStrong/typedoc/issues/2281
Hopefully Gerrit will be able to take a look at this and hint me into the right direction.

Hi! Thank you very much, I hope typedoc devs can take a look at it.

Hi. I released 5.0.1 which also merges categories and groups and sorts them alphabetically. Please give me feedback if it is working correctly for you. Thanks.

Hi @krisztianb ,
Thank you very much for all the effort, I really appreciate it.
I will check it and let you know.


Fix history.listen triggered by initial page load on some old browsers

Popstate event will fire after initial page load on some old browsers, like Safari on iOS 9. It will trigger history.listen.
This PR is a hack to fix this problem, the solution is from page.js. I tested on iOS 9, it worked.

I don't know why the Travis CI always timeout 😔

What's the status here? today I run into the same problem.

@mjackson Can you look at it? It's been a long time.

Sorry for the delay here. This will be released in 4.10.

Hi @yangmingshan, I merged this but it causes one of our tests to fail on Firefox. You can see the failure here: https://travis-ci.org/ReactTraining/history/jobs/583498880
I'm going to revert the commit for now, but I'd be open to trying again if you can figure out what's going wrong in Firefox. Thanks!


Examples for Pruning with Lpot

Hello,
I am working on building a front-end focused platform that can handle pruning for the user. I wanted to know if there are any examples in the repository for pruning or if someone could provide an example from their own experiments. I appreciate all your help.
Thank you,
Will

Hi Will,
Lpot supports pruning on pytorch backend now. Please find the examples as following:

magnitude pruning on imagenet: https://github.com/intel/lpot/tree/master/examples/pytorch/eager/image_recognition/imagenet/cpu/prune
Pruning on bert tasks: we enabled pattern-lock and gradient sensitivity pruning on serverl bert tasks. Please refer to: https://github.com/intel/lpot/blob/master/examples/pytorch/eager/huggingface_models/README.md.

Thanks,
Zhaorui

Does Lpot support pruning with TensorFlow?

Does Lpot support pruning with TensorFlow? Are there any examples of this?

not yet. It's still WIP.

No feed back in 2 weeks, closed at first.


Can't read tutorial root input file

Reading the.root file used in a tutorial 'gaudi_alg_higgs' seems to be broken after recent breaking changes in the stack
Reading the file with podio::ROOTReader::readEntry results in a segementation fault when using
/cvmfs/sw-nightlies.hsf.org/key4hep/releases/2024-03-17/x86_64-almalinux9-gcc11.3.1-opt/key4hep-stack/2024-03-17-ghcmfw/setup.sh

Does this also happen with the release? For the nightlies it is expected, because we were breaking quite a few things wrt the release.

I confirm, with the release it's fine
You can close it or keep as a reminder


Add Fantom network

@banteg this needs to use 0x10B62CC1E8D9a9f1Ad05BCC491A7984697c19f7E for multisend. Wonder how much hacking do you want to have inside this class

Fixed in 0.2.1 https://github.com/banteg/ape-safe/commit/6afa1d72ffab20ed9a279feaf3a012f42fbf5b75


CSS stuff

Changed the labels for TEIA, H=N, OBJKT, edited listing layout a bit.

@SlinkousArt I rebased it to fix the build error


Add configuration options for net/http timeouts

These timeouts should be tuneable for users who don't want to limit downstream services to only accept fast responses.
Address #228 by providing the option to increase the write timeout.
@codedge can you give this a review and see if it addresses your issue, it wasn't able to be configured by the limits plugin as it's the main method that sets up the http.Server instances.
In the config.json you can either provide a default-timeouts map of read, write and idle keys that will be used for all the http.Server instances or override the defaults with gateway-timeouts and private-timeouts maps that only need to provide values differing from the defaults.

Codecov Report
Attention: 23 lines in your changes are missing coverage. Please review.

Comparison is base (3c1b58b) 71.07% compared to head (71a4e80) 72.24%.

Files
Patch %
Lines

config.go
41.02%
14 Missing and 9 partials :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #229      +/-   ##
==========================================
+ Coverage   71.07%   72.24%   +1.16%
==========================================
  Files          27       27
  Lines        2742     2781      +39
==========================================
+ Hits         1949     2009      +60
+ Misses        671      631      -40
- Partials      122      141      +19

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

Going to check during the day and will let you know.
Thanks already for the fast response!

This works perfectly for me. 👍 Can be merged!


PUT of multipart/related attachments should support Transfer-Encoding: chunked

My testing indicates that Transfer-Encoding: chunked causes the server to wait indefinitely, then issue a a 500 error when the client finally hangs up, when PUTing a multipart/related document + attachments.  To reproduce:
To reproduce (testing against CouchDB 2.3.0 official docker image):
curl -v -X PUT http://admin:abc123@localhost:6005/foo/oink \
    -H 'Content-Type: multipart/related;boundary="25d2c8595dc6d17e2c59cc97ad3db535428bf940ac8cd646d002171f2147"' \
    -H 'Transfer-Encoding: chunked' \
    --data "$(echo LS0yNWQyYzg1OTVkYzZkMTdlMmM1OWNjOTdhZDNkYjUzNTQyOGJmOTQwYWM4Y2Q2NDZkMDAyMTcxZjIxNDcNCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbg0KDQp7Il9hdHRhY2htZW50cyI6eyJmb28udHh0Ijp7ImNvbnRlbnRfdHlwZSI6InRleHQvcGxhaW4iLCJsZW5ndGgiOjEzLCJmb2xsb3dzIjp0cnVlfX0KLCJmZWV0Ijo0fQoNCi0tMjVkMmM4NTk1ZGM2ZDE3ZTJjNTljYzk3YWQzZGI1MzU0MjhiZjk0MGFjOGNkNjQ2ZDAwMjE3MWYyMTQ3DQoNCnRlc3QgY29udGVudAoNCi0tMjVkMmM4NTk1ZGM2ZDE3ZTJjNTljYzk3YWQzZGI1MzU0MjhiZjk0MGFjOGNkNjQ2ZDAwMjE3MWYyMTQ3LS0NCg== | base64 -d)"

Desired Behaviour
The server ought to respond to the HTTP request, the same as if it were not sent using Transfer-Encoding: chunked

Confirmed on master (post 2.3.1) with the same command using dev/run -n 1. logfile shows:
[notice] 2019-03-12T17:51:03.030365Z<EMAIL_ADDRESS><0.909.0> 05a227bfb0 localhost:15984
<IP_ADDRESS> undefined PUT /foo 202 ok 287
[error] 2019-03-12T17:51:37.839482Z<EMAIL_ADDRESS><0.1405.0> 16aaab9392 req_err(86628135
3) badmatch : ok
    [<<"chttpd_db:db_doc_req/3 L1029">>,<<"chttpd:handle_req_after_auth/2 L322">>,<<"chttp
d:process_request/1 L305">>,<<"chttpd:handle_request_int/1 L243">>,<<"mochiweb_http:header
s/6 L128">>,<<"proc_lib:init_p_do_apply/3 L247">>]
[notice] 2019-03-12T17:51:37.840019Z<EMAIL_ADDRESS><0.1405.0> 16aaab9392 localhost:15984
 <IP_ADDRESS> undefined PUT /foo/oink 500 ok 13094

@flimzy actually I'm not sure this is a valid test case. See:
https://curl.haxx.se/mail/archive-2004-12/0104.html
If you let curl do the chunking for you, does it do the right thing?
Your chunking process isn't including the length of the chunks which I think is invalid HTTP 1.1.

I think I am letting curl do the chunking for me. Or am I misunderstanding your question?  If I omit the Transfer-Encoding: chunked header from the curl command, curl calculates the size of the upload, and includes the appropriate Content-Length header, which Couch accepts with no problem.
The curl commands are just to demonstrate a problem I discovered when working on my Go client, where wireshark confirmed that the length of chunks were most definitely being included.  I can re-produce that, and attach a packet capture if that's useful

@flimzy I'm not really sure what's going on here. I'm sure chunked transmission works between CouchDBs, but I don't know precisely how you're running into the issue. Did you ever get back to this, or just worked around it otherwise?

I just ran into this issue as well, initially using my Java client, but reproduced in curl too.
The mp-request.mp.gz file I'm using is the docs example but with only 1 of the attachments instead of both.
Curl multipart request that works (curl automatically adds the Content-Length header):
curl -v -u 'admin:**' -X PUT -H 'Content-Type: multipart/related; boundary=abc123' -T mp-request.mp 'http://localhost:5984/test/testmp4'
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 5984 (#0)
* Server auth using Basic with user 'admin'
> PUT /test/testmp4 HTTP/1.1
> Host: localhost:5984
> Authorization: Basic **==
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Type: multipart/related; boundary=abc123
> Content-Length: 373
> Expect: 100-continue
>
* Done waiting for 100-continue
* We are completely uploaded and fine
< HTTP/1.1 201 Created
< Cache-Control: must-revalidate
< Content-Length: 70
< Content-Type: application/json
< Date: Wed, 09 Dec 2020 14:42:36 GMT
< ETag: "1-7ce5f48fde00bce2167f25fd04031e8e"
< Location: http://localhost:5984/test/testmp4
< Server: CouchDB/3.1.1 (Erlang OTP/20)
< X-Couch-Request-ID: 31cddc5df6
< X-CouchDB-Body-Time: 0
<
{"ok":true,"id":"testmp4","rev":"1-7ce5f48fde00bce2167f25fd04031e8e"}

And curl request with added Transfer-Encoding: chunked header that hangs:
curl -v --max-time 30 -u 'admin:**' -X PUT -H 'Transfer-Encoding: chunked' -H 'Content-Type: multipart/related; boundary=abc123' -T mp-request.mp 'http://localhost:5984/test/testmp3'
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 5984 (#0)
* Server auth using Basic with user 'admin'
> PUT /test/testmp3 HTTP/1.1
> Host: localhost:5984
> Authorization: Basic **==
> User-Agent: curl/7.64.1
> Accept: */*
> Transfer-Encoding: chunked
> Content-Type: multipart/related; boundary=abc123
> Expect: 100-continue
>
* Done waiting for 100-continue
* Signaling end of chunked upload via terminating chunk.
* Operation timed out after 30002 milliseconds with 0 bytes received

Why didn't merging https://github.com/apache/couchdb/pull/3340 close this ticket?

Not sure...maybe cause it didn't land on main.


Update coda to 2.5.11

Thank you for the contribution. It was merged directly as d3d161345b43fc2758d2d755fbce2e4a8179752d to keep commit history cleaner. Your contribution is still credited to you.


Update testinput for ufs c48 runs

Description
Goes together with https://github.com/JCSDA/ufs-bundle/pull/22, see description there.

@cmgas then merge this (second)


How to test in the overlap region？

The paper compares FCOS3D and Detr3D in the overlap region. How to test the nuscenes only in the overlap region？Thank you very much！

To test in the overlap region, I suggest you modify the code of the official evluation code here: https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/eval/detection/evaluate.py#L98
You should add some code here to filter out boxes.

Some sample code to test if a box is repeated in several images.
from nuscenes.eval.detection.data_classes import DetectionBox
from nuscenes.utils.geometry_utils import view_points, box_in_image, BoxVisibility
from pyquaternion import Quaternion
from nuscenes.utils.data_classes import Box
import numpy as np
from copy import deepcopy

def box_center_in_image(box, cam_intrinsic, imsize, vis_level=None):
    center3d = box.center
    center3d = center3d[:, np.newaxis]
    center_img = view_points(center3d, cam_intrinsic, normalize=True)[:2, :]

    visible = np.logical_and(center_img[0, :] > 0, center_img[0, :] < imsize[0])
    visible = np.logical_and(visible, center_img[1, :] < imsize[1])
    visible = np.logical_and(visible, center_img[1, :] > 0)
    visible = np.logical_and(visible, center3d[2, :] > 1)

    in_front = center3d[2, :] > 0.1

    return all(visible) and all(in_front)

def is_box_repeated(nusc, box: DetectionBox):
    cams = ['CAM_FRONT_LEFT', 'CAM_FRONT', 'CAM_FRONT_RIGHT','CAM_BACK_LEFT', 'CAM_BACK', 'CAM_BACK_RIGHT']
    box_vis_level = BoxVisibility.ANY
    sample_token = box.sample_token
    rec = nusc.get('sample', sample_token)

    if isinstance(box, DetectionBox):
        box = Box(box.translation, box.size, Quaternion(box.rotation))

    box_backup = deepcopy(box)

    num_repeat = 0
    for cam_name in cams:
        box = deepcopy(box_backup)
        cam_token = rec['data'][cam_name]
        sample_data_token = cam_token

        sd_record = nusc.get('sample_data', sample_data_token)

        cs_record = nusc.get('calibrated_sensor', sd_record['calibrated_sensor_token'])
        sensor_record = nusc.get('sensor', cs_record['sensor_token'])
        pose_record = nusc.get('ego_pose', sd_record['ego_pose_token'])

        # move box to ego vehicle coord system
        box.translate(-np.array(pose_record['translation']))
        box.rotate(Quaternion(pose_record['rotation']).inverse)

        #  Move box to sensor coord system.
        box.translate(-np.array(cs_record['translation']))
        box.rotate(Quaternion(cs_record['rotation']).inverse)

        cam_intrinsic = np.array(cs_record['camera_intrinsic'])
        imsize = (sd_record['width'], sd_record['height'])

        #if box_in_image(box, cam_intrinsic, imsize, vis_level=box_vis_level):
        if box_center_in_image(box, cam_intrinsic, imsize, vis_level=box_vis_level):
            num_repeat += 1

    #assert num_repeat > 0, 'box never occur on any images!'

    if num_repeat > 1:
        return True
    return False

seems similar to function filter_eval_boxes_by_overlap in script projects/mmdet3d_plugin/datasets/nuscnes_eval.py


OnClick event row object not updating edit field in the table

OnClick event row object not updating edit field in the table.
If a have a column of an edit field. Let's call it "enter_bid" field.
{
dataField: "enter_bid",
text: "Enter Bid",
editable: true,
}
and then a have a button used for submitting the value to the server.
{
dataField: "bid_button",
text: "Bid",
editable: false,
formatter:   (cell, row, rowIndex, extraData) => (

Bid

),
events: {
onClick: (e, column, columnIndex, row, rowIndex) => {
alert(row.enter_bid);
}
The row.enter_bid object sometime anomaly returning a null value even if there's a value in the edit field
It seems the row object in the onClick function it's not updating.

@kennethliang your code seems unreadable. please update.


I've added class for uppercase first character

This is approximately a v4 equivalent of #18279. Caveats similar to what Patrick mentioned there would apply here.

Passing on this—I'm unsure how much use folks would really expect to get out of this as a utility.


I can't build unified-deb on 4.5 due to a machine-image issue

https://jenkins.scylladb.com/view/scylla-4.5/job/scylla-4.5/job/unified-deb/4/
13:19:41  python3-pip-20.2.2-1.fc33.noarch
13:19:41  python3-pip already installed.
13:19:41  Building in /jenkins/slave/workspace/scylla-4.5/unified-deb/scylla-machine-image...
13:19:41  /jenkins/slave/workspace/scylla-4.5/unified-deb/scylla-machine-image
13:19:41  This package has a Debian revision number but there does not seem to be
13:19:41  an appropriate original tar file or .orig directory in the parent directory;
13:19:41  (expected one of scylla-machine-image_4.5~rc0-20210405.0ef5d340d7f.orig.tar.gz, scylla-machine-image_4.5~rc0-20210405.0ef5d340d7f.orig.tar.bz2,
13:19:41  scylla-machine-image_4.5~rc0-20210405.0ef5d340d7f.orig.tar.lzma,  scylla-machine-image_4.5~rc0-20210405.0ef5d340d7f.orig.tar.xz or scylla-machine-image.orig)
13:19:41  continue anyway? (y/n) Use of uninitialized value $ans in pattern match (m//) at /usr/bin/debuild line 1009.

@syuu1228 do you know of this issue ? as to why it's failing to build a debian package here ?

Not sure the issue is in this repo, but opened here, as the sympthom is here.

sounds again related to the version string, hence it expect a source tarball, which we don't have:
https://stackoverflow.com/questions/61646468/build-a-debian-package-without-tarball


[ENH] Constrained cost-function masking for T1-MNI registration

Starting by manually rebasing #121 onto current master
Closes #121.

9d3c25c addresses https://github.com/poldracklab/niworkflows/pull/121#discussion_r131733989.

Last three commits address @oesteban's other comments.
@danlurie and I decided to leave some explicit restating of defaults (lesion_mask=None, global_mask=True) for the sake of reading.

Modulo the comment above, I think we're ready to move on to fmriprep integration.
@oesteban if you have a few minutes, do you want to make a quick look over this? Having worked on this PR before, you might see something I've missed.

Sounds good
On Fri, May 4, 2018, 12:57 Chris Markiewicz<EMAIL_ADDRESS>wrote:

@effigies commented on this pull request.
In niworkflows/interfaces/mni.py
https://github.com/poldracklab/niworkflows/pull/233#discussion_r186201555
:

   out_path = os.path.abspath(out_path)

if not global_mask and not lesion_mask:

   NIWORKFLOWS_LOG.warning(

       'No lesion mask was provided and global_mask not requested, '

       'therefore the original mask will not be modified.')

Load the input image

in_img = nb.load(in_file)

If we want a global mask, create one based on the input image.

if global_mask:

   # Create a mask of ones with the shape of the input image.

   data = np.ones(in_img.shape, dtype=np.uint8)

else:

   data = in_img.get_data()

asanyarray passes through arrays that don't need to change without
copying. np.array() of a np.memmap will copy, but np.asanyarray will not
unless it has to (e.g. the dtype doesn't match).
But anyway, we settled with emitting an error rather than silently
interpreting a non-mask as a mask.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/poldracklab/niworkflows/pull/233#discussion_r186201555,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAkhxmdqhxu-VPe_nVERhyZzbZ9-fSFkks5tvLKdgaJpZM4Ty_TL
.

Last two commits are no-effect, so if our tests work (running with and without a lesion mask), I think this is good to go.
@oesteban Let me know if any of the comments we rejected/postponed you think are important to deal with first.

Let's go as is and re-iterate in the future. This has been sitting here for too long, time to close up!

@danlurie Are we good to go?

Great success! No errors in either run.

Outstanding job guys


📖 Update packaging.md

Summary
This PR updates the package and delivery document, hopefully bringing it much closer to present truth.
Related issue(s)
Fixes #

/cc @pdettori
/cc @nirrozenbaum
/cc @francostellari
/cc @waltforme
/cc @vMaroon

/lgtm


add caidan

Caidan (菜单 in Chinese, /cài dān/, meaning food menu) is a clean and minimal food menu template.
Repo URL: https://github.com/cu1ch3n/caidan

Thanks for the awesome contribution, @cu1ch3n !


Try keep it short, clean and neat. Sorry if I'm extra.

Thank you for the suggestions, I shall definitely consider them!
On Wed, 5 Jul 2023 at 23:32, netlify[bot] @.***> wrote:

👷 Deploy Preview for celadon-manatee-1e37d1 processing.
Name Link
🔨 Latest commit 826ef8b
https://github.com/Govind-S-Nair/React-Portfolio/commit/826ef8b262d4b60e2c1c89404e5668d7e549e148
🔍 Latest deploy log
https://app.netlify.com/sites/celadon-manatee-1e37d1/deploys/64a5b03a6dbe260008a31911
—
Reply to this email directly, view it on GitHub
https://github.com/Govind-S-Nair/React-Portfolio/pull/1#issuecomment-1622231466,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3UDKDNS7PZOJADKYSGP5ODXOWT4PANCNFSM6AAAAAAZ7JKXVA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


fix two bugs

Hello again, @Lokarzz. Thank you for merging my previous request #4.
Unfortunately, I made a couple of mistakes:

I did not check the jitpack build, and now it turned out that for v1.0.3 it fails (https://jitpack.io/#Lokarzz/perfectTune). It also fails for 1.0.2; I do not know how it worked earlier. Anyway, the solution was to un-ignore gradle/wrapper/gradle-wrapper.properties, which I've done.
In Java code, I implemented the getter signature for amplitude the wrong way (which I discovered while trying to use the property access syntax in Kotlin).

Now I've fixed this (the build is passing: https://jitpack.io/#braille-systems/perfectTune/bc09ec2890). May you please merge this patch and bump the version to 1.0.4  (I've already tweaked the readme)?
My apologies, I should have fixed this before the first request, this time I've double-checked everything.

@Lokarzz many thanks for merging my latest PR. However, you then created a release 1.0.5, not 1.0.4, which I did not expect. Could you change the version on line 24 of the README to 1.0.5, please?

Thank you!


Why the dependency upon 10.3.1?

Is there anything special with 10.3.1 that R-bridge is dependent on it?
I suppose it can be used in standalone mode(R script). But to make use of geoprocessing framework, 10.3.1 is needed! Am I right?
I need to use it with 10.2.2.

Farid,
Lettting ArcGIS know how to appropriately handle R scripts requires changes to the application. Unfortunately, the release of 10.2.2 predates the existence of this project. The actual integration with R can be used however, by downloading the release  and manually installing it into R, as shown in this screencast. That approach, which will give you full access to ArcGIS features from R will work with 10.2.2.

I manually installed R-bridge before. But I get error
library(arcgisbinding)
arcgisbinding::arc.check_product()

Error in .call_proxy("arc_AoInitialize") :
  Could not bind to a valid ArcGIS installation

Unless you've installed Background Geoprocessing, you must be in 32-bit R (the icon is labeled with "i386".

This is great. Thanks


Refactor the build system

Use CMakeLists.txt instead of Makefile generated by v2python/generate_shim.py and v2python/generate_compile.py to process the build. Also do not overwrite generate source files if no changes were found.
Now AOTriton can avoid most duplicated work during the re-build.
This PR also fixes the false negative UT failures in main introduced in 0.5b.

Have to merge by force since Joseph is OOO till the end of this week.


Binary snapshots

This is a relatively basic implementation of binary snapshots. I decided to adapt my implementation mentioned in https://github.com/mitsuhiko/insta/issues/196#issuecomment-2059256019 to handle binary files in general and remove the whole thing that prints images to the terminal.
The basic approach is store a file next to the snapshot file with the provided extension appended. The snapshot macro gets passed a closure with an &mut File parameter. Just using a Vec<u8> would be somewhat simpler in implementation, but I would be worried about memory usage if there's a bunch of tests running with large files.
I decided not to return a Result from the closure, because if there's an I/O error inside it probably makes sense just to panic there because we're inside a test anyway. But maybe it would still make sense to return a Result there just so there is no need for .unwrap() inside the closure?
Currently it directly writes the file at the location where it will end up at the beginning of the assert_snapshot function. This means the binary file is created as snap.new.$extension much sooner than the metadata is saved because we need the file to be able to compare it. What is a bit weird is if there is a crash somewhere between overwriting the binary file and storing the .snap file it will leave the two files in an inconsistent state. Creating it as .snap.new.$extension.tmp and then moving it when saving the metadata might be a good alternative approach.
There is also a problem if the extension changes between two runs where the old pending binary file will stay around. It doesn't seem to a problem in practice though because when running with cargo insta test because cargo-insta removes the old pending snapshots first. Maybe it would make sense to also do that generally at the start of assert_snapshot or alternatively cleanup all .snap.new.* somewhere.
The review TUI looks like this:

The open action opens both files (or just one if there's no existing snapshot, or the existing one is text) in an external application using the open crate.
The file paths are using the OSC-8 escape sequence (described here) to link to the files. Here it says that file:/// without a hostname should be avoided, but at least my terminal (WezTerm) seems to support it without a hostname and so I left that out for now since it would mean an extra dependency on a crate to get the hostname. As an alternative we could also just print the path including file:// to the terminal since many terminals seem to support clicking on those as well.

Creating it as .snap.new.$extension.tmp and then moving it when saving the metadata might be a good alternative approach.

I like this in theory. What might make this whole thing more robust would be to say that the following has to be true:
foo.snap.ANY_EXT has to be unique. On review/write if more than one extension is found, other files are deleted.  A not yet fully persisted file is temporarily stored as foo.snap._ to mark it as temporary.  If it's left over after a run, it would be cleaned up like any other duplicate extension.

The open action opens both files (or just one if there's no existing snapshot, or the existing one is text) in an external application using the open crate

It would be interesting to also add a p for preview on macos which would open quick-look on supported files.  Not sure if an equivalent exists on windows.  But this could be done in a followup.

I've made some adjustments:
As you suggested I've changed it so the contents are first written to a temporary file with the .snap._ extension.
At the start of the assert_snapshot function and after accepting and rejecting in review any extra files are now cleaned up.
I had to change the Snapshot::save* methods to change &mut self so they can change the path to the newly saved path. Which makes it a little bit weird because it's not necessarily clear from the name that those functions will also move a file now.
This problem could also be solved in different ways:
Instead of moving the file we could copy it and then always regenerate the binary file path when needed. But that would probably mean an extra parameter so it knows where to copy the contents file from.
Or maybe save_new could make the assumption that there's a temporary file in .snap._.
Also the .new and ._ extensions and extensions starting with .new.* are now forbidden so there can't be conflicts.
Maybe I can add the quick-look thing for macos soon, but I'll have to borrow a mac from a colleague to test it. Also I'm not sure if opening both files in quick-look makes sense. Maybe two different shortcuts makes more sense.

While we wait for a more informed review, one thought (not confident): I notice we add new enums — would there be any case for collapsing "Inline | Named" enums and the new "String | Binary" enums into a single enum? Every Binary snapshot must be Named. But I'm not sure if that makes the structure simpler...

While we wait for a more informed review, one thought (not confident): I notice we add new enums — would there be any case for collapsing "Inline | Named" enums and the new "String | Binary" enums into a single enum? Every Binary snapshot must be Named. But I'm not sure if that makes the structure simpler...
Edit: one low-hanging fruit as an example — the proposed code has SnapshotType with String | Binary. We currently don't encode whether it's an Inline snapshot in that struct, we just check whether it has a name — we could instead add Inline as an option there.

I suppose the refval thing is one of those cases. I could change the SnapshotContent enum to something like this:
type SnapshotName<'a> = Option<Cow<'a, str>>;

pub enum SnapshotValue<'a> {
    String {
        name: SnapshotName<'a>,
        content: &'a str,
    },

    InlineString {
        reference_content: &'a str,
        content: &'a str,
    },

    Binary {
        name: SnapshotName<'a>,
        write: &'a mut dyn FnMut(&mut File),
        extension: &'a str,
    },
}

or maybe
type SnapshotName<'a> = Option<Cow<'a, str>>;

pub enum ReferenceValue<'a> {
    Named(SnapshotName<'a>),
    Inline(&'a str),
}

pub enum SnapshotValue<'a> {
    String {
        refval: ReferenceValue<'a>,
        content: &'a str,
    },

    Binary {
        name: SnapshotName<'a>,
        write: &'a mut dyn FnMut(&mut File),
        extension: &'a str,
    },
}

I'm a bit less sure about SnapshotType. I don't think we need to represent the inline case there because the metadata isn't being stored in that case if I understand correctly.

Yes those both seem reasonable, though on reflection not obvious changes either.
(I note we're handling the contents differently between named string and named binary snapshots — string snapshots we hold the value in memory while binary snapshots we hold only the path, which leads to some of the split. Maybe that's because we expect the binary snapshots to be larger?)

I'm a bit less sure about SnapshotType. I don't think we need to represent the inline case there because the metadata isn't being stored in that case if I understand correctly.

I do think we use MetaData for inline snapshots — we create a Snapshot struct for them (for example, here), which means they contain a metadata field. But we can just as easily make that change in another PR — I think I'm tripping over the number of data structures in the crate and don't yet grok whether we need so many. But that's not the responsibility of this PR, fine to push off imo.

(I note we're handling the contents differently between named string and named binary snapshots — string snapshots we hold the value in memory while binary snapshots we hold only the path, which leads to some of the split. Maybe that's because we expect the binary snapshots to be larger?)

Yes, the reason for storing them directly in files is the size. I was concerned about large files, especially when multiple tests are running concurrently. But this is definitely a tradeoff since passing around a Vec<u8> would make the code simpler and more uniform. I also think and it's unclear whether creating huge binary snapshots is a realistic usecase especially if you want to store them in git.

But this is definitely a tradeoff since passing around a Vec<u8> would make the code simpler and more uniform. I also think and it's unclear whether creating huge binary snapshots is a realistic usecase especially if you want to store them in git.

Yeah. And IIUC we are storing them in memory when writing them at the moment. (+ agree given they're in git, the likelihood of multi-GB values seems very remote...)

@lasernoises I guess we're still waiting on a review.
Not a verdict, but on further reflection, I do think simplifying the code to load snapshots into memory would make sense. The prospect of multi-GB sized snapshots seems quite unlikely — they're stored in git, the computational cost of diffing snapshots of that size will likely bind before the memory size becomes an issue. Even before your changes, the code handling different types of snapshots is a bit complicated.
(But ofc no need to make changes based on my opinion)

Sorry for replying so late.

Yeah. And IIUC we are storing them in memory when writing them at the moment. (+ agree given they're in git, the likelihood of multi-GB values seems very remote...)

Because it's a callback that get's an &mut File it doesn't have to ever be in memory as a whole thing. For example in my usecase, which is for PDFs the PDF as an array of bytes is never fully in memory, only an intermediate datastructure that can then be written out as bytes.

@lasernoises I guess we're still waiting on a review.
Not a verdict, but on further reflection, I do think simplifying the code to load snapshots into memory would make sense. The prospect of multi-GB sized snapshots seems quite unlikely — they're stored in git, the computational cost of diffing snapshots of that size will likely bind before the memory size becomes an issue. Even before your changes, the code handling different types of snapshots is a bit complicated.
(But ofc no need to make changes based on my opinion)

I think you're right and that for real usecases you'll want to minimize size anyways. In my PDF case I avoid embedding fonts for example and use the builtin fonts instead.
I think I'll try to take some time next week to try it with the binaries in memory.

Thanks for resolving the merge conflicts! That must have been a decent amount of work...
One note — I've recently spent lots of time simplifying the internals, and I'd be very hesitant to merge the approach that uses files rather than in-memory values — I think that brings another layer of complication without much benefit. (at least — I want to understand whether extremely large snapshots are really being used, such that it's worth maintaining the code for two different approaches)...

OK great! Hopefully it could use at least some of the existing code...
One note is that a couple of outstanding PRs change the SnapshotContents struct slightly, adding a kind field: https://github.com/mitsuhiko/insta/pull/581/files#diff-2666420e8389f1d842ce108018b05f3f68fa4b920f8c1793a3d4d01f21443544R549-R553.
We could adjust that to make SnapshotContents an Enum itself if the behavior becomes more different per kind, like you've done here, or delegate more behavior to that kind.
I'd like to merge that ASAP, though waiting on feedback from @mitsuhiko

I ended up getting relatively far today. I currently have the new version at: https://github.com/lasernoises/insta/tree/in-memory-binary-snapshots. There's still some smaller stuff I need to take care of and then I'll probably have some questions about some of the details. (I'll also need to take a more detailed look at #581 and see how compatible that one is with my changes.)
But first: should I create a new PR and close this one or reset this branch to the other one?

But first: should I create a new PR and close this one or reset this branch to the other one?

Totally as you wish!

I decided to open a new PR because the implementation is sufficiently different and it might be nice to be able to easily compare them.


MISC: Add twitter badge to readme

related to point 1 in #266
rendered: https://github.com/bids-standard/bids-specification/blob/efea8f0c3a71c0c9c44e5c14c60482a37782b34c/README.md

gosh ... sorry. I should finish reading my notifications before opening PRs. This is a duplicate PR


TaskbarX wont stop centering even after deletion

I deleted my TaskbarX and it didnt delete the schedule and i want to uncenter it, Can someone pls help?
(I deleted it from the configurator)

Install it again
run the configurator,
go to Position page
Check "don't center Taskbar"
click on "Stop TaskbarX".
Apply
Uninstall it


Thick vertical stripes appear in latest VS Code

This just started to appear for me this week (actually today, but I'm not sure when something changed that this would have happened):

I had a look today at the VS Code theme and it's looking ok.  The "more comprehensive one" doesn't have the vibe of Darktooth, the brown background makes it look more like a spin-off of Bespin ... my (extremely out of time) 2c


numThreads = 0 in parallel.cpp when building to iOS

When building OpenCV to iOS the "numThreads" variable is always set to 0, as a direct result the parallel_for_ method doesn't use the GCD queues.
Changing the if in the beginning of the method to use "getNumThreads" fixed it, but I'm not sure it's the right solution.
Any help would be appreciated.

Isn't numThreads set to -1 for GCD? (here)


Loading modal for actions

I decided to create a loading modal, since auto-teleport takes some time before it checks all the funds
I am not really fan of landing a modal that is not loaded. Having a loader and then getting to a modal that is 100% ready is IMO better UX.
indication that the process is underway
avoiding sudden rescaling of the modal once something loads
prevents users from clicking buttons that do nothing
This model will be used for every action where this loading happens.
grey area is skeleton loader
updated in figma file: https://www.figma.com/file/JXNtryaNYhY0XJNArzvPQx/Handoff?type=design&node-id=1458%3A19091&mode=design&t=Usu2Htfj9OHID4N1-1

👋


Effect of VPN?

What parts of web protection rely on VPN functionality? Asking this because you can either disable web protection completely or just the VPN, as instructed here: https://docs.microsoft.com/en-us/mem/intune/protect/advanced-threat-protection#configure-web-protection-on-devices-that-run-android

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

ID: 162e0510-f05e-14fb-486a-32173e3f8c8c
Version Independent ID: ead06fb0-e149-32c9-99f2-78f3e51537ea
Content: Web protection - Windows security
Content Source: windows/security/threat-protection/microsoft-defender-atp/web-protection-overview.md
Product: w10
Technology: windows
GitHub Login: @levinec
Microsoft Alias: ellevin

Hi @ArttuArstila, I heard back from the PMs. On device admin enrolled devices, the VPN functionality is an added capability/configuration to enable the web protection feature. On Android Enterprise enrolled devices, it is the only capability/configuration that enables the web protection feature. So, on Android Enterprise , if you turn off the VPN configuration, it is going to disable the web protection feature.
I hope that answers your question.


Buggy scrollbar

The scrollbar on the site has a lot of bugs. It's because it does not use the native scrollbar, but a library. I think function is more important than look in this case.
Personally in my projects I use only css to enhance the look of the scrollbar. I suggest you do the same. When all browsers support it, you just need to make minor css changes.
https://css-tricks.com/the-current-state-of-styling-scrollbars/

Thank you very much for raising a bug and even with a solution to help us improve our products.
We hope we'll fix it in the next version of our website.
If you can tell us more details about the bug, we would be very grateful.

@xiaochunjimmy I use Windows 10 with Google Chrome.
About the bugs. It's very many nags here and there. Some of them only accur sometimes.

Shortcut keys that stop working like "home", "page down" and "end" for example.
The size of the scroll handle is miscalculated.
The scroll handle position is wrong sometimes.
The scroll handle is jumping around on drag sometimes.
If I click below the scrollbar it should jump down. Instead it jumps up.
The scrollbar does not scroll all the way down.

There are so many small things with a library like this that I hope that you go back to the native scrollbar that is always reliable.

Hi, jenstornell~
We've fixed the bugs of scrollbar, please have a look whether it's OK now~
We removed the library and used pure CSS to customize the style of the scrollbar.

@xiaochunjimmy Hmm, I don't see a scrollbar at all in Google Chrome on a computer. I refreshed the CSS but still no luck. On a mobile device however it works as expected.

Not sure if you changed anything but now it's working for me here on a computer as well.

Hmmmmm... Our scroll bar does not seem to be obvious enough.
hank you for your advice~ We'll make it looked better in the next version.

Hi, man~
Is there still any problems with the scrollbar? If everything's OK, I'll close this issue~

Seems to work great now! :)


support closure

allow function definition in local scope and capture local variables

also support the following abbreviate notation
var func = ($a : Int) : Int => $a * $a
$func = ($a : Int) => $a * $a * $a
$func = ($a : Int)
     =>  $a * $a * $a * $func($a)

in the following context, does not allow variable capture

constructor
prefix assignment


Set debug logger implementation before parsing directives

Programmatic configuration takes precedence over config file so for the most part we evaluate it after directives. But the debug logger implementation isn't really configuration but just swapping code - it should have its level effected by directives so needs to be set first

Codecov Report
Base: 73.85% // Head: 73.85% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (a3dc786) compared to base (339d54b).
Patch coverage: 25.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##           v3/dev     #444   +/-   ##
=======================================
  Coverage   73.85%   73.85%
=======================================
  Files         140      140
  Lines        6402     6403    +1
=======================================
+ Hits         4728     4729    +1
  Misses       1403     1403
  Partials      271      271

Flag
Coverage Δ

no-tinygo
73.90% <25.00%> (+<0.01%)
:arrow_up:

overall
73.85% <25.00%> (+<0.01%)
:arrow_up:

tinygo
71.92% <25.00%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

waf.go
35.08% <25.00%> (+1.15%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.