Incomplete file path Validation

Version: v1.0.0 (https://github.com/MPDL/upverse/commit/c835405ed66050556a6a0810c2d466e73c88d466)
OS: Linux
Testdate: 18./19.07.2023
User: User
For some special characters (e.g. &) no „Invalid input“ error message is displayed, when editing the file path.
Actions:

Select destination data set
Select a file
Add a file path with special characters (e.g. FilePath@&())
Click anywhere else -> NO „Invalid input“ error is displayed
Click Upload -> No error message in Upverse, but the file is not displayed in the Dataverse Dataset

Server: upverse-1.0.0.Setup.exe - build package release #64
OS: Windows
Testdate: 26.07.2023
User: Hofmann, Catherina
Test result: ok

Version: v1.0.0 (e75e3d37f20a3bcafcc4426803ec5b9333eb907b)
OS: Linux
Testdate: 26.07.2023
User: User
Test result: ok


Added scripts which generate the final analysis report

The last step of the CI process - report generation.
Here:

parsing analyzers results;
generating the report.

@yegor256 please, take a look

@yegor256 done

@APotyomkin thanks!


Going FullScreen in iOS

Well, I am using the web and want to go to full screen on the web when click on the button.
I think it's missing something on the web.
I know you have to request for the full screen to do full-screen
Link: https://api.dart.dev/stable/3.4.4/dart-html/Element/requestFullscreen.html

Well how can I request full screen on safari

v0.6.0 (or 1.0.0 if we move to v1) should contain this: https://github.com/dart-lang/web/blob/6b8a46561b82de9b20d77d9ac491844d303ca08f/lib/src/dom/dom.dart#L3211 and should be out soon (I have all the PRs I want in - just need to fix a small issue with updating the web IDL). To unblock yourself, use an extension method:
extension on Element {
  external JSPromise<JSAny?> requestFullscreen([JSObject options]);
}

See https://dart.dev/interop/js-interop/usage#extension-members-on-interop-types.

Closing out. Will be released soon!

If we want to implement fullscreen anyhow, without using dart:html.
Is there any workaround? maybe using dart:js_interop?

https://github.com/dart-lang/web/issues/259#issuecomment-2189509263 has a workaround using dart:js_interop to requestFullscreen until v1 is out. Is that what you're looking for?

Thank you so much for this! I didn't realize that the #259 comment was actually a workaround. I'm not very familiar with js_interop and thought it was something that would be released soon.
For anyone else who comes across this, here’s the code that worked for me:
import 'dart:js_interop';

import 'package:web/web.dart';

extension on Element {
  external JSPromise<JSAny?> requestFullscreen([JSObject options]);
}

extension on Document {
  external JSPromise<JSAny?> exitFullscreen([JSObject options]);
}

class FullscreenUtils {
  static Future<void> enterFullscreen() async {
    document.documentElement!.requestFullscreen();
  }

  static void exitFullscreenOnWeb() {
    document.exitFullscreen();
  }
}

@kevmoo Is the fullScreen available now?

https://pub.dev/documentation/web/latest/web/Element/requestFullscreen.html ?

Thanks for the link


Implement Environment Variables as Config Map

Environment variables are becoming unwieldy this is a placeholder issue to move them to a dedicated ConfigMap.

Implemented in: https://github.com/slingshotlabs/reaction-oss-helm-chart/pull/21


invalid json response due to authentication redirection

I got an invalid ajax response when I add middleware to allow only authenticated users to access categories page, this is due to redirect to login page and in network tab, it redirect to index page because there is an active session. If I remove the middleware I get every thing working fine or if I turned of server side proccessing.
If I call the ajax route via browser it works fine. and if the user isn't authenticated it will redirect to login page.
this is my PHP code
public function getCategories(Datatables $datatables)
    {
        return $datatables->eloquent(Category::query())
            ->addColumn('action', '')
            ->make(true);
    }

this is the auth middleware
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class AdminAuth
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!Auth::check())
            return redirect('/admin/login');
        if (Auth::user() && Auth::user()->role == "admin")
            return $next($request);
        return redirect()->to('/');
    }
}

and here is the HTML code

                            english name
                            arabic name
                            actions

finally js code
$(function () {
                $('#categories-table').DataTable({
                    serverSide: true,
                    processing: false,
                    "language": {
                        'url': '/plugins/datatables/extensions/languages/arabic.json'
                    }
                    ,
                    ajax: '/admin/categories-data',
                    columns: [
                        {data: 'id'},
                        {data: 'ar_name'},
                        {data: 'en_name'},
                        {
                            data: 'action',
                            orderable: false,
                            searchable: false,
                            render: function (data, type, column, meta) {
                                return '
' +
                                    '<button class="btn btn-danger btn-sm delete-cat" data-cat-id="' + column.id + '" title="delete">' +
                                    'delete</button>' +
                                    ' <button class="btn btn-warning btn-sm edit-cat" data-ar-name="' + column.ar_name + '" data-en-name="' + column.en_name + '"  data-cat-id="' + column.id + '" title="edit">' +
                                    'edit</button>' +
                                    '
';
                            }
                        }
                    ]
                });
            });

System details

Operating System windows 10
PHP Version 5.6.30
Laravel Version 5.4
Laravel-Datatables Version 7.2

Thanks in advanced :)

Does the same middleware applies to your route? I think there is a misconfiguration somewhere in your routes.

yes same middleware
when I get json data for a table with more than 4 columns, I don't fall in this error
check this pls https://stackoverflow.com/questions/37164753/laravel-datatable-invalid-json-response/37168966?noredirect=1#comment72644803_37168966
this is same issue
Thank you very much @yajra

@Ali-Dalal you might be using artisan serve? Please use homestead or apache stack. Most of random redirect issues/404 are due to artisan serve.

@yajra
Yes because of artisan server
when I pushed the application to production 1 month ago, every thing works fine like a pure water :)
Thank you very much
I will close the issue

Thanks for the feedback!


Soundcloud feeds are marked unread on reload

What version are you running? If it's not a build from Git, ensure that there's more than one URL in your urls file.
Can you provide links to feeds? I don't use Soundcloud, and I could find any links on a few pages I visited just now.

Okay, so I just used getrssfeed.com to get a feed URL for some artist off the main page: https://feeds.soundcloud.com/users/soundcloud:users:179900582/sounds.rss That works correctly with the code from master—upon reload, things that were already read stay read. 2.9 behaves the same.
@4thdwarflord, in addition to questions from my previous comment, can you share a URL you're using? An expanded, step-by-step description of your actions might also help.

I'm experiencing this problem with the following two feeds:
http://feeds.robertburriss.com/psychologyofattractivenesspodcast
http://skeptoid.com/podcast.xml
The problem appears only when some amount of time has passed since the last reload, I'm still figuring out how long exactly it takes to reappear.

I took a look at the feeds, but I don't immediately see what can be causing an issue. Also, I still don't have a proper description of the issue itself. Does "feed marked unread" means that all the items that were read and deleted re-appear?
As a guess: you don't have reset-unread-on-update in your config, do you?

All the items that were read become marked as unread. I haven't tried deleting them.
I do not have reset-unread-on-update set in my config, no.

Okay. And what version of Newsbeuter are you running?

Output of newsbeuter -v:
newsbeuter 2.9 - http://www.newsbeuter.org/
Copyright (C) 2006-2010 Andreas Krennmair

