[Snyk] Upgrade next from 14.2.10 to 15.0.2

Snyk has created this PR to upgrade next from 14.2.10 to 15.0.2.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

⚠ Warning: This PR contains major version upgrade(s), and may be a breaking change.

The recommended version is 318 versions ahead of your current version.

The recommended version was released on a month ago.

[!IMPORTANT]

Warning: This PR contains a major version upgrade, and may be a breaking change.
Check the changes in this PR to ensure they won't cause issues with your project.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:

🧐 View latest project report
📜 Customise PR templates
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

:no_entry: Snyk checks have failed. 8 issues have been found so far.

Icon
Severity
Issues

Critical
0

High
0

Medium
8

Low
0

:white_check_mark: security/snyk check is complete. No issues have been found. (View Details)
:no_entry: license/snyk check is complete. 8 issues have been found. (View Details)


Add appliedTo Pod namespace / name to audit logs

We include 2 new fields in the audit logs:

the "direction" of the NP rule (Ingress or Egress)
the reference of the Pod to which the NP rule is applied (as
<namespace>/<name>).

These new fields are NOT added to the end of the logs, which could
break existing consumers.
We also refactor the e2e tests for AuditLogging to improve correctness
and readbility. Some logs were not validated properly because of an
early "break" statement, and some log fields (e.g., logLabel) were not
validated.
Fixes #3794

Depends on #5098

/test-all

/test-all


Trying to build the web-server example, has issues with docker

Hello, I am trying to work with the web-server example. I pulled the code from GitHub repo and executed the following Docker command to build the example.
docker build . --build-arg ARCH=armv7hf --tag web-server:armv7hf
The docker execution resulted in the following error.
`=> ERROR [ 6/10] RUN git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&    . /opt/axis/acapsdk/envi  0.2s

[ 6/10] RUN git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&    . /opt/axis/acapsdk/environment-setup* &&    ./configure     --enable-shared     --malloc-libc     --prefix=/usr/local     --bindir=/usr/local/bin     --libdir=/usr/local/lib     --sysconfdir=/usr/local/packages/list/html     --datadir=/usr/local/packages/list/html     --mandir=/usr/local/man     --logdir=/tmp     --plugdir=/usr/local/packages/list/lib     --pidfile=/tmp/monkey.pid     --incdir=/usr/local/include/monkey     --systemddir=/usr/lib/systemd/system &&    make &&    make install:
0.217 error: corrupt patch at line 6

Dockerfile:15
14 |     WORKDIR /opt/monkey
15 | >>> RUN git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&
16 | >>>     . /opt/axis/acapsdk/environment-setup* &&
17 | >>>     ./configure
18 | >>>     --enable-shared
19 | >>>     --malloc-libc
20 | >>>     --prefix=/usr/local
21 | >>>     --bindir=/usr/local/bin
22 | >>>     --libdir=/usr/local/lib
23 | >>>     --sysconfdir=/usr/local/packages/list/html
24 | >>>     --datadir=/usr/local/packages/list/html
25 | >>>     --mandir=/usr/local/man
26 | >>>     --logdir=/tmp
27 | >>>     --plugdir=/usr/local/packages/list/lib
28 | >>>     --pidfile=/tmp/monkey.pid
29 | >>>     --incdir=/usr/local/include/monkey
30 | >>>     --systemddir=/usr/lib/systemd/system &&
31 | >>>     make &&
32 | >>>     make install

33

ERROR: failed to solve: process "/bin/sh -c git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&    . /opt/axis/acapsdk/environment-setup* &&    ./configure     --enable-shared     --malloc-libc     --prefix=/usr/local     --bindir=/usr/local/bin     --libdir=/usr/local/lib     --sysconfdir=/usr/local/packages/list/html     --datadir=/usr/local/packages/list/html     --mandir=/usr/local/man     --logdir=/tmp     --plugdir=/usr/local/packages/list/lib     --pidfile=/tmp/monkey.pid     --incdir=/usr/local/include/monkey     --systemddir=/usr/lib/systemd/system &&    make &&    make install" did not complete successfully: exit code: 128`

Am I wrong with versions here because that's the only possible scenario I could think off. As, I have just pulled the code from example and trying to execute it.
TIA!

Hi @lbRaytec , thanks for your question.
The example builds and test pass in nightly tests, so more information about your system would be required to see if the problem can be replicated.
What OS and OS version are you using?
Which version of Docker Desktop or Docker Engine are you using?
Run docker --version and paste command and result here
Are you standing on main branch of this repository when building? Could you paste the SHA1 of last commit or run git log -1 and paste the command and output here?
Have you modified the web-server example?

Windows 11 version 23H2
Docker version (Docker version 27.2.0, build 3ab4256)
commit bea36cadd81ca7a14ae0df52920018a5b94736a6 (HEAD -> main, origin/main, origin/HEAD)
Author: renovate[bot]<EMAIL_ADDRESS>Date:   Tue Sep 17 15:40:17 2024 +0000
chore(deps): update super-linter/super-linter action to v7

No, I have not modified the example. did `git clone <url>`.  Then, navigated into the `web-server` example and ran as per the documentation.