newsbeuter is free software and licensed under the MIT/X Consortium License.
Type `newsbeuter -vv' for more information.

Compilation date/time: Dec  7 2015 04:47:17
System: Linux 4.7.2-1-ARCH (x86_64)
Compiler: g++ 5.3.0
ncurses: ncurses 6.0.20150808 (compiled with 6.0)
libcurl: libcurl/7.50.1 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.33 libssh2/1.7.0 (compiled with 7.46.0)
SQLite: 3.14.1 (compiled with 3.9.2)
libxml2: compiled with 2.9.2

Can you try building from the master branch and check if the bug persists? It might be that you're running into #164.

The current master does indeed seem to fix this issue.
A bugfix release would be neat.

Ah, good. I'm still hoping to hear from @4thdwarflord…
The release is out of my hands now; we're all waiting for @akrennmair to ship it.


Mouse-over callback

As the tiles are n:1-mappable to the raw images, it should be fairly easy to store a lookup-structure along with the images for providing a callback with the source image name. This can be used to provide info-boxes or links to standalone pages for the image, in the manner of http://publicdomain.nypl.org/pd-visualization/

One compact structure could be prefix + sources[n] + postfix.

Solved by merging of the branch imagemap.


binds: option to fullscreen pinned window

Describe your PR, what does it fix/add?
fixes https://github.com/hyprwm/Hyprland/issues/1147
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)

Pinning a fullscreen window is not allowed.
if u need, i can store the pin state somewhere when fullscreened and restore it back afterwards

Is it ready for merging, or does it need work?
ready

this is not that easy and will break


Added support for canard style flaps

Description
To support canard style flaps, the following changes had to be implemented:

Create wing cutouts / flap pofiles that can include also the leading edge of the wing
To allow placing the hinge points outside the wing, I implemented an absolute translation. This required an extension of the cpacs schema, which now includes an optional "translation" node for hinge points

Closes #816

How Has This Been Tested?
I tested different settings with TiGL Viewer. The canard flap can now be either some part of the wing or the whole wing at once.
Screenshots, that help to understand the changes(if applicable):
Checklist:

[ ] A test for the new functionality was added.
[x] All tests run without failure.
[x] The new code complies with the TiGL style guide.
[x] New classes have been added to the Python interface.
[x] API changes were documented properly in tigl.h.

Codecov Report

Merging #817 (7dc256d) into master (14bbf35) will increase coverage by 0.11%.
The diff coverage is 71.79%.

@@            Coverage Diff             @@
##           master     #817      +/-   ##
==========================================
+ Coverage   62.25%   62.36%   +0.11%
==========================================
  Files         291      291
  Lines       23466    23614     +148
==========================================
+ Hits        14608    14728     +120
- Misses       8858     8886      +28

Impacted Files
Coverage Δ

src/CCPACSPoint.cpp
68.18% <0.00%> (+4.54%)
:arrow_up:

...c/control_devices/CControlSurfaceBorderBuilder.cpp
86.53% <70.00%> (-1.70%)
:arrow_down:

...devices/CCPACSControlSurfaceBorderTrailingEdge.cpp
53.60% <100.00%> (+2.88%)
:arrow_up:

src/control_devices/CCPACSTrailingEdgeDevice.cpp
87.91% <100.00%> (+2.01%)
:arrow_up:


int doesn't extend Comparable

This is an old issue since Dart 1 and doesn't seem to have been fixed. https://github.com/dart-lang/sdk/issues/8741
This behavior is preventing the below API patterns from being efficiently implemented.
extension ListExtension<T> on List<T> {
  void sortBy<T2 extends Comparable<T2>>(T2 Function(T element) f) {
    this.sort((a, b) => f(a).compareTo(f(b)));
  }
}

Trying to invoke this function
[1].sortBy((x) => x);

will cause error: int doesn't extend Comparable<int>
We need to change generics parameter to num at every invocation site.
[1].sortBy<num>((x) => x);

The behavior is unfortunate, but not easily correctible.
Dart's int implements num which implements Comparable<num>. That means that int can't also implement Comparable<int>. A Dart 2 type can only implement one version of a generic interface.
Sometimes type inference trips over this, and it fails to recognize that it can choose T2 a num in the example given here and still work successfully. Maybe improving type inference could help, but at the risk of potentially getting worse results in other cases.
Since Comparable is actually a contravariant interface, maybe adding variance annotations can make a difference. Probably not. I think that with proper variance annotations, we can let a subclass implement a more specialized version of a covariant interface, and a more general version of a contravariant interface, but here we need a more specialized version of a contravariant interface.

If we do make the type argument of Comparable contravariant (that is, if it isn't too much of a breaking change),
class Comparable<in T> {...}

then int <: Comparable<num> <: Comparable<int>, so inference can succeed as [1].sortBy<int>((x) => x);, which would make the example work.

Yep. This is quite annoying.

I regularly run into this problem with Int64 from the fixnum package. This case is interesting because the workaround of explicitly specifying the type argument doesn't work.
The class hierarchy is as follows:
 abstract class IntX implements Comparable<object> {}
 class Int32 implements IntX {}
 class Int64 implements IntX {}

IntX implements Comparable<object> because e.g. Int64.compareTo() can do a value comparison against Int64, Int32 or int, and Object is the common supertype. But this means that it's impossible to use methods like sortBy() with Int64 even when explicitly specifying the type argument.
If Comparable was considered contravariant, that would solve this problem.
P.S. I think this a design mistake in the fixnum package. IntX should implement Comparable<IntX>, which would still allow the method signature to be int compareTo(Object) to support comparison against integers. Maybe I'll file a separate bug about it, though it's probably impossible to fix now without breaking a bunch of existing code.

Another solution would be to allow multiple type constraints on a parameter, e.g. like this:
void sortBy<C, T2 extends C & Comparable<C>>(T2 Function(T element) f)

Currently this isn't supported by Dart, as discussed in Issue 1152.
For completeness sake, I'll point out that in Java the problem can be solved with a lower bounded wildcard:
void sortBy<T2 extends Comparable<? super T2>>(T2 Function(T element) f)

Java uses wildcards extensively instead of supporting covariant/contravariant typing. Java's system is more flexible and more sound than the Dart's (which assumes all generic types are covariant, which is nonsense of course), though it leads to more verbose type signatures. I suspect the Dart team would prefer to label types explicitly as covariant/contravariant like Erik suggested above, even if it's less flexible.

I think an easy solution may just be to mention this gotcha in the docs of sortedBy or wherever else this is easy to trip.
Here is a dartpad example:
import 'package:collection/collection.dart';

class Foo {
  Foo(this.value);

  int value;

  String toString() => value.toString();
}

void main() {
  final a = <Foo>[Foo(2), Foo(5), Foo(3)];

  // final b = a.sortedBy((f) => f.value);
  // Will fail with:
  //   lib/main.dart:13:15:
  // Error: Inferred type argument 'int' doesn't conform to the bound 'Comparable<K>' of the type variable 'K' on 'IterableExtension|sortedBy'.
  //  - 'Comparable' is from 'dart:core'.
  //   final b = a.sortedBy((f) => f.value);
  //               ^
  // /app/local_pub_cache/hosted/pub.dev/collection-1.17.2/lib/src/iterable_extensions.dart:65:20:
  // Info: This is the type variable whose bound isn't conformed to.
  //   List<T> sortedBy<K extends Comparable<K>>(K Function(T element) keyOf) {
  //                    ^
  // Error: Compilation failed.

  // final b = a.sortedBy<int>((f) => f.value);
  // Will fail with:
  //   lib/main.dart:25:18:
  // Error: Type argument 'int' doesn't conform to the bound 'Comparable<K>' of the type variable 'K' on 'IterableExtension|sortedBy'.
  //  - 'Comparable' is from 'dart:core'.
  //      final b = a.sortedBy<int>((f) => f.value);
  //                  ^
  // /app/local_pub_cache/hosted/pub.dev/collection-1.17.2/lib/src/iterable_extensions.dart:65:20:
  // Info: This is the type variable whose bound isn't conformed to.
  //   List<T> sortedBy<K extends Comparable<K>>(K Function(T element) keyOf) {
  //                    ^
  // Error: Compilation failed.

  // So you have to do:
  final b = a.sortedBy<num>((f) => f.value);

  print(b);
}

@bwilkerson - would it be feasible to specialize the "Couldn't infer parameter" message in the case of Comparable<int>?
This could save us from having to add a warning about this in every method that uses <T extends Comparable<T>>.

We have the option of declaring num-specific extensions:
extension ComparableNum<T extends num> on Iterable<T> {
  List<T> sortedBy([int Function(T, T)? compare]) => [...this]..sort(compare ?? Comparable.compare<num>);
}

which should take precedence over extension ...<T extends Comparable<T>>  on Iterable<T> when both match.
Then, at least, our own extensions won't give these errors.
It's annoying, and special-casey, but num is a place where we do that already.

We have the option of declaring num-specific extensions:

I do not think that would help here. These are all generic methods, and we need to specialize on the generic argument to the method - not the generic argument for the collection. These methods are passed a keyOf callback instead of a compare callback, and the return type of the keyOf callback is what defines the method generic.

We should consider generalizing type inference such that it is able to find solutions in this kind of situation. Here is an example that works fine in Kotlin:
open class A<out X: A<X>>() {}
open class B() : A<B>() {}
open class C() : B() {}

fun <X: A<X>>f(x : X) {}

fun main() {
    f(C()); // Inferred type argument `B`.
}

The corresponding example in Dart fails, because it does not make an attempt to use B as the type argument:
class A<X extends A<X>> {}
class B extends A<B> {}
class C extends B {}

void f<X extends A<X>>(X x) {}

void main() {
  f<B>(C()); // OK.
  f(C()); // Compile-time error: "Couldn't infer ..".
}

This situation is not directly covered by the discussion in https://github.com/dart-lang/language/issues/1194, but it does seem to be related: We need to take the bound of X into account during inference of the invocation of f.

As a work-around for people that come here looking for why sortBy/sortedBy doesn't work for them, try casting your int to num in the keyOf function:
[2, 1].sortBy((e) => e.$1 as num);

[(2, 2), (1, 1)].sortBy((e) => e.$1 as num);

Closing: The generalization of type inference that I mentioned here has been performed by means of the new feature known as 'inference-using-bounds', which is enabled by default in Dart 3.7.0. See dart-lang/language#3009 and the language change log for further info.
In particular, the following examples are working in DartPad, main channel at this time:
void main() {
  print([1]..sortBy((x) => x));
}

extension ListExtension<T> on List<T> {
  void sortBy<T2 extends Comparable<T2>>(T2 Function(T element) f) {
    this.sort((a, b) => f(a).compareTo(f(b)));
  }
}

import 'package:collection/collection.dart';

class Foo {
  Foo(this.value);

  int value;

  String toString() => value.toString();
}

void main() {
  final a = <Foo>[Foo(2), Foo(5), Foo(3)];
  final b1 = a.sortedBy((f) => f.value);
  final b2 = a.sortedBy<num>((f) => f.value);
  final b3 = a.sortedBy((f) => f.value as num);
  print('$b1, $b2, $b3');

  // The following still fails, it doesn't satisfy the declare bounds:
  // final b = a.sortedBy<int>((f) => f.value);
}


Updated office address for Dave Joyce (OH-14)

Dave Joyce (OH-14) moved his office from Painesville, Ohio to Mentor, Ohio.
Old address:
1 Victoria Pl. Room 320
Painesville, OH 44077
New address:
8500 Station St, Suite 390
Mentor, OH. 44060
URL proof: https://joyce.house.gov/my-office-locations/
h/t @shannonturner for the tip.

Thank you!


v202401: checkpoint week 2 day 4 solution

This implementation is buggy and fixed in https://github.com/skyzh/mini-lsm/commit/8dbaf54e38662d01aec7bccbb75e8d9e37d081c9. (1) does not correctly handle the case for compaction and flush happen at the same time. (2) SSTs should be added to the snapshot before applying compaction result.


Investigate localStorage in multiple tabs

localStorage is shared between tabs, but the localStorage lock is restricted to a single tab. Can trackers operating in different tabs send duplicate events?
Possible solution: save the lock in localStorage.

Good thing to explore...

The biggest problem with putting a lock in localStorage is that the page could unload before it has a chance to release the lock. The lock will still be there if the user returns to the page and it will prevent events from being sent.

Hmm good point... I wonder if there is a way of identifying a tab uniquely which would be safer...

We might be able to do something like this:
http://balpha.de/2012/03/javascript-concurrency-and-locking-the-html5-localstorage/
Every time we acquire the localStorage lock, we set its value to the current time.
If we want to acquire the lock but it already exists, we check whether it is more than 10 seconds old.
If it is, then we conclude that the last tracker was unloaded before it was able to release the lock, and we acquire the lock.

Cool putting a TTL on the lock sounds like a good approach

I can make this bug appear if I change the tracker by wrapping the code which empties localStorage in a setTimeout of about 20ms.

This approach should prevent almost all duplicate events when multiple tabs are open simultaneously. But it could lead to lost events. Suppose a user opens an inbound link in a new tab, triggering a link click event in the current tab. If the link click isn't sent fast enough, the second tab won't be able to access localStorage, and will hold the page view event in memory. If the user leaves the second tab before triggering a second event there, the page view event will never make it to localStorage or the collector.

Another possible approach would be to treat tabs asymetrically. For example, say that only the first tab opened gets to use localStorage.

just passing through, but there's also sessionStorage which is per tab.  might be helpful?

I thought about using sessionStorage, but the problem is that it gets cleared when the page session ends. The only reason the tracker uses localStorage is so that if events fail to send and the user leaves the page, the events will still exist when they return.

IndexedDB provides better concurrency primitives than localStorage. It isn't yet fully supported across all major browsers, but is worth investigating...


Per-packet overhead can easily push packet size over SLICE_LENGTH

When sending small packets, they get grouped into one big packet if possible, however the overhead is not taken into consideration. This means if we send many small packets, for example 255 packets of 4 bytes, goes over SLICE_LENGTH. Sending even more even smaller packets, like 1000 of 1 byte, also over the buffer size (1400), and even the maximum MTU (1500). These messages then get dropped by either the transport's max packet size, or it gets truncated to the buffer length, resulting in a corrupt packet.

Fixed by 6d65002e0bd1a10959b9bff6ac723ea4e55b26bf
The unreliable channel was not considering the message length for packet size calculation. The reliable channel was doing it correctly already. Added tests to make sure we are covering this case.


Travis CI builds have stopped working: cabal and ghc versions appear not to be compatible

Travis CI builds have stopped working. gbc cannot be successfully built. From a recent PR build that only changed some C# code:

on the commandline: warning:
-this-package-key is deprecated: Use -this-unit-id instead
In-place registering bond-<IP_ADDRESS>...
cabal: '/opt/ghc/bin/ghc-pkg' exited with an error:
bond-<IP_ADDRESS>: Warning: haddock-interfaces:
/home/travis/build/Microsoft/bond/build/compiler/doc/html/bond/bond.haddock
doesn't exist or isn't a file
bond-<IP_ADDRESS>: Warning: haddock-html:
/home/travis/build/Microsoft/bond/build/compiler/doc/html/bond doesn't exist
or isn't a directory
bond-<IP_ADDRESS>: installed package info from too old version of Cabal (key field
does not match id field)
CMake Error at cabal_build.cmake:60 (message):

The Travis build is now using ghc 8.0.2 with cabal <IP_ADDRESS>.
It may be that this combination is not compatible.

Non-issue after commit 52dbdb0ba882748b1d5857e7c60791c346a8e889


Replace moment with luxon in core/frontend

Ghost makes heavy use of the moment and moment-timezone libraries all over our code bases. However, it's an extremely heavy dependency, we have difficulties getting the timezone to "stick" and the project itself essentially recommends not using it anymore: https://momentjs.com/docs/#/-project-status/
Instead of using Moment, we want to change to using Luxon. We're using Luxon because of its timezone capabilities - something the core of Ghost makes heavy use of. In smaller packages where we only need to manipulate dates, rather than creating, storing and retrieving them, we'll use date-fns.
For the main Ghost codebase, @daniellockyer has already laid some groundwork, added Luxon as a dependency and ensured the default timezone is set to UTC.
From here, we need to start replacing usages of moment with luxon.
This is a new thing for us, we haven't used the library in many places yet and so we don't know a lot about it. For that reason, we want to start on areas of the codebase where we can do the least harm - the frontend. If we end up displaying dates incorrectly for some reason on the frontend that's much easier to fix than if we store the wrong date!
How to work on this issue
The slow and steady approach to refactoring is the only thing that really works. Branches should be very short lived (<1 day if possible). Therefore, please do not attempt to do this entire refactor in a single PR. It is not possible for us to review!
Instead, please find a single file inside of core/frontend, make the necessary changes, test and lint your work, then submit a PR. If you like, repeat that with another file.
Luxon provides a useful guide to help translate between code in moment and luxon, along with important functional differences.
Please follow our [contribution guidelines] closely, particularly being sure to reference this issue in your commit. Refactor commits should not use emojis as they are not user-facing changes.
Thank you 🙏 ❤  🙏

@ErisDS @matthanley any feedback on my PRs?

Hey @danimajo I still really want to get this done, but it turned out to require a lot more knowledge & context than I hoped. I don't think our tests are going to do a good job of picking up if formats change slightly. I also think we need more context of exactly which luxon functions to use where and why.
I know a couple of your PRs have now been closed by the stale bot, that's my bad. I need to look at them and provide feedback. The issue is that I don't have enough experience with luxon myself yet to know if the changes are correct :(
If there's anyone out there with a bunch of experience with it who'd be willing to help making changes, triaging PRs or just setting up some good example usages, I'd love to hear from you :)

I'm going to close this until we have a bit more context about how to do it & can support the effort.
If there's anyone intimately familiar with moment -> luxon migrations that's interested to help, I'm all :ear:


[pre-sve] NotifyUpdateApplied fails if triggered before the node joins the fabric

Problem
When a node reboots after a successful OTA update the sending NotifyUpdateApplied might get triggered before the Node re-joins the fabric. In this case the command fails to be transmitted. This fails the TC-SU-2.6 test case
For example, in case of Thread transport re-joining the Thread network takes some time, see attached log snippet.
Proposed Solution
OTARequestor class should delay sending NotifyUpdateApplied until the device has joined the fabric.

[
tc-su-26-dut-log.txt
](url)

I think it'd be tricky to figure out how long to delay. There are no timestamps in your log snippet. How long between the first failed Advertise operational node 2BF32B802FF0AE27-0000000000000002 vs the second one which was successful?

Several seconds, I don't have a more specific info than that. But this will vary between devices and network conditions anyway.
I meant "delay" in a more general sense, as in "don't attempt NotifyUpdateApplied until the device has joined the fabric" -- how exactly to accomplish that I'm not yet sure.

Hi! I'm seeing this after trying to increase OT baud rate to 921600. Seems like the call to HandleDnssdInit is delayed quite a lot. The only thing that got it to work was a combination between a timer and capturing the kDnssdPlatformInitialized event.

Hi all,
I think I am seeing this problem here, I found another issue that is related but my code has already implemented that change
https://github.com/project-chip/connectedhomeip/pull/22131
Is there any further update for the OTA state machine for this?


Error in LightSail Service: Potential Miscall of is_resource_filtered Function

Steps to Reproduce
I've encountered an error in the LightSail service related to the is_resource_filtered function. The issue seems to stem from a potential miscall within the code block below:
if not self.audit_resources or is_resource_filtered(
    is_resource_filtered(arn, self.audit_resources)
):
    ports = []

The is_resource_filtered function appears to be called twice within the same conditional statement. This might lead to unexpected behavior or incorrect filtering results.
Expected behavior
if not self.audit_resources or is_resource_filtered(arn, self.audit_resources):
    ports = []

Actual Result with Screenshots or Logs
N/A
How did you install Prowler?
Cloning the repository from github.com (git clone)
Environment Resource

LightSail

OS used
Windows
Prowler version
v4.4.0
Pip version
pip 22.0.2
Context
No response

Hello @h4r5h1t this is a great catch, thank you very much for reporting and opening the PR to fix it 🚀


Liquidity rewards empty pool

Liquidity rewards empty pool ui changes
Issues changed/fixed by this PR:

gray out liquidity info when the % of the pool is equal to 0
change text of the button "add more lp tokens" to "deposit lp tokens" when the % of the pool is equal to 0
enable 'withdraw all' button to allow the user to withdraw the lp tokens when there are no rewards yet

@r-czajkowski I resolved all the issues you mentioned so this PR is ready for round 2! 🥊

The issues are fixed! Ready for another review!


Support for Multiple Numbers

Issue:
I am currently using this library to build an application that involves receiving calls. However, I have encountered a limitation where I can only use a single number for receiving calls. My application requires the capability to handle calls from multiple numbers.
Use Case:
In my scenario, I need the ability to configure the application to receive calls from multiple predefined numbers. This feature would enable developers to create more versatile and inclusive applications that cater to various use cases, such as customer support lines, group communication apps, or any situation where interaction with different numbers is necessary.

Hi @wmt-raj-mobile
Please reach out to Twilio Help Center for TwiML Application assistance.


[Bug] React Spellchecker Issue

Before Reporting

[X] I found no existing issues matching my bug
[X] My issue is not caused by a plugin or theme

Describe the Bug

Discord has been randomly crashed. i had nothing done. i was doing my homework for school on paper and had my pc running with discord opend. i hope the images can help you to find the bug
%c[Spellchecker]
Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 5/13/2022 10:00 -0800, _f: undefined, _strict: undefined, _locale: [object Object]
Error
at Function.createFromInputFallback (https://discord.com/assets/da438bff819561370309.js:1350:330)
at Bn (https://discord.com/assets/da438bff819561370309.js:1376:696)
at Wn (https://discord.com/assets/da438bff819561370309.js:1379:356)
at Zn (https://discord.com/assets/da438bff819561370309.js:1379:199)
at Yn (https://discord.com/assets/da438bff819561370309.js:1378:886)
at Kn (https://discord.com/assets/da438bff819561370309.js:1379:697)
at zn (https://discord.com/assets/da438bff819561370309.js:1379:731)
at o (https://discord.com/assets/da438bff819561370309.js:1346:961)
at Object.918513 (https://discord.com/assets/40236214a0bc649dcd00.js:21:346)
at l (https://discord.com/assets/5d67886ea6bce8e5a6d8.js:1:154)
at Object.908570 (https://discord.com/assets/40236214a0bc649dcd00.js:14:239)
at l (https://discord.com/assets/5d67886ea6bce8e5a6d8.js:1:154)
at Object.101577 (https://discord.com/assets/40236214a0bc649dcd00.js:2:329)
at l (https://discord.com/assets/5d67886ea6bce8e5a6d8.js:1:154)
at Object.877271 (https://discord.com/assets/800621cfb61dbe56693c.js:353:630)
at l (https://discord.com/assets/5d67886ea6bce8e5a6d8.js:1:154)
at Module.842656 (https://discord.com/assets/4af4a7dc54bbb41d6125.js:42:175)
at Function.l (https://discord.com/assets/5d67886ea6bce8e5a6d8.js:1:154)
[DEPRECATED] Please use `subscribeWithSelector` middleware
%c[NativeDispatchUtils]
3
%c[BetterDiscord]%c [WebpackModules~getModule]%c
undefined

Expected Behavior
no crash
Steps To Reproduce
i dont know. this issue was happening while im doing my schoolwork on a paper and had discord open
Operating System
Windows
Discord Version
Stable
BetterDiscord Version
v1.8.5
Anything else?
No response

The crash here looks like a duplicate of #1564

yes. Ive researched and I think this is a issue with the iso datetime. I am not shure if this is caused by a message from a webhook that was send at the same time. In the webhook was an embed with timestamp, but i dont know if there are any links between the two things

Are you using any other JavaScript bundler to build your React project?


Bump Dependencies #5693363171

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/5693363171

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jenkins-is-staging seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


ISPN-12344 cannot preload shared remote stores

https://issues.redhat.com/browse/ISPN-12344

Thanks @oraNod


Search Function: option to search all returned fields in a DataGrid

🙋 Feature Request

🤔 Expected Behavior

😯 Current Behavior

💁 Possible Solution

🔦 Context

💻 Examples

Not clear what you are after. Please edit your post and supply more details.

It would be nice to have a search box that can "filter" across all fields in a datagrid - rather than having to set up filters for each column


Enhance the data analytics of -> Machine Learning and Data Science/Basic/Diabetes Prediction/Diabetes.ipynb

Hello @Kushal997-das
Is your feature request related to a problem? Please describe.
I would Like to add various methods like comparison with various ML models
Describe the solution you'd like.
I would like to test and train and come up with better solution . I would also like to use lot of plots for better data visualization.
Describe alternatives you've considered.
This will be useful as it will give better understanding of the data.
Add any other context or screenshots about the feature request here.
No response

@kottarivaibhav At a time one issue .


I want to copy only new files. Why is this action so slow?

is:open label:question
I got a boxcryptor container on google (1,7GB, approx 5k files) and i what to have a dump of the container on my NAS (the idea is to dump it every 30 min) to have a own history using rsnapshot on the local container.
so my idea was to run:
rclone copy dave_kr8<EMAIL_ADDRESS>--low-level-retries 20 --retries 20
with a cronjob every 30 min. unfortunately i got end up with
2016/07/13 05:59:18 Transferred:            0Bytes (0Byte/s) Errors:                 0 Checks:                 0 Transferred:            0 Elapsed time:     25m8.8s
when i added just one file to the container.
so from my point of view, getting a filelist from the google api is fast, comparing time and size is fast, too.
what is wasting so much time? is it recalculating hashes?
how can i reduce the time for "copying" (the copy command) only a few new files every 30 min?
i appreciate if one can give me a more detailed insight in what is going on behind the rclone command.
Edit:
** hmmm, my nas is running on a ssd, and i use the noatime option to mount my filesystem. maybe this is the problem i am facing???
** but it's the same result if i use  --checksum oder --size-only command. or is the copy command not using the options?

Getting a filelist from the google api can be slow - especially if you have lots of files.  You can time how long it takes by doing rclone size dave_kr8:.  It might be interesting to compare the local speed also with rclone size<EMAIL_ADDRESS>If you do those two measurements then it will tell you where the problem is.

hmmm, my nas is running on a ssd, and i use the noatime option to mount my filesystem. maybe this is the problem i am facing???

Unlikely I would have thought

but it's the same result if i use --checksum oder --size-only command. or is the copy command not using the options?

copy does obey those options, yes.
Do the files get their modification time updated when they are placed in the drive?  If so then you can use this which might speed things up
You can use this to see if that looks likely
rclone --max-age 1d --no-traverse lsl  dave_kr8:

And then this for syncing
rclone --max-age 1d --no-traverse copy dave_kr8<EMAIL_ADDRESS>--low-level-retries 20 --retries 20

Note that you'll need the latest rclone v1.31 (just released) to use the --no-traverse flag.
Note also that you can watch the progress of the directory scanning if you use the -v flag.

first, thank you for the fast reply.
i am on the new v1.31.
concerning the speed, i get the following results:
rclone size dave_kr8:

Total objects: 5757
Total size: 1.662G<PHONE_NUMBER> bytes)
2016/07/13 14:30:39
Transferred:            0Bytes (0Byte/s)
Errors:                 0
Checks:                 0
Transferred:            0
Elapsed time:    11m40.7s

and
clone size<EMAIL_ADDRESS>
Total objects: 5756
Total size: 1.662G<PHONE_NUMBER> bytes)
2016/07/13 14:16:35
Transferred:            0Bytes (0Byte/s)
Errors:                 0
Checks:                 0
Transferred:            0
Elapsed time:           0

as exspected for the ssd.

Do the files get their modification time updated when they are placed in the drive?

the changetime is changed, the modification time is fixed, as it makes sense for me.

Note also that you can watch the progress of the directory scanning if you use the -v flag.

using the verbose mode i see a lot of
low level retry */20 (error googleapi: Error 403: Rate Limit Exceeded, rateLimitExceeded)
i am still wondering about the slow api-requests for getting the list of files. i tried a bit of hacking on the pyhton interface (https://developers.google.com/drive/v2/reference/files/list) and there i get chunks of filedata (max. 1000) per 1-2 seconds.
is collecting filename, size and getting the hash the limiting factor in rclone ?

Google seem to be rate limiting rclone at the moment #560 which might be related.  So I think that the speed of the sync is being limited by google rather than anything else....
You are only listing 5k objects - that should take no time at all!

finally, using my own credentials for the api i ended up with:
Transferred:            0Bytes (0Byte/s)
Errors:                 0
Checks:              5757
Transferred:            0
Elapsed time:     1m21.1s
2016/07/13 19:59:16 Go routines at exit 20

this are some reasonable timings.
thanks.
to be closed !

Interesting thanks.
I'll write more about rclone rate limits in #560 which I've seen you've subscribe to and I'll close this one.


wifi-ax: batman-adv: Add fixes from openwrt-routing 21.02 branch

The batman-adv for non-802.11ax devices is a fork from the openwrt-routing 21.02 branch. The private copy is used because the QCA kernel is extremely old and doesn't match the kernel from OpenWrt 21.02. And the mac80211 version (and its backports/compat code) is not fully compatible with the official one.
The batman-adv updates from the official openwrt-routing 21.02 branch must be regularly, manually cherry picked.

Superseded by #432


darwin version gets from version not platformResources.darwin.CFBundleVersion

As you should be able to see from the image below, the app's bundled version if that of Electron's, not the app's.

The code is as follows
package.json [edited]:
{
  "name": "Shake",
  "version": "0.3.0"
}

gulpfile.js:
gulp.task('default', function() {
    gulp.src("")
    .pipe(electron({
        src: './src',
        packageJson: pkg,
        release: './build/release',
        cache: './build/cache',
        version: 'v0.37.6',
        packaging: true,
        platforms: [
            'darwin-x64',
            'win32-ia32',
            'win32-x64',
            'linux-ia32',
            'linux-x64'
        ],
        platformResources: {
            darwin: {
                CFBundleDisplayName: pkg.name,
                CFBundleIdentifier: 'xyz.lumios.shake',
                CFBundleName: pkg.name,
                CFBundleVersion: pkg.version,
                icon: './src/resources/IconMac.icns'
            },
            win: {
                "version-string": pkg.version,
                "file-version": pkg.version,
                "product-version": pkg.version,
                "icon": './src/resources/IconWindows.ico'
            },

        }
    }))
    .pipe(gulp.dest("./build/out"));
});

This issue fixed by v0.1.1. .
Thanks for reporting.

Thank you so much 👏


Added support for Package Auto-Discovery

https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518

Thank you!


Use gosu to fix volume permissions at startup

Run as root, use gosu to switch to jenkins user

Thank you for this pull request! Please check this document for how the Jenkins project handles pull requests.

I dislike this "fix".
Running chown jenkins:jenkins inside container will change host volume permission. It will be fine if user just let docker daemon create and mount a volume, but will change ownership if user is using a bind mount (or won't have effect on ownership, depending which docker runtime you're using).
Also, this volume permission issue is an infrastructure issue, which the image shouldn't have to address imho. I fully understand we don't have a better option so far to prevent users to be hurt by permissions mismatch. Please also note on OpenShift (when ran as restricted SCC) container will run with an unpredictable user ID that won't be jenkins, so this permission fix won't help to get access to JENKINS_HOME volume.

@ndeloof
Forcing users to adopt (or adapt to) Docker infrastructure best practices can be something of a significant barrier-to-entry for those with large, existing installations.
I have a jenkins-swarm project (inspired by some of @carlossg's work) that I am working on and expect to release to code for soon that extends the jenkins image in a way very similar to this pull request. There is a real need to run some scripts as root before dropping to the target runtime user, aka jenkins, and then continuting with bootup. Addressing volume permissions is only one such use-case.

@dweomer I don't like the idea we degrade the image just to allow user to use known anti-patterns, just like misunderstanding bind mount requirements.
About running some additional setup commands, you should create a derived image as:
FROM jenkins
USER root
RUN <some_command>
USER jenkins

Running a container as root is never a good idea, there's really few use-cases that require it.

Misunderstanding bind mount requirements? Such as modifying the jenkins user's group membership to match the group ownership of the injected /var/run/docker.sock which is different from system to system? This is a legit requirement. How does a general purpose container address that?

how does this relate to docker.sock group ownership ?
What I mean with bind mount requirement is this is a very special usage of volumes, and REQUIRE the host volume to have been setup to match container requirements. If you want to have an image running out-of-the-box just let docker manage volumes as it is supposed to.

@dweomer to set container's membership so it can access docker.sock you should rely on --group-add option. This is a runtime constraint, should not impact the docker image. Keep in mind docker base concept is for the image to be infrastructure neutral, and should no need to bother with specific infrastructure details, which is under the responsibility for docker daemon to adjust bindings.

I'll be honest, I don't get why the official documentation on docker hub suggests mounting a volume from the host for backup purposes and neglects to mention the proposed work arounds for the permissions issues.

documentation does not recommend to bind mount a directory, but to rely on volumes, which have permissions well set when created

feel free to contribute enhancements to documentation if you think this could be helpful


FIx: Avoid deprecation warning in newer CakePHP version

This will avoid deprecation warnings by accessing getColumn if the method exists. Otherwise access the old column method.
Solve #1616

Thanks :)


TASK [geerlingguy.drupal : Check if a project specific Drush binary exists.] fails

Issue Type

Bug Report / Support Request

Your Environment
Vagrant 2.2.4
VirtualBox 5.2.30
ansible 2.8.1
  config file = None
  configured module search path = [u'/home/vagrant/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]

Your OS

**Windows 10

Full console output
https://gist.github.com/gagsfitz/af99ac578a9367ec60664cf68d1ed67d
Summary
Been running this with Acquia BLT successfully for the last couple of months. Suddenly started receiving the following error on both the current project and a brand new project I created to test the issue:
TASK [geerlingguy.drupal : Check if a project specific Drush binary exists.] ***
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: IOError: [Errno 71] Protocol error: '/var/www/minotaur-development/vendor/bin/drush'
fatal: [minotaur-development]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"/home/vagrant/.ansible/tmp/ansible-tmp-1561314414.43-259170062475372/AnsiballZ_stat.py\", line 114, in <module>\n    _ansiballz_main()\n  File \"/home/vagrant/.ansible/tmp/ansible-tmp-1561314414.43-259170062475372/AnsiballZ_stat.py\", line 106, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/vagrant/.ansible/tmp/ansible-tmp-1561314414.43-259170062475372/AnsiballZ_stat.py\", line 49, in invoke_module\n    imp.load_module('__main__', mod, module, MOD_DESC)\n  File \"/tmp/ansible_stat_payload__93CqW/__main__.py\", line 553, in <module>\n  File \"/tmp/ansible_stat_payload__93CqW/__main__.py\", line 522, in main\n  File \"/tmp/ansible_stat_payload__93CqW/ansible_stat_payload.zip/ansible/module_utils/basic.py\", line 2098, in digest_from_file\nIOError: [Errno 71] Protocol error: '/var/www/minotaur-development/vendor/bin/drush'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring

The above error is the example for a fresh new project, but identical to the one received for the current project that has been running fine for weeks.

Just done another test, and this also happens with the ubuntu1604 option


gpl: Fix for trivial designs (RePlAce diverged at initial iteration)

I have a trivial design (a few wires between input and output ports) that fails in gpl with the following error:
[ERROR GPL-0304] RePlAce diverged at initial iteration. Re-run with a smaller init_density_penalty value.
The issue is gradDistance is 0, and getStepLength divides by 0. Catch this and return 0 instead.
Signed-off-by: Anton Blanchard<EMAIL_ADDRESS>

This fixes the fail, but I wonder if returning 0 here is correct, or it should be something non zero.

Math wise this should probably return a really big number, but my gut reaction is that if there's no std cells to place we probably shouldn't be calling this function.
It feels like there should be a higher level check that prevents 0 gradients.

My test case has a few (6 standard cells), so it does need some global placement.

Here is the test case (doit.tcl): gpl-diverge.tar.gz

Sorry about that, it requires -skip_io to reproduce, and I somehow dropped it from the test case.
gpl-diverge-2.tar.gz

I'm ok with the change but you need to address the test failures

Minor nit - use braces rule for if-else statement.  https://google.github.io/styleguide/cppguide.html#Conditionals

I've taken another look at this. The issue is with -skip_io, in combination with a design that only has a single cells between input and output pins. This happens if input pins are directly connected to output pins, because abc adds a buffer and OpenROAD remove_buffers keeps them around (as discussed recently).
Since -skip_io doesn't include the module pins in the wire calculation, total remaining wire length is 0, and gpl falls apart.
So perhaps a bit of a corner case, but gpl should be able to handle it.

@antonblanchard
Can you please rebase the code and update again? Will check the PR status.

@antonblanchard
Based on your code, I just rebased and created new PR that mentioned in thread.
Can you please review once, is that OK?

Replaced / fixed by #3170


Possibility for implementing isolated persistent storage per app user

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Performance issue
[x] Feature request
[x] Documentation issue or request
[ ] Support request
[ ] Other... Please describe:

Current behavior
1 persistent storage entry for all users in app;
Wanted behavior

User logs in, gets assigned an isolated, persistent localstorage-entry
One persistent localstorage entry for all users for things like the last loggedin user-credentials

What is the motivation / use case for changing the behavior?
Some data should not interfere because it is dependent on the specific user logged in.

I'm not sure what is the use case. Can you expand more, please?

For the development of our application, we need to save some details, such as PGP Keypairs per specific user. It is just a Store, not EntityStore, but when we switch users, the store must select another keypair for the specific user.
So some data is specific to a specific user, and another user should get other data. I want to switch the storage Key based on the user being logged in, and when another user logges in, it needs to refresh all data from localstorage or another storage backend.

And besides that, different stores have different behaviors in our application. So there are still stores which need to be globally accessible by all users.

I'm not sure that I understand it correctly. When a user logged in, the data in the stores should be relevant only for this specific user, no? So, when he logs out, this data should be erased anyway. No?

I'm not sure that I understand it correctly. When a user logged in, the data in the stores should be relevant only for this specific user, no? correct
So, when he logs out, this data should be erased anyway. No? User A logges out, data should remain in Storage backend. User B logges in, data should be get from the Storage backend specificly for user B.

Two questions:

When you say "Storage backend", did you mean the server?
"User B logs in, data should be getting from the Storage backend specifically for user B" - what happens to user's A data?

Storage Backend as in LocalStorage or IndexedDB
It remains, but it shouldn't be touched or loaded until User A logs back in

What you described it's a security vulnerability. It means that every user can see the other users data by inspecting the LocalStorage or IndexedDB.

It'll probably only be encrypted data, but I understand your view. But it might be the only way if you don't want to upload data to an API.

I don't think we're going to implement this soon. It's a rare request. But, you could apply this yourself, it's not that complicated.

Sorry, it will not be implemented. I am closing the issue.


Error during installation on CetnOS 6

Hi guys!
I encountered a issue I cannot solve, so I am asking for help.
/bin/sh /var/tmp/pear-build-root16VuUQ/grpc-1.0.1/libtool --mode=compile cc -Wall -Werror     -Wno-parentheses-equality -Wno-unused-value -std=c11     -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN     -D_HAS_EXCEPTIONS=0 -DNOMINMAX -I. -I/var/tmp/grpc -DPHP_ATOM_INC -I/var/tmp/pear-build-root16VuUQ/grpc-1.0.1/include -I/var/tmp/pear-build-root16VuUQ/grpc-1.0.1/main -I/var/tmp/grpc -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/var/tmp/grpc/include -I/var/tmp/grpc/src/php/ext/grpc -I/var/tmp/grpc/third_party/boringssl/include  -DHAVE_CONFIG_H  -g -O2   -c /var/tmp/grpc/src/php/ext/grpc/byte_buffer.c -o src/php/ext/grpc/byte_buffer.lo
libtool: compile:  cc -Wall -Werror -Wno-parentheses-equality -Wno-unused-value -std=c11 -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -I. -I/var/tmp/grpc -DPHP_ATOM_INC -I/var/tmp/pear-build-root16VuUQ/grpc-1.0.1/include -I/var/tmp/pear-build-root16VuUQ/grpc-1.0.1/main -I/var/tmp/grpc -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/var/tmp/grpc/include -I/var/tmp/grpc/src/php/ext/grpc -I/var/tmp/grpc/third_party/boringssl/include -DHAVE_CONFIG_H -g -O2 -c /var/tmp/grpc/src/php/ext/grpc/byte_buffer.c  -fPIC -DPIC -o src/php/ext/grpc/.libs/byte_buffer.o
/var/tmp/pear-build-root16VuUQ/grpc-1.0.1/libtool: line 969: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
cc1: error: unrecognized command line option "-std=c11"
cc1: warnings being treated as errors
cc1: error: unrecognized command line option "-Wno-parentheses-equality"
make: *** [src/php/ext/grpc/byte_buffer.lo] Error 1
ERROR: `make' failed

Here is the installed gcc version:
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-<IP_ADDRESS>/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)

Is it even possible ? I tried to find requirements for gcc version, but didn't find any.

I think you want to use -std=c++11

I tried it, here's what make says:
cc1: error: unrecognized command line option "-std=c++11"
cc1: warnings being treated as errors
cc1: error: unrecognized command line option "-Wno-parentheses-equality"

Can you try to compile the extension from source instead?
$ cd grpc
$ make
$ sudo make install
$ cd src/php/ext/grpc
$ phpize
$ ./configure
$ make
$ sudo make install

Thank you @stanley-cheung for the hint.
However I tried to compile from source, and here is what I get with v 1.1.2:
[C]       Compiling src/core/lib/tsi/fake_transport_security.c
[C]       Compiling src/core/lib/tsi/ssl_transport_security.c
[C]       Compiling src/core/lib/tsi/transport_security.c
[C]       Compiling src/core/ext/transport/chttp2/server/chttp2_server.c
cc1: warnings being treated as errors
src/core/ext/transport/chttp2/server/chttp2_server.c: In function 'grpc_chttp2_server_add_port':
src/core/ext/transport/chttp2/server/chttp2_server.c:279: error: 'naddrs' may be used uninitialized in this function
make: *** [/home/vagrant/grpc-1.1.2/objs/opt/src/core/ext/transport/chttp2/server/chttp2_server.o] Error 1