Are you using Docker Desktop for Windows and building there or are you using Windows Subsystem for Linux (WSL) with Ubuntu?

Navigated to web-server folder.
 `set ARCH=armv7hf`

Have to use set here because it is the windows alternate for export.
 docker build . --build-arg ARCH --tag web-server:ARCH

This gives me the error!

Hi, I tested with WSL and it still reproduces the same error.
`docker build . --build-arg ARCH --tag web-server:$ARCH
[+] Building 7.8s (11/15)                                                                                docker:default
=> [internal] load build definition from Dockerfile                                                                                0.1s
=> => transferring dockerfile: 1.51kB                                                                                0.0s
=> [internal] load metadata for docker.io/axisecp/acap-native-sdk:1.15-armv7hf-ubuntu22.04                                                                                2.9s
=> [auth] axisecp/acap-native-sdk:pull token for registry-1.docker.io                                                                                0.0s
=> [internal] load .dockerignore                                                                                0.1s
=> => transferring context: 2B                                                                                0.0s
=> [ 1/10] FROM docker.io/axisecp/acap-native-sdk:1.15-armv7hf-ubuntu22.04@sha256:0ba1915b2f6b175e81ff2229a1f9057509e2541a92110856e98de10b376f179a                                                         0.0s
=> [internal] load build context                                                                                0.1s
=> => transferring context: 30.20kB                                                                                0.1s
=> CACHED [ 2/10] WORKDIR /opt                                                                                0.0s
=> [ 3/10] COPY monkey.patch .                                                                                0.1s
=> [ 4/10] RUN git clone -b v1.5.6 https://github.com/monkey/monkey                                                                                4.0s
=> [ 5/10] WORKDIR /opt/monkey                                                                                0.1s
=> ERROR [ 6/10] RUN git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&    . /opt/axis/acapsdk/environment-setup* &&    ./configure     --enable-shared     --malloc-libc     --prefi  0.4s

[ 6/10] RUN git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&    . /opt/axis/acapsdk/environment-setup* &&    ./configure     --enable-shared     --malloc-libc     --prefix=/usr/local     --bindir=/usr/local/bin     --libdir=/usr/local/lib     --sysconfdir=/usr/local/packages/list/html     --datadir=/usr/local/packages/list/html     --mandir=/usr/local/man     --logdir=/tmp     --plugdir=/usr/local/packages/list/lib     --pidfile=/tmp/monkey.pid     --incdir=/usr/local/include/monkey     --systemddir=/usr/lib/systemd/system &&    make &&    make install:
0.328 error: corrupt patch at line 6

Dockerfile:15
14 |     WORKDIR /opt/monkey
15 | >>> RUN git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&
16 | >>>     . /opt/axis/acapsdk/environment-setup* &&
17 | >>>     ./configure
18 | >>>     --enable-shared
19 | >>>     --malloc-libc
20 | >>>     --prefix=/usr/local
21 | >>>     --bindir=/usr/local/bin
22 | >>>     --libdir=/usr/local/lib
23 | >>>     --sysconfdir=/usr/local/packages/list/html
24 | >>>     --datadir=/usr/local/packages/list/html
25 | >>>     --mandir=/usr/local/man
26 | >>>     --logdir=/tmp
27 | >>>     --plugdir=/usr/local/packages/list/lib
28 | >>>     --pidfile=/tmp/monkey.pid
29 | >>>     --incdir=/usr/local/include/monkey
30 | >>>     --systemddir=/usr/lib/systemd/system &&
31 | >>>     make &&
32 | >>>     make install

33

ERROR: failed to solve: process "/bin/sh -c git apply --ignore-space-change --ignore-whitespace ../monkey.patch &&    . /opt/axis/acapsdk/environment-setup* &&    ./configure     --enable-shared     --malloc-libc     --prefix=/usr/local     --bindir=/usr/local/bin     --libdir=/usr/local/lib     --sysconfdir=/usr/local/packages/list/html     --datadir=/usr/local/packages/list/html     --mandir=/usr/local/man     --logdir=/tmp     --plugdir=/usr/local/packages/list/lib     --pidfile=/tmp/monkey.pid     --incdir=/usr/local/include/monkey     --systemddir=/usr/lib/systemd/system &&    make &&    make install" did not complete successfully: exit code: 128`

Hi, just a quick update on this one. I created an Ubuntu 22.04 LTS set up in VM. I then pulled the code and ran the web-server example there and it worked. I am wondering there is something wrong when it comes to Windows may be? As you previously mentioned that it works for Mac OS.
I tried with three different Windows system and all resulted in the same error.
All the three Windows system has same OS version. docker version.
However, I will further generate EAP file and see how it goes! will keep you posted. Thanks for your time!

As you previously mentioned that it works for Mac OS.
We have tests on Linux machines which works. I'm not sure if Docker Desktop on Mac OS has the same issue.


Feat: add DisableUnexported

DisableUnexported specifies whether to disable the unexported fields of struct.
This is useful for debugging APIs.
This should close #121.

I noticed that the previous changes did not have accompanying test cases, which resulted in a slight drop in test case coverage. For that reason, I've dedicated today to writing a set of test cases to show that I'm doing it right.
There are still some errors in the CI process, but I don't think they're caused by my changes.
@davecgh Could you take a look at this PR at a convenient time?


Investigate switching to ceph/ceph images for CI

As per https://github.com/ceph/ceph-container/issues/1899#issuecomment-871644412 it may be that ceph/ceph is a better base image for the CI as it is less likely to lag behind a ceph release by days.
Let's make sure it fits our needs and if so, make the switch.

Was done in PR #566


adding store prop to ChatCompletionCreateRequest

fixes #660

Hi, thanks for the PR.

Could you add href links for distillation and evals as in the documentation?
Could you change the target branch to dev, please?

Whether or not to store the output of this chat completion request for use in our model distillation or evals products.

sure


feat: check if first jellyfin user is admin

Solves issue #610 by checking if the first Jellyfin user (at initial set-up) is an admin on Jellyfin or not, as required for set-up.
Description
When logging in with Jellyfin credentials for the initial set-up, this feature additionally checks if the user is an administrator on Jellyfin. If not, it gives an appropriate error. Changes include adding Policy.IsAdministrator to the interface JellyfinUserResponse, a separate check in authentication for (first user only), and addition of a separate error message in the frontend.
Please note that this is my first ever PR! I am really new to this stuff but am trying to learn, so I sincerely apologize if I made any mistakes or did anything not in accordance to the contribution rules.
Screenshot (if UI-related)

To-Dos

[x] Successful build yarn build
[ ] Translation keys yarn i18n:extract
[ ] Database migration (if required)

Issues Fixed or Closed

Fixes #610

Thank you for the pr! Been meaning to do this but haven't been able to get time. This saves me so much time
Will review this following week! 😊

@Danish-H Could you resolve the merge conflicts?

@Danish-H Could you resolve the merge conflicts?

Apologies, I am certain I did this in the incorrect way, but it is working on my end

I noticed you did a lot of work! Thank you so much for continuing to maintain this repo for all of us, genuinely appreciate how long you've been doing it!
I took care of the conflicts in a very janky way because I suck at git, but I think this should be good for merge to the latest develop now

I'll take a look at and review it c:

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

v1.8.0
GitHub release

Your semantic-release bot :package::rocket:


[Discussion] Alternative IAsyncObservable definition.

Some while ago, @bartdesmet mentioned that after the release of the IAsyncEnumerable interface and contract, the IAsyncObservable implementation will be reviewed. At that time there were some open question how the interface will evolve: will it support batch processing, will it use Task or ValueTask, will it support concurrent cancellation? Now that the IAsyncEnumerable interface is part of the BCL, it is a good point, to see how the IAsyncObservable can be aligned to its enumerable counter-part. I will propose an alternative IAsyncObservable definition later.
First let me give you a short, selected feature list of IAsyncEnumerable, which the current IAsyncObservable is lacking at least partially. It supports:

concurrent upstream cancellation via CancellationToken
exceptionless in-stream cancellation via break in the foreach loop
exceptional cancellation via throw
sequential, asynchronous disposal of resources (the IDisposeAsync may only be called during MoveNextAsync)

As you may have noticed, I'm stressing here several kinds of cancellation. Cancellation is one of the toughest points of the synchronous Rx. And it tooked me months to understand why (synchronous) in-stream cancellation is not possible and therefore operators like Take cannot work how one would naivily expect. The current IAsyncObservable inherits those problems, because it is an one-to-one translation of its synchronous counterpart.
Take for example the following example, a poor man's implementation of a timer:
Task<IDisposable> t = AsyncObservable
	.Range(0, 10)
	.Select(_ => await Task.Delay(1000))
	.SubscribeAsync(observer);
 var disposable = await t;

Awaiting the task t will take roughly 10 seconds. At the end you get an IDisposable with that you could cancel the already finished sequence. But why should I wait 10 seconds to get something that is worthless?
There are three reason why one may want to await a task:

To get its value.
To get the time point when it is completed.
To get the exception that stopped the task to complete successfully.

Exceptions are propagated downstream, so we can scratch item 3. In the example above we could use it for point 2. But there is a dedicated method in the observer just therefore. We all know that we have to use some scheduler to retrieve the IDisposable before the sequence is already finished, but what is the meaning of the awaited time there?
The IAsyncEnumerable uses a cancelation token to cancel an on-going sequence. With that we could write:
Task t = AsyncObservable
	.Range(0, 10)
	.Select(_ => await Task.Delay(1000))
 	.SubscribeAsync(observer, token);
await t;

Now cancellation can be done at any time. Even before we subscribe. So why should we await here the task t?
I propse to get the completion of the sequence, may it be successful or exceptional.
The interface of the observable would then be:
public interface IAsyncObservable<out T>
{
	ValueTask SubscribeAsync(IAsyncObserver<T> observer, CancellationToken token);
}

Since we already get the completion and the potential errors with awaiting the subscription task, the observer interface can be very thin:
public interface IAsyncObserver<in T> : IAsyncDisposable
{
	ValueTask<bool> OnNextAsync(T value);
}