Do you have any other ideas ?

Folding this into #10580


create-release --final => the client operates in read only mode. Change 'credentials_source' parameter value

Is there something I'm supposed to do with config/private.yml or other file to create final releases with bosh2?
$ bosh2 reset-release
$ bosh2 create-release
$ bosh2 create-release --final --name etcd --version 95.2 --tarball releases/etcd/etcd-95.2.tgz
Added dev release 'etcd/95.2'

Adding job 'acceptance-tests/b021f4cdb64afddc8bf7494e82a16e6d604d93c5'...
-- Started uploading 'acceptance-tests/b021f4cdb64afddc8bf7494e82a16e6d604d93c5' (sha1=af0d5f2d8357976e14d8a095eb33110b54e06536)

-- Failed uploading 'acceptance-tests/b021f4cdb64afddc8bf7494e82a16e6d604d93c5' (sha1=af0d5f2d8357976e14d8a095eb33110b54e06536)

Failed adding job 'acceptance-tests/b021f4cdb64afddc8bf7494e82a16e6d604d93c5'

Creating blob for path '/Users/drnic/.bosh/cache/af0d5f2d8357976e14d8a095eb33110b54e06536':
  Creating blob in inner blobstore:
    Generating blobstore ID:
      the client operates in read only mode. Change 'credentials_source' parameter value