As expected there is a method to push items downstream. The return value is similar to the return value of MoveNext, but here it is the consumer that signals that it do not want to receive more values. That is compare able to the break keyword in the IAsyncEnumerable case. The next value may not be pushed before the previous task completed. There is no OnComplete nor an OnError method for the observer. If an operator needs to know if a sequence stopped successfully or exceptional it needs to await the subscription task. Once a sequence ends (sucessfully or exceptionally), the observer is disposed by the source. Here the same rules apply like for the IAsyncEnumerable interface. The DisposeAsync method may not be called before the last call to OnNextAsync completed including the returned task.
The contract for a forward operator, i.e., IAsyncObservable -> IAsyncObservable like 'Select', 'Where', 'Skip', etc.)

If an observer throws an exception on OnNextAsync it is ok to pass-through this exception.
If some user code, like for example a selector, throws an exception it is ok to throw this exception on the OnNextAsync callee.
It is ok to pass-through the cancellation token. It is not required to directly check for cancellation.
If an operator initiates a (long) running task, but returns a completed task, it can await the on going task in the DisposeAsync call. Examples would be Throttle, Sample, Prefetch, etc.

A combining operator has to handle exceptions and cancellation differently. The operator has to catch an exception to then cancel the subscriptions of the sources. Hence it needs a CancellationTokenSource on its own.
I already played around with this design in my repo https://github.com/quinmars/AsyncObservable2. I know that the upstream flow of exceptions and completion breaks with Rx traditions and may be controversial, but it makes exception handling much easier, in many cases exceptions do not need to be handled at all, because they can be passed through.

Changes with ValueTask rather than Task are planned, across the board. Addition of cancellation support on selectors, predicates, etc. too. All of this in support of being analogous to IAsyncEnumerable and the System.Linq.Async operator surface.
This said, there are no plans to deviate from the flow of notifications for the three channels, in support of remaining analogous to Rx and dual to IAsyncEnumerable. I.e. IAsyncEnumerator is really a Func<Task<Notification>> (that is, MoveNextAsync codifies asynchronously returning any of three possible results) while IAsyncObserver is a Func<Notification, Task> (that is, On*Async codifies asynchronously providing any of three possible results).
The exact form of cancellation being provided top-level is still under consideration, in particular the dual of GetAsyncEnumerator taking in a CancellationToken. Current thinking is that most observers have a token as part of their state to pass down to e.g. async selectors and predicates with cancellation support. That matches the idea that observers are "hot" and stateful. As such, AsyncObserver methods (new in Async Rx compared to classic Rx, using an approach of "lifting" observable algebra over observer algebra) would likely take CancellationToken parameters. This is analogous to async iterators in C# supporting a cancellation token that binds to GetAsyncEnumerator.
(Typed on phone. More to follow later.)


Dynamic Population Interaction

Simulate interactions between different species and within species populations.

[x] Develop interaction models for predator-prey relationships, competition, and symbiosis.
[x] Ensure species coexistence and impact on each other's population dynamics.

Closed by #58


Donation widget state machine

What:
Add the base to define the donation widget state machine and integration with his host component.
Why:
The idea is to have a central place where the state flow can be easily understood and thus potentially easy to update. The state machine is agnostic to the technology and allow to be declarative on:

Allowed states
Allowed transitions between states
Define services for async operations
Guards and conditions to block or not transitions between states

Unlike other API like React context the idea is that here you read a single file or interact with a single snippet like the one that give live to this implementation and have clear expectations about the state flow.
Read more at https://xstate.js.org/
How:

Configure Jest to run with TS
Configure Storybook with Tailwind CSS to showcase the widget
Define state machine
Create component to host state machine

Media

State machine storybook
Interactive state machine flow

In order to not stack too much changes together and after @arathjz review I will merge this one.

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


account identity list unexpected data type

The dictionary that we get from client.account.identity.list() has an updated_at value that is an integer, not a datetime object as would be expected.
    {
        "api_key": "dff990e42c14ef5d5aa280b0e9fea9e2",
        "created_at": "Wed, 13 May 2015 10:46:05 GMT",
        "expires_at": null,
        "id": "5dbb799eea004fcb3e2d999d767e0a20",
        "label": "DataSift",
        "master": true,
        "status": "active",
        "updated_at":<PHONE_NUMBER>
    }

Calling the API via curl returns all timestamps as integers; I believe this should be the new standard across all new endpoints that are implemented:
➜  ~  curl -X GET 'https://api.datasift.com/v1.2/account/identity' -H 'Auth: USERNAME:API_KEY' | jq .
{
  "count": 2,
  "page": 1,
  "pages": 1,
  "per_page": 25,
  "identities": [
    {
      "id": "ef554f96b...",
      "label": "...",
      "api_key": "1cefe96f4...",
      "status": "active",
      "master": true,
      "created_at":<PHONE_NUMBER>,
      "updated_at":<PHONE_NUMBER>,
      "expires_at": null
    },
    {
      "id": "a55677c3f622...",
      "label": "...",
      "api_key": "85fcd26e0...",
      "status": "active",
      "master": false,
      "created_at":<PHONE_NUMBER>,
      "updated_at":<PHONE_NUMBER>,
      "expires_at": null
    }
  ]
}