The format of config/private.yml has changed to look more like config/final.yml
---
blobstore:
  provider: s3
  options:
    access_key_id: AKIA...
    secret_access_key: super-secret-stuff-goes-here

blobstore.options.bucket afaik also gets pulled in from config/final.yml


PerformanceWarning: Adding/subtracting object-dtype array to TimedeltaArray not vectorized.

Occurs here:
https://github.com/Solid-Energy-Systems/NewareNDA/blob/9986229325ccab2dd828872bdb0819cc8ff7a1f6/NewareNDA/NewareNDAx.py#L135
Sometimes runInfo_df["Timestamp"] is given an object type rather than a datetime.

resolved in 7630168


Symmetric affine int8 but appering -128 in convolution weight when using 16x8 quantization

Perform below code
if __name__ == '__main__':

    with model_tracer():

        model = QfMobileNet()
        model.eval()
        model.softmax = nn.LogSoftmax(dim=1)

        dummy_input = torch.rand((1, 1, 135, 240))
        quantizer = QATQuantizer(
            model, dummy_input, work_dir=output_dir, config={
                'backend': "qnnpack",
                'force_overwrite': True,
                'asymmetric': False,
                'per_tensor': False,
                'rewrite_graph': True
            }
        )
        qat_model = quantizer.quantize()

        device = get_device()
        qat_model.to(device=device)

        context = DLContext()
        context.device = device
        context.train_loader = training_loader
        context.val_loader = testing_loader
        context.max_epoch = 100
        context.criterion = nn.NLLLoss()
        context.optimizer = torch.optim.Adam(qat_model.parameters(), lr=0.001)
        if isinstance(context.criterion, nn.Module):
            context.criterion = context.criterion.to(device=context.device)

        qat_model(torch.randn(1, 1, 135, 240).cuda())

        with torch.no_grad():
            qat_model.eval()
            qat_model.cpu()
            qat_model.softmax = nn.Softmax(dim=1)
            qat_model = torch.quantization.convert(qat_model)
            torch.backends.quantized.engine = 'qnnpack'
            converter = TFLiteConverter(qat_model, dummy_input, tflite_path=f'{output_dir}/qat.tflite', quantize_target_type='int16', strict_symmetric_check=True)
            converter.convert()