I'm not sure why created_at would be returned as a DateTime object

The output mapper determines which fields are converted in to DateTime objects. updated_at has now been added to this file and should be available on the next release.
If you wanted all fields to return as timestamps instead of datetimes you just need to edit the output_mapper.py and rebuild.


Trying to hide all files except the ones in a specific directory

I try to hide all files except the ones in the directory "meanio" like this:
node-debug --hidden ^(?!meanio$).* server.js

But I get this error:
-bash: !meanio: event not found

Side note, no regular expressions work, not just this one. It's just usually, it blatantly ignores my regex, and doesn't even give me an error.
I'm on yosemite with node version 0.10.35

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

Ok, I've debugged the two reasons why my code wasn't working.
Forgive my newbiness, and I hope this helps someone else!
First of all, the options aren't included unless you place them before the main script. So, that's why my regex's weren't registering. that's probably a common thing here with unix commands, but as I said, I'm a noob, but I'm always learning!

So, if you want to only include certain files or directories, you need do do a negative lookahead and escape the regular expression.
So, say you only wanted files with the word jacket or cake in the file. You could do that like this:
--hidden=^\(?\!\(.*jacket.*\)\|\(.*cake.*\)\)

If you just wanted files with the word jacket in them, you could do this:
--hidden=^\(?\!.*cake.*\)

Hope this helps someone else too!

A simpler way how to escape the regular expression argument is to use single quotes:
--hidden='^(?!.*cake.*)'

@zwhitchcox , can this issue to be closed?

No activity by long time. Feel free to reopen it, if issue doesn't solved.


Memory Leak

Hi Alan, I'm making a call to pareto::front.hypervolume() and found that this call leaks memory.  When running through valgrind, this is the error that I'm getting:
==77189== Mismatched free() / delete / delete []
==77189==    at 0x4C32D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==77189==    by 0x1A6082: pareto::fpli_hv(double*, int, int, double const*) (hypervolume.h:820)
==77189==    by 0x1ACCDA: pareto::front<long, 3ul, unsigned int, pareto::r_tree<long, 3ul, unsigned int, std::less<long>, std::allocator<std::pair<pareto::point<long, 3ul, void> const, unsigned int> > > >::hypervolume(pareto::point<long, 3ul, void>) const (front.h:930)

And the final valgrind ouput looks like this:
==77189==
==77189== HEAP SUMMARY:
==77189==     in use at exit: 391,049 bytes in 4,115 blocks
==77189==   total heap usage: 1,901,304 allocs, 1,897,189 frees, 471,587,726 bytes allocated
==77189==
==77189== LEAK SUMMARY:
==77189==    definitely lost: 8,008 bytes in 32 blocks
==77189==    indirectly lost: 265,176 bytes in 2,133 blocks
==77189==      possibly lost: 0 bytes in 0 blocks
==77189==    still reachable: 117,865 bytes in 1,950 blocks
==77189==         suppressed: 0 bytes in 0 blocks
==77189== Rerun with --leak-check=full to see details of leaked memory
==77189==
==77189== For counts of detected and suppressed errors, rerun with: -v
==77189== ERROR SUMMARY: 32487 errors from 7 contexts (suppressed: 0 from 0)

Do you have any ideas for fixing this problem?  Thanks!

I've submitted a pull request to fix this problem here: https://github.com/alandefreitas/pareto/pull/7

Oh! I missed that free() when refactoring the code.
Since I'm pretty sure the original algorithm in http://lopez-ibanez.eu/hypervolume in not actively maintained, I should probably just refactor the whole thing to real C++ at some point.

No worries, I really appreciate all the functionality that you've built :)


Add A Contact Us page

If you have any queries you can ask it in our Discord server and Tag the Web-Team.


Mimic interrupts ship for takeoff.

The Mimic mod doesn't let me use the lever to take off after I land on any moon (stays on waiting for ship to land). plus when the timer hits 12:00am, the ship doesn't take of either.

I don't think this is an issue with the mimic mod, it's likely another mod you have installed.

yeah just noticed, i was about to delete the post, my bad XD


Added file logging.

A new LogAdapter class was created to be able to redirect logs to several implementations
Made AndroidLogAdapter public so others can easily use it
The FileLogger removes the separator lines and  creates timestamped CSV logs with several options including:

max line lenght (then breaks to new file)
internal or external storage
different date formats
looper (for the IO operation)

Note. It's the responsibility of the implementing app to request WRITE_STORAGE permission. If no permission is presented the FileLogger will catch silently

as far as I could find this PullRequest closes the following:
https://github.com/orhanobut/logger/issues/14
https://github.com/orhanobut/logger/issues/100
https://github.com/orhanobut/logger/issues/102

If anyone sees that pull request (before the developer merges and release it) and wants to use this code, feel free to grab it on jitpack.io
https://jitpack.io/#budius/logger/1.12_file_logger
repositories {
   maven { url 'https://jitpack.io' }
}