Then I got qat.tflite but -128 is at convolution weight which input name is "input.4_te_transform_1_te_transform_2" even though setting asymmetric as False (Range shoud be [-127, 127])

qat.tflite is compressed as qat.zip

@steven0129 See https://github.com/alibaba/TinyNeuralNetwork/blob/main/tinynn/graph/quantization/quantizer.py#L471-L480. The quant ranges of the weight tensors are only reset for the qnnpack backend. Maybe we should apply it for the fbgemm backend as well.

@peterjc123
I set backend to "qnnpack" but not "fbgemm"
quantizer = QATQuantizer(
      model, dummy_input, work_dir=output_dir, config={
          'backend': "qnnpack",
          'force_overwrite': True,
          'asymmetric': False,
          'per_tensor': False,
          'rewrite_graph': True
      }
  )

@steven0129 Will take a look.

@peterjc123 Many thanks.

@steven0129 I have to say this is not a bug. When I changed https://github.com/alibaba/TinyNeuralNetwork/blob/main/tinynn/graph/quantization/quantizer.py#L352-L360 to the following, the quantized values of the weights are all within -127 and 127.
                sym_fq = torch_q.FakeQuantize.with_args(
                    observer=torch_q.PerChannelMinMaxObserver.with_args(quant_min=-127, quant_max=127),
                    quant_min=-127,
                    quant_max=127,
                    dtype=torch.qint8,
                    qscheme=torch.per_channel_symmetric,
                    reduce_range=False,
                    ch_axis=0,
                )

The reason why the q-value overflows is because

You are training with random data
You are training with only one step
PerChannelMinMaxObserver is used by default, so the scales and offsets are not calculated using the current qmin and qmax

As for QAT, you need to freeze the q-params in the late stage of training (usually in the last 1/3 of the training epochs).

Hi @peterjc123
Okay, I got it. Thanks for your information. This issue can be closed.

@peterjc123 Excuse me, how to freeze the q-params in the late stage of training specifically?

Please see https://github.com/alibaba/TinyNeuralNetwork/blob/main/tinynn/util/train_util.py#L121-L127.

Hi @peterjc123
I increase code as below
def run(self):
        torch.manual_seed(self.random_seed)
        for epoch in range(self.context.max_epoch):
            self.context.epoch = epoch
            self.train()

            if self.context.epoch == self.context.max_epoch // 3:
                log.info("freeze quantizer parameters")
                self.model.apply(torch.quantization.disable_observer)
            elif self.context.epoch == self.context.max_epoch // 3 * 2:
                log.info("freeze batch norm mean and variance estimates")
                self.model.apply(torch.nn.intrinsic.qat.freeze_bn_stats)

            self.test()
            torch.save(self.model.state_dict(), f'{self.output_folder}/qat_model_epoch{epoch}.pth')

However, I still got -128 in my model weight. Is there any ways to check whether I succeed to freeze q-params?

Is there any ways to check whether I succeed to freeze q-params?

You can just print(qat_model) and then you may find the weight_fake_quant object in the specific layer. And if it is not updating the quantization parameters, you can see something like observer_enabled=tensor([0], device='cuda:0') in it.
BTW, please note the following things.

The training logic won't work well if you train from scratch.
Make sure you set a rather low learning rate.


Conversion of Core Bot Files to Typescript

Resolves #41.

I also fixed an error which would appear if token.json is not present even if .env exists.

I am closing this and I am going to be opening a new one from a typescript branch.

Noted.


LineSensor - inverted output

I am using this line sensor...
https://www.aliexpress.com/item/Line-tracking-Sensor-For-robotic-and-car-DIY-Arduino-projects-Digital-Out/32654587628.html?spm=a2g0s.90423<IP_ADDRESS>924c4dZUXJvS
In summary - LineSensor.line_detected returns True when not on a line and False when on a line.
Its output is inverted to the LineSensor implemented in gpiozero. It is 'active' when the line is not detected and gpiozero offers no way of changing this.
I need to be able to set pull_up=True on the SmoothInputDevice.
My current hack looks like this:
left_sensor = LineSensor(17)
left_sensor._active_state = not left_sensor._active_state
left_sensor._inactive_state = not left_sensor._inactive_state

is having a pull_up on the LineSensor constructor the right implementation though? Is it really a pull up? or more of an active_state?

Addressed in PR #654


If I click on Generate Config, all the other Kubernetes submenu pages are broken

Version - master UI 3/3
Steps to Reproduce:

Setup Kubernetes environment
Go to KUBECTL submenu
Click on Generate Config
Now try clicking on any of the other kubernetes submenus (Services, RCS or PODS)

Results: Config stay up and I can't get to any of the other pages
Expected: Should be able to see other pages

Left-over instance of the old copy-to-clipboard component from merging things together.

Version - master 3/3
Verified fixed


feat: enable to create aws_iam_openid_connect_provider.github in module

I think This module should be able to create OIDC provider because it has already adopted OIDC provider implicitly.
This PR provide to enable to create OIDC provider in module. Some user may already have OIDC provider so it's optional and default is false.
ref: https://zenn.dev/shunsuke_suzuki/articles/tfaction-setup#iam-openid-connect-provider-の作成

Oh, sorry. I forgot this pr.
I'll take a look.
I'm wondering if thumbprint_list can be an empty list.

I'm wondering if thumbprint_list can be an empty list.