dependencies {
   compile 'com.github.budius:logger:1.12_file_logger'
}

@budius  Thanks for the PR, sorry for late reply. I wasn't able to check anything for a short of time. I'll check the PR asap. 👍

@orhanobut no rush. It's just that I started some project using the logger with file logger, so it's there on jitpack and I'll switch back to yours asap
One comment about the PR for your consideration. The FileLogger is supposedly to fail silently if there's any issue (e.g. no write permission). But the CI rules doesn't allow me to have empty blocks (on the catch (IOException e)), so I still wrote an  e.printStackTrace(); which is not really silent, maybe we could have an empty() method just to make CI happy, but that's kind of a dirty hack.
I'll happily accept suggestions on that matter.

Thanks! Any expected merge date?

Great!When is code merged?

@Maragues and @wangzhiyuan  I don't know when will it be officially merged by @orhanobut
But feel free to use a copy from jitpack.io meanwhile.
repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile 'com.github.budius:logger:1.12_file_logger_2'
}

I would love to see this merged. And maybe a few docs about how to add the file handler.

First of all, great job! I'm checking the code right now and I need to go through a couple things thoroughly. 👍 javadocs

regarding JavaDocs.
The FileLogger have a typical implementation on the class comment.
Also every method in the builder are properly commented too.
That way, if you have some gradle task or something that exports the docs from the comments, it should be all there.

@orhanobut  regarding this comment:

One comment about the PR for your consideration. The FileLogger is supposedly to fail silently if there's any issue (e.g. no write permission). But the CI rules doesn't allow me to have empty blocks (on the catch (IOException e)), so I still wrote an e.printStackTrace(); which is not really silent, maybe we could have an empty() method just to make CI happy, but that's kind of a dirty hack.

I've added SupressWarning for it, in a separate branch. I guess it's better than not fail really silently. For your consideration
https://github.com/budius/logger/tree/feature/file_logger_silent

Those are a lot of comments. I'll answer them individually.
But as a general idea, a lot of what I did was for this specific use case that I was testing a single board computer running Android running over several without a UI so some of the performance related issues were not that critical, although I'm sure some of those are easily addressed.

As an added comment, a few days ago I noticed that the FileLogger as a LogAdapter is not a great solution, as the developer is sending the logs as single string, the Printer is composing into that pretty LogCat visualisation, and now the FileLogger and decomposing it back to single string.
The best way would be to have the FileLogger to request to the printer for the raw data, so it can be directly called to the background handler for the file operation. But again, that requires deeper changes on the inner working of the library.

This PR was overseeded by this: https://github.com/orhanobut/logger/pull/112

@budius we've also seen FileLogger  with performance problem in the getLogFile method.
part 1:  while (newFile.exists()) {
existingFile = newFile;
newFileCount++;
newFile = new File(folder, String.format("%s_%s.txt", fileName, newFileCount));
}
part 2:     int lineCount = 0;
br = new BufferedReader(new FileReader(existingFile));
while (br.readLine() != null) {
lineCount++;
}


Add Auras for Inspiring/Dread Marshal Stances

Can we hold off on this? A better implementation will be available soon.

Closing for better implementation later


Broken links

Links are broken for API Reference, Example and FAQ.

Just tried some links and they work for me. Would you mind being specific and sharing the said links?

In README.md links are pointing to https://mavsdk.mavlink.io/main/en/examples/ and I think correct path is https://mavsdk.mavlink.io/main/en/cpp/examples/ and its same error with the FAQ and API Reference under "Qiuck Links:"
Only "API Reference", "Example" and "FAQ" is broken.

Aha! Thank you. Would you mind creating a PR to fix it?

Done.

Thanks a lot @fpersson.


Popover

Ionic v1 popover had a ~300ms click blocker after the popover was removed to prevent clicks from propagating down. This hurt the user experience for users who were trying trying to quickly press buttons after the popover was removed.
Would be great if there was another solution in v2 instead of the click blocker.


IE9 Undefined response

Hi, I am using the following code to upload files in my program. It's working fine in all other browsers and even in IE 10,11, Edge. But, in IE9 it is showing the 'response' Undefined. File is saving in DB on the server. The console.log in below code printing In-Progress and In-Error but not In-Success.
   Upload.upload({
            url: '/api/attachment',
            file: file
          }).progress(function (evt) {
            var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
            file.uploadPct = progressPercentage;
            console.log('In-Progress');
          }).success(function (data, status, headers, config) {
              console.log('In-Success');
              file.uploadPct = 100;
              file.attachmentData = data.response;
            }).error(function(response, status) {
                    console.log('In-Error');
                    console.log('response=' + response);
            });
    });

Can you help, please.?

If it shows inError then your server returns an error response.


Ability to create and update comments on a story.

Implements #83
Codebase is a pleasure to work in, thanks again.

Coverage increased (+0.1%) to 97.209% when pulling 5429021a1d35ce75a04e94449a78fa8175c18619 on samsonasu:bs-create-update-comments into ef880440166bddee7ae37fb5f894f80d3d3445fa on dashofcode:master.

Coverage increased (+0.1%) to 97.209% when pulling 717e3a39d102524c3b605caa0c8e71d51e110704 on samsonasu:bs-create-update-comments into ef880440166bddee7ae37fb5f894f80d3d3445fa on dashofcode:master.

Sure thing 👍

Coverage increased (+0.1%) to 97.224% when pulling d93ca0f5a287078354448892a1c4cdfc54f9f269 on samsonasu:bs-create-update-comments into ef880440166bddee7ae37fb5f894f80d3d3445fa on dashofcode:master.

👍


Dont silently remove invalid Cookies in none-strict mode

Q
A

Bug?
no

New Feature?
maybe

Version
6.3.0

Actual Behavior
If we set a cookie with an invalid name, we silently ignore it if strict-mode is off
Expected Behavior
We should throw an exception, i dont see a use-case where it makes sense to silently ignore cookies which were explicitly set by the user but are malformed
Steps to Reproduce
$cookieJar = new CookieJar(false, [
    './invalid' => 'cookie names must not start with .'
]);
$client = new Client();
$client->request('GET', 'http://needcookie.local', ['cookies' => $cookieJar]);

We will execute the request but cookies will be empty.
Possible Solutions
Either we throw an exception so the user knows that something is not ok, or, as strict mode is off, maybe we just allow it..? (I actually have a real-world case, my current workaround is to set the cookie-data via headers on the request-options array.. that is ok'ish for me, but it took a bit to find the problem)

The only place where we use the strict mode variable inside the CookieJar class is to throw an exception if the cookie is invalid.
https://github.com/guzzle/guzzle/blob/6.3.3/src/Cookie/CookieJar.php#L169
        // Only allow cookies with set and valid domain, name, value
        $result = $cookie->validate();
        if ($result !== true) {
            if ($this->strictMode) {
                throw new \RuntimeException('Invalid cookie: ' . $result);
            } else {
                $this->removeCookieIfEmpty($cookie);
                return false;
            }
        }

So I would like more info as why we need to throw an exception when a developer has specifically set the strict option to false.. Why not setting strict mode to true is not enough?

The behaviour of strict is very confusing here: If set, and the user specifies an invalid cookie-name, we run into an exception. Thats totally fine and exactly what a user would expect. But if we have strict=false and we use a malformed cookie-name, the cookie is silently ignored. That is unexpected and sub-optimal, as the only way to find out what is wrong is to debug/dig-into-vendor. In my case, a third party app required a cookie with a name that started with . to be present. Finding out that the cookie wasnt sent even though i specified it took some time. So if we could either tell the user "Hey, what you just tried wont happen", or (my fav) simply allow to send cookies with rfc-incompliant names when not in strict mode, would be much better here imho.

Ah.. so the your request here is to send the cookie although it is invalid... got it but not sure if this is something we want :/

I think my problem is more the silent-ignore part. OK, its not completely silent, we do have return false, but the user cant know if this means "Cookie with that name already exists" or "invalid name", so the user has to dig into the method to find out.
Also, if im not mistaken, we only drop the cookie with the invalid name if the cookie has no content. If it does have content, we allow it, no? That seems inconsistent to me. We should either:
A) Not allow invalid names at all and raise the exception, no matter if strict or not or empty or not
Or B) allow invalid names if not-strict, no matter if the cookie is empty or not
So we are at least consistent.

I just ran into the same issue.
The cookie with invalid name (OAMAuthnCookie_www.spar.si:443) was silently removed without any warnings or errors (when using the default $strict = false).
I agree with @leberknecht  that there should be a way to know that your cookies are getting removed.
Also, I'm not sure if it makes sense to remove cookies with invalid names at all, especially if the major browsers (Chrome, Firefox) support them.


docs: update legal docs [TRG7]

Description

update legal docs [TRG7]

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

@tomaszbarwicki / @almadigabor Please review and merge.


Wrong french label for the brand

If the language is set to french, in the main product view the brand is displayed as "Magasins" but it should be "Marques".
The real store label is correct, so currently 2 labels are called "Magasins".
To be clear, in french :
Stores = Magasins
Brands = Marques

Should be fixed in next release.


Will Pinecone ever have HTTP and Websocket support?

A friend of mine is making a lib made in Pinecone for a chat service. So will Pinecone ever have support to even attempt to make that?

Hard to say. Pinecone isn't under active development right now, so if you want that, you may have to bind it yourself with cppCode(). However, I'm not @wmww, so I may be incorrect.