I've confirmed terraform apply fails if thumberprint_list is empty.
╷
│ Error: error creating IAM OIDC Provider: InvalidInput: Thumbprint list must contain at least one entry.
│ 	status code: 400, request id: ***
│
│   with aws_iam_openid_connect_provider.github,
│   on main.tf line 65, in resource "aws_iam_openid_connect_provider" "github":
│   65: resource "aws_iam_openid_connect_provider" "github" {
│
╵

v0.2.2 is out 🎉
https://github.com/suzuki-shunsuke/terraform-aws-tfaction/releases/tag/v0.2.2

Sorry, thanks!!


Added support for Openshift monitoring stack

First of all, thanks for sharing this software!
I'm trying to use this proxy to federate my Prometheus to the Thanos querier in an Openshift cluster. But the built-in Thanos querier in Openshift is "hidden" behind a reverse proxy, to provide some multitenant capabilities (please see https://cloud.redhat.com/blog/thanos-querier-versus-thanos-querier for details), and has many gotchas:

search requests must include a namespace URL parameter.
search requests must include an Authorization HTTP header with the customer's ServiceAccount token.
Only GET is supported. POSTs are forbidden with a 403 Unauthorized. The prometheus/golang-client library automatically switches from POST to GET if the status code is 405 (Method not allowed) or 501 (Not Implemented), but not on 403.

I'm using a forked version of this repo to scrape the metrics from my Openshift thanos instance. It required two new command line flags:

-token-file <path_to_token_file>: reads a token from a file and adds it in the Authorization header of every request to Thanos.
-force-get: intercepts all POST request that the prometheus/golang-client library tries to send, and blocks them with a 405 Method not allowed to force a retry with GET.

I'm submitting this as a PR in case someone else finds these flags useful, outside of Openshift.

Hi @rg2011 sorry for the long delay. I'll test this PR and merge it in the following days.


Output contigs in GFA format?

Any plans to output your actual contigs in GFA?

It might be easier to 'map' a contig onto a GFA graph, since contigs should match unitigs perfectly. It just needs a hash of first & last kmers of each unitig mapping to unitig id.
Out of curiousity, what's the use case? I could throw together a script at some point.

Use-case = that GFA represents your final assembly graph. You take your links+DBG and infer contigs,
plus at the end of each contig you have edges, and the string graph consisting of those contigs + edges is your final assembly.


missing output in Playground example

The example program from #21168 (https://play.golang.org/p/XPEU7FoTes) can only exit early if it panics, and ends with an unconditional call to fmt.Println with an int64 argument.
Oddly, with the current Playground version of the Go compiler, it appears to print a blank line instead of the final number:

The gray (rather than red) text at the bottom and lack of a panic dump suggest that the program did, in fact, run to completion, but where is the output?

fmt.Println(n+1) works the same way. With fmt.Println(1), fmt.Println(n*1) or fmt.Println(n,n) I get either "process took too long" or "Error communicating with remote server." It's funny.

Right now this program reports "took too long" on play.golang.org.
I ran this program on local playground and it was able to execute in 2 seconds some of the launches. Sometimes it returned "too too long".

I too see this as being reported as “process took too long”. When reducing the constant maxInt so that it returns in under 2 seconds, the output it printed as expected.


Send Email doesn't work on PC

Description
Test send email functionality across browsers and OSs,
ensure an error message appears if :mailto doesn't open a dialog correctly

Seems to work fine after initial investigation...
Look into why mailto fails and how to fix it

Rplaced with more universal copy email UI


Is there an option to disable .cache output?

Currently every time we run docs, it generates .cache. Is there a way to turn it off ?
Expected behavior

No .cache output

Current behavior

Has .cache output

JSDoc does not create a .cache file or directory.


WIP: Email status upgrade

@antgonza includes changes from the other PR. I believe they will disappear when the other PR is merged into dev branch?

Coverage: 92.887% (-0.03%) from 92.916% when pulling 9d4a7c4092f2ac5236fe04b6af6af90e27f5980e on charles-cowart:email_status_upgrade into 16f415c323337a7af77f3b23b4ca4c982d5e14fa on qiita-spots:dev.

That's correct but this and the other issue (AFAIK) do not touch the same files so, IMOO, it's better to keep them separate by starting both with a clean dev env; hopefully next time.

@charles-cowart, note that as there were changes in the del_artifact_fix_v2 branch and as this one was based on that, it now reports conflicts. In the future, if 2 PRs are not based on each other (or touching the same files), IMOO it's better to not based them on each other.
Anyway, can you fix conflicts here or open a new clean PR?
Thank you.

Closing. Superseded by #3230


Access to production logs (both condor and cmsRun)

More or less on the same line as https://github.com/dmwm/WMCore/issues/7224,
but creating a new issue with new ideas that came up yesterday (there seems to be some details still to be sorted).
In short, every single production job would copy the logArchive tarball to both the site's /store/unmerged area AND to a CERN EOS space behind a web server.
The working items Seangchan and I came up with are:

rename the logArchive tarballs to something like (that will guarantee a unique id):
agentName-wmbsid-siteName-date.tar.gz
we need to change the LogArchive step to stage out to this EOS space (do we fail the job if it fails?)
we need to make sure the correct data structure is properly created, e.g.:
workflowName/taskName/mergeTaskName/taskName/etc
update the log URL to dashboard (or monit, for ALL jobs) and to wmstats (for failed jobs only)
Brian is contacting CERN IT to get us this storage space
cleanup policy, but I'd call it a last item here (maybe anything older than 30 days)

FYI @ticoann @bbockelm @vlimant

Hi Alan, thanks for creating the issue. A couple of comment on the plan.
What will be the advantage and disadvantage for transferring log archive from WorkerNode vs from WMAgent?
Also we shouldn't fail the job if transferring the logArchive to EOS fails. (I don't think we even don't fail the job if the log archive fails)

I think the advantage of doing it from the worker node is it keeps complexity and load off the agent itself: a daemon would have to run on the agent and launch many file copies and keep state.  Additionally, if done in the HTCondor job, we can record the EOS URL in the job ad itself -- meaning it automatically gets to Kibana.  The downside of doing it on the worker node is there's less opportunity for later retries.
I don't think this should fail the job.

If you don't fail a job on "copy to EOS", you need to be able to monitor this in some other way.  Otherwise you could just mass fail these things without noticing for a while.

@hufnagel - As this is the mechanism to get the logfiles to operators, I hope it is somewhat self-monitored...

True. But my question is: is an operator not finding the logs he is looking for not too late ?
I mean, you only monitor this by searching for logs you want to look at, right ?

We actually have this behavior already - since we added multi stage out to CASTOR and CERN EOS - and I haven't ever heard a complaint about logs not accessible in the EOS area.
I explicitly asked that question just to make people aware that logs might be missing, of course not all of them.
I think checking the presence of those logs during a new WMAgent release validation is good enough.

True, logCollect stageout only checks the Castor stageout, it ignores failures on the EOS stageout.

Yeah - I don't think it's too late.  Right now, they manage to work around the fact we have no logs from any FNAL agent -- so random failures shouldn't be too bad.
The problem becomes when there's a bias in the failures - in that case, operators will have to dig in.

Just to understand -- we've been staging logs to unmerged at each site for years, and then we have these log archive jobs which tar up a bunch of them and already ship them to CERN after some period of time.  Not 100% sure, but assume there is a cleanup job after the log archiving that then removes the original unmerged tarballs -- maybe at workflow closeout?  Here we're saying the job not only stages out to the site unmerged area, but additionally to some CERN EOS location so that a CERN based web thingy can serve them up to operators.  Certainly better than the current ssh based hackery -- begs a few more questions though:

Existing log archive (assuming it still is) infrastructure/jobs stays in place, or this replaces it?  Or?
Adding dependence on being able to xrdcp to CERN at any given time -- would it be worth asking for a simple "xrdcp back to CERN" SAM test (even noncritical) so as to have something ops can check against if they aren't finding their logs?
Making the xrootd URL of the original site (assuming both local site and CERN still happens) staged out xrootd URL easily found (it has though been given in the limited wmstats failure summaries) as a backup for the CERN log stageout failing?  BTW never really having that xrootd URL easy to get a hold of is the root of this whole problem/discussion...
Need to worry about knocking over CERN EOS if we have some other global failure?  like frontier or more likely large request misconfig, etc?  Have we hit CERN with the world all trying to xrdcp at once before?  Would we block T0 stageouts if something like this happens?
At one point we were only keeping logs of failures?  Is that the case now?  Often having a successful job to look at helps in debugging.

Would be interesting to see when we start breaking CERN EOS FUSE as this archive grows.  Glad its happening there.

fixed by #8456

Wooohoooo!!!!!

If we don't clean up,  we will have a problem. 😄

the "year of the log" ; champagne all around !


Fix link missing range issue

Bug/issue #, if applicable:
With https://github.com/apple/swift-docc/pull/376
Close https://github.com/apple/swift-docc/issues/271
Summary
When updating destination of link, we preserve the old parsedRange instead of setting to nil.
The parsedRange is indeed out of date and we should not rely on it. But sometimes we need the original parsedRange to do some logic.
See discussion on https://github.com/apple/swift-docc/issues/271#issuecomment-1272279547
Dependencies
None
Testing
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] Added tests
[x] Ran the ./bin/test script and it succeeded
[x] Updated documentation if necessary

@swift-ci please test

@QuietMisdreavus are you happy with this change? It seems reasonable to me


Compilation failed for examples.

For some of the examples the output is:
Compilation failed

    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
12 | import           Data.String.Here
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some of the examples depend on the package 'here'. If you use stack, it should be installed automatically. How are you compiling the examples?

I used stack.
stack path/to/example.hs

So it works now after having manually run stack install here.
So I guess the issue is figuring out why it was not automatic.

Ah, I had forgotten to add '--package here' to some of the examples that use the 'here' package. Should be fixed now.

I've completely moved away from the 'here' package in favour of 'neat-interpolation'. This simplifies things and the examples no longer have any extra dependencies.


nixos/networkd: reload instead of restarting

When its configuration files change, reload systemd-networkd (networkctl reload) instead of restarting it.
This fixes the following race condition during activation:

systemd-networkd.service is stopped
⚠ someone calls networkctl, which immediately restarts networkd, which reconfigures itself using the old /etc
the new /etc is set up
systemd-networkd.service is started (doing nothing)

I'm not sure if a reload properly reconfigures everything necessary.
Did you see https://github.com/systemd/systemd/pull/13452#issuecomment-570362505 ?

Hmm, I did not. I wonder if reload; reconfigure would do it, but that would require changing ExecReload.

Seems like reload should be enough... well it's complicated, see https://github.com/systemd/systemd/issues/6654#issuecomment-1300265872

Do we still want to proceed with this method of reloading? I would say removing existing netdevs is not a big deal compared to the advantages we got with this PR.

Closing since the network service has since been refactored  to distinguish between units that need reload or restart respectively. Furthermore, #359724 should fix any remaining issues.