You could try to use a C/C++ library (see the 'Linking with C++' section in https://github.com/wmww/Pinecone/blob/master/tutorials/7_temporary_hacks.md). I wouldn't recommend putting too much work into a Pinecone project at this point, since (as @wsKilljoy pointed out), I am no longer actively developing Pinecone.

I see, thanks


overriding haskellPackages.cairo in overlay can lead to infinite loops

Describe the bug
I've been trying to override haskellPackages.cairo with an overlay (for ghc9.2 support)
          hfinal: hprev:
          let
            gk2hs-src = pkgs.fetchzip {
               url = "https://github.com/teto/gtk2hs/archive/298e46920d850b450d10ceddd432fdcc106a7df4.tar.gz";
               sha256 = "sha256-bWnP7MpV10N/TqQVvS3cfRr7RG7pAR0FqPgerpwfzX4=";
           };
           in {
          gtk2hs-buildtools = hnew.callCabal2nix "gtk2hs-buildtools" "${gtk2hs-src}/tools" {};
           cairo = hnew.callCabal2nix "cairo" "${gtk2hs-src}/cairo"  {};
}

and then enter my nix develop but this triggered an infinite loop. After investigating a bit , turned out that haskellPackages.cairo depends from cairo (pkgs/development/libraries/cairo/default.nix), my  now overriden haskell cairo was passed as a buildInput instead ofthe C library hence the infinite loop.
What I did instead was copy/paste the nixpkgs definition for gtk2hs-buildtools and make sure I was passing the correct cairo at each step. Solved it.
Expected behavior
Not sure. I wanted to at least log it.
Metadata
(unstable):
+  ❯ nix flake metadata nixpkgs
Resolved URL:  github:NixOS/nixpkgs/nixpkgs-unstable
Locked URL:    github:NixOS/nixpkgs/30d3d79b7d3607d56546dd2a6b49e156ba0ec634

This happens because haskellPackages, like all sub package sets in nixpkgs, uses a scoped callPackage where the attribute from the inner scope (haskellPackages) will take precedence over the attribute from the outer scope (pkgs).
In cases where the inner scope would take precedence, but something from the outer scope is needed, it needs to be specified manually by passing explicit args to callPackage (in the case of hackage-packages.nix these can be generated).
Your example would need to be adjusted like this:
          hfinal: hprev:
          let
            gk2hs-src = pkgs.fetchzip {
               url = "https://github.com/teto/gtk2hs/archive/298e46920d850b450d10ceddd432fdcc106a7df4.tar.gz";
               sha256 = "sha256-bWnP7MpV10N/TqQVvS3cfRr7RG7pAR0FqPgerpwfzX4=";
           };
           in {
          gtk2hs-buildtools = hfinal.callCabal2nix "gtk2hs-buildtools" "${gtk2hs-src}/tools" { inherit (pkgs) cairo; };
           cairo = hfinal.callCabal2nix "cairo" "${gtk2hs-src}/cairo"  {};

I don't think this is an issue / bug per se, as it is just a necessary problem with the way nixpkgs' scopes are designed. “Fixing” this would mean introducing an interface alien to nixpkgs which I'd like to avoid – haskellPackages has enough specific quirks as it is already.

I understand there is no good solution in the short term so I'll close it but it's annoying. If we could only warn the user that the derivation may be in another set that would be already better.


Incorrect horizontal timeline example

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

You must agree to search and the code of conduct. You must fill in this entire template. If you delete part/all or miss parts out your issue will be closed.
If you are technical, you should reporting bugs along the lines of https://marker.io/blog/how-to-write-bug-report. If you are not technical, we will make allowances, please try to make an effort to understand the process.
Describe the bug
Hi there,
the horizontal timeline example found at https://github.com/jgraph/drawio-diagrams/blob/dev/examples/timeline-infographic-shapes-horizontal.drawio unfortunately just contains what looks identical to the vertical timeline example.
Regards,
Thilo

Thanks for the pointer. We use that link in blog posts, so we can't change its name.

Hello @davidjgraph,
well, that's right as I discovered the file via the blog post. The text, however, is misleading as the blog post's text references a horizontal layout, but you end up at the vertical example.
Regards,
Thilo


onStartNewCall

onStartNewCall is not exposed, yet the example tries to call it.
TypeError: kurentoGroupCall.onStartNewCall is not a function
at Socket. (/home/ubuntu/webfiles/kurento-group-call-master/example/server.js:87:22)

any solutions for this.
I am getting the same error.

I have had the same error. Have anyone find solution.

I have the same error. It maybe lost function prototype

Try another way.


Cancel Region Play Loop Properly

Hi, thanks for making this fantastic repo!
I'm trying to build a system with which users can freely navigate the video and loop whatever intervals they want. The region plugin seems to work properly at first glance. However,  it seems there are some bugs with the region plugin, specifically associated with looping.
[Problem]

Once I start looping on a region, I would not be able to use the native cursor from the wavesufer to navigate the video (you might still be able to select timestamps on the waveform but when you start playing it will jump back to the looping region). The only way to jump to other parts of the video is to click on other regions.

If I loop on multiple regions, the browser would start being overloaded and becomes extremely slow. This happens when I've done looping a region and try to loop on other regions without stop the video first.

[Reproduce]
You could reproduce all these problems with the annotation and video-annotation examples.
I've tried to solve it by myself but haven't succeeded yet. I doubt it's because there's not any function actually "cancel" the looping. Does anyone have an idea?
Thanks

I can confirm. This is related to endlessly chained events that are binded to the wavesurfer and the difference that this.loop plays differently than with playLoop(). This needs to be unified.