image is not showing up in ie11

image is showing up in chrome but not in ie when i am using lazy load, while showing data-was-processed as true, and can see image being loaded in network call, but not changing src attribute value and not showing up the image.

so dose me in IE11

IMHO IE user should be deprecated

IE11 is still used and supported as of January 5th 2020. An it will be for long I guess.
LazyLoad is currently working on IE11, it loads all your images with or without the IntersectionObserver polyfill.
@vinaygarg502 could you please add more information of what is happening to you? Maybe add some cod or even better create a pen on Codepen?

Hey @vinaygarg502,
issue #414 helped me find and solve the problem.
IE11 is now working again, from 12.5.1 up.


Triple1996 app idea

I've added my idea for a linting app to the app-ideas directory. Please review my PR and respond with any feedback if needed.

Can I request some feedback on why this was closed so I may improve for next time? Thank you


Typo in documentation for Use strategic merge patch to update a Deployment using the retainKeys strategyUpdate API Objects in Place Using kubectl patch

This is a Bug Report

Problem:
wrong command for strategic merge patch: "kubectl patch deployment retainkeys-demo --type merge --patch-file patch-file-retainkeys.yaml"
image
Proposed Solution:
correct command: kubectl patch deployment retainkeys-demo --type strategic--patch-file patch-file-retainkeys.yaml
Page to Update:
https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/#use-strategic-merge-patch-to-update-a-deployment-using-the-retainkeys-strategy

/assign

/triage accepted
/good-first-issue


fix: Updating left panel CSS on home page

Description

Updating left panel CSS on the home page to avoid using definite heights for the sections in it.

Fixes #17786
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Before:
https://www.loom.com/share/7eead6fcf6f9433eb3a85e4a98fca290
After:
https://www.loom.com/share/59df8c436ba644c9b75b17228ea5c885
https://www.loom.com/share/b6308241e10c48b283f9331b181fe9f0
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=6944302

/perf-test ref=rhito/feat-create-run-meta-before-test-starts-compare-lt-st-for-prev-runs

/perf-test ref=rhito/feat-create-run-meta-before-test-starts-compare-lt-st-for-prev-runs


Testing HTTP protocol

Today HttpRequest.Protocol is a string. That makes testing the protocol version of a request difficult.
if (Request.Protocol != "HTTP/2" && Request.Protocol != "HTTP/2.0")
{
    // Throw an error that HTTP/2 is required
}

Consider exposing a Version or some other object with integer version numbers to test against.
if (Request.ProtocolVersion.MajorVersion != 2)
{
    // Throw an error that HTTP/2 is required
}

Related: https://github.com/aspnet/AspNetCore/issues/14139

Or at least some helper methods like IsHttp2()?

We could also add shared constants for these like we have with header names. That helps avoid some of these inconsistencies and makes equality checking faster.

IsHttp2() would be an improvement but it wouldn't scale into the future. What happens when HTTP/3 is a thing. I'm thinking of gRPC which will probably have a HTTP/3 implementation or compatibility.
if (Request.ProtocolVersion.MajorVersion < 2)
{
    // Throw an error that HTTP/2 or HTTP/3 is required
}

I think this would be worth considering once HTTP/3 on Kestrel is a thing.

it wouldn't scale into the future

I'm actually more concerned that exposing a version number and expecting people to assign semantics to it is less future-proof. HTTP protocol versioning is beyond our control. I think I'd prefer explicit extension methods, but I could be convinced.
Either way, this seems like a reasonable proposal. We'll need an API shape proposal to approve to move forward.


Show 2 feeds on refresh

Hello.
I select only FB feeds with limit: 2. All works as it should but when the page refresh automatically to check for new feeds, the last feed is still there and now I have 3. Is it possible to have only 2 feeds all the time?

please post here your script configuration


Allow user to specify extra keys wanted to be populated with from_deluge

Motivation for changes:
The from_deluge only loads a default set of keys, but Deluge can send a lot more.
Adding an optional keys property allows the user to specify which extra keys the plugin should load.
Detailed changes:

Added keys array property to from_deluge
Can only be populated with a valid item from the extra_settings_map dict
from_deluge will load the extra keys and perform conversions necessary (like seconds -> hours etc)

Config usage if relevant (new plugin or updated schema):
from_deluge:
  keys:
    - 'active_time'
    - 'remove_at_ratio'
    - ...

Log and/or tests output (preferably both):
Nothing yet, can't test deluge at work, will provide tonight

this is ready, right?

Some fields might need additional formatting, but we could do that after it's merged as well


bug(celery): Refactor mailer and celery function

PR NAME
Description
Update save/create method for better flow.
Update mailer functions
Comments/issues:
Would love to write tests for this, however I would need some help understanding how
Pull request checklist
Please check if your PR fulfills the following requirements:

[x] PR name is descriptive

[x] The PR includes the link to the relevant Trello task

[ ] Tests for the changes have been added (for bug fixes / features)

[ ] Docs have been reviewed and added / updated if needed (for bug fixes / features)

[ ] python manage.py runserver was run locally witout errors

Pull request type
Please check the type of change your PR introduces:

[X] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

1 runde QA kommentarer fikset :D


Does not build on Flutter Web: static const Duration eternal = Duration(days:<PHONE_NUMBER>999999991)

Describe the bug
After adding stash as a dependency to my pubspec.yaml, my application will no longer build for web
To Reproduce

Add stash: ^2.0.0-nullsafety.3 to pubspec.yaml
Run flutter run -d chrome
See error

../../Library/flutter/.pub-cache/hosted/pub.dartlang.org/stash-2.0.0-nullsafety.3/lib/src/api/expiry/expiry_policy.dart:8:50: Error: The integer literal<PHONE_NUMBER>999999991 can't be represented exactly in JavaScript.
Try changing the literal to something that can be represented in Javascript. In Javascript<PHONE_NUMBER>000000000 is the nearest value that can be represented exactly.
static const Duration eternal = Duration(days:<PHONE_NUMBER>999999991);
Version
Dart SDK version: 2.13.0-116.0.dev (dev) (Sun Mar 7 18:57:20 2021 -0800) on "macos_x64"
Additional context
Flutter 2.1.0-12.2.pre • channel beta • git@github.com:flutter/flutter.git
Framework • revision 5bedb7b1d5 (4 weeks ago) • 2021-03-17 17:06:30 -0700
Engine • revision 711ab3fda0
Tools • Dart 2.13.0 (build 2.13.0-116.0.dev)

Thanks for the report. I'll have to think this better to be honest.
This issue in particular is easy to solve but there is more problems with dartjs as the unit tests do not run for a number of reasons some easy to solve others not that trivial like this one: https://github.com/dart-lang/sdk/issues/10275
I have for example an extension to write datetime with MsgPack that uses:
writer.writeUint64(object.microsecondsSinceEpoch); in order to serialize and deserialize the same thing
From documentation microsecondsSinceEpoch:
Note that this value does not fit into 53 bits (the size of a IEEE double). A JavaScript number is not able to hold this value.
In the end I can make this compile but some advanced scenarios would break in dartjs (not stash related but any dependency that needs serialization / deserialization like stash_hive or stash_disk)
I will take a look during the weekend

I was able to solve some of the problems above but the unit tests are not running on dartjs yet. It would take some time to investigate

Fixed with 2.0.0-nullsafety.4


Automate Template Spec creation?

May need to document and automate template spec creation.

will be handed by jasons solution


tunslip6: main: open: No such file or directory

Describe the bug
Trying to follow https://docs.zephyrproject.org/1.13.0/subsystems/networking/qemu_setup.html in docker (Ubuntu 18.04) I fail to complete step 2 without errors.
To Reproduce

In terminal 2, ./loop-socat.sh
In terminal 3, sudo ./loop-slip-tap.sh

Expected behavior
Unknown. (Not specified in the link above)
EDIT:
In a Digital Ocean linux instance I get:
********SLIP started on ``/tmp/slip.dev''
slipfd and inslip reopened
ip neigh flush dev tap0
Cannot find device "tap0"
opened tap device ``/dev/tap0''
ifconfig tap0 up
ip -6 route add 2001:db8::/64 dev tap0
ip -6 addr add 2001:db8::2/64 dev tap0
ip route add <IP_ADDRESS>/24 dev tap0
ip addr add <IP_ADDRESS>/24 dev tap0
ifconfig tap0

tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 2001:db8::2  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::c437:baff:fe5f:5f78  prefixlen 64  scopeid 0x20<link>
        ether c6:37:ba:5f:5f:78  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Screenshots or console output
Infinite loop of:
********SLIP started on ``/tmp/slip.dev''
slipfd and inslip reopened
ip neigh flush dev tap0
Cannot find device "tap0"
tunslip6: main: open: No such file or directory

Environment (please complete the following information):

OS: docker, Ubuntu 18.04

Additional info
The same procedure works on a Digital Ocean linux instance. So I suspect that docker is missing some packages.

Instead of SLIP, you might want to try real Ethernet driver like e1000 in QEMU. See https://docs.zephyrproject.org/1.14.0/guides/networking/networking_with_host.html and  https://docs.zephyrproject.org/1.14.0/guides/networking/qemu_eth_setup.html#networking-with-eth-qemu for details.
This issue seems to be related to docker instead of zephyr, so removing the bug label.

leave it as a bug please, if it is not a bug in zephyr, it should be closed instead or filed in the right place.

@jukkar
On Digital Ocena I get
root@lorenzoPractice:~/zephyr_networking/net-tools# ./net-setup.sh
Using ./zeth.conf configuration file.
Creating zeth
RTNETLINK answers: File exists

while on Docker:
root@3e5b46fa1a8b:/net-tools# ./net-setup.sh
Using ./zeth.conf configuration file.
Creating zeth
open: No such file or directory
Cannot find device "zeth"
Cannot find device "zeth"
Cannot find device "zeth"
Cannot find device "zeth"
Cannot find device "zeth"

Perhaps you have something incorrectly setup in the docker image so that the ip tuntap add zeth mode tap fails. Can you try to run it manually and see what errors it will print.
Closing this one for now as this does not seem to be related to issue in zephyr.

@jukkar
It was indeed some networking capability missing in docker. Using
docker run --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun  -it f69f013e46ef /bin/bash
where f69f013e46ef is the CONTAINER ID will fix it.

ip tuntap add zeth mode tap
open: No such file or directory
i am using WSL, i didn't understand this error. maybe because of the kernel limitation of WSL!!


Support for parallelization by test suite

Right now it seems like test-splitter is designed to run a lot of tests for a single test suite. It would be nice if it could support the idea of parallelizing across test suites. This feedback is directed at future support for non-rspec test suites.
For example in our javascript monorepo pipeline right now we have many (100+) test suites which we dynamically look up and run. Our pipeline looks something like this right now:
  - label: 'Test Suites Batch %n'
    parallelism: 6
    command:
      - run-unit-tests.js

Where run-unit-tests.js will find a list of all test suites to run and deterministically run a random subset of those suites based on its batch # out of the total batches. In our particular example, running a suite looks like running a command nx run {suite}:test.
Maybe the main difference in this proposed approach vs. the current approach is to alter the assumption that test-splitter would be operating on a per-file basis? Another way to look at this is running groups of tests independent of the underlying individual files.

Hi @jameskraus thanks for raising this issue! I'd like to understand a bit more of your use case. It sounds like you want to select files for splitting across a number of different test suites?
What is the output of your run-unit-tests.js script? Does it specify the paths of all the test suites that have been selected?
I'm assuming all test files within a test suite are subpaths of the test suite? Like would it be possible to construct a file glob across multiple directories that select all tests from all selected test suites? We could then use that as an input into the test splitter

It sounds like you want to select files for splitting across a number of different test suites?

Yes, sort of! We have a lot of different unit test suites and they all have different amounts of time they take. It would be very helpful to be able to parallelize over not just individual files, but also suites.

What is the output of your run-unit-tests.js script? Does it specify the paths of all the test suites that have been selected?

The output of the run-unit-tests.js file is the side effect of running the command nx run {suite}:test for a partition of the test suites. The logic in the script is roughly:
// Get all the suites to run for a given PR
const allSuites: Array<string> = await getAllSuitesToRun()

// Figure out which subset of suites to run for the current agent
const suitesBin: Array<string> = deterministicRandomPartition({
  seed: process.env['BUILDKITE_BUILD_NUMBER'],
  partitionIndex: process.env['BUILDKITE_PARALLEL_JOB'],
  totalPartitions: process.env['BUILDKITE_PARALLEL_JOB_COUNT']
  xs: allSuites
})

// Run the suites via nx, equivalent to for loop over `nx run {suite}:test`
try {
  execSync(`nx run-many --target=test --projects=${projects.join(',')`)
} catch (e) {
 // failure handling
}

I'm assuming all test files within a test suite are subpaths of the test suite? Like would it be possible to construct a file glob across multiple directories that select all tests from all selected test suites?

Hmm, we're basically wrapping the jest CLI, and so we could pass --listTests and get jest to list out all the files. I do wonder if we would need some type of reverse mapping from suite to file, since we likely would want to run each file with a command like nx run {suite}:test {file}.
Given that jest has startup/shutdown costs, it may be more efficient to run an entire suite at once, e.g. nx run {suite}:test and use that as the unit of parallelization.


[DATA] - Added Kenya Agriculturals

What did you improve in the Database?
Added new data from Kenya - Agriculturals as shown here
A description of what's data you improved, deleted or added, and a bit of context (why is that).
I did this because Kenya is not on the list. I do not know how to do it well so this is a trial.
There is a local symbol (should I add a prefix?) and the ISIN code - I added 2 rows for every record.
I will work on the rest if this is ok.
Drop the files you have updated below
Did a ZIP (no passwords) because the file is more than 25Mb raw
equities.zip

Thank you, keep it coming!


chore: Add ruff for Python linting

https://github.com/refstudio/refstudio/issues/26

Adding ruff with its default settings as a pre-push hook for now. I imagine we'll want to tweak some settings later (like line length).
Once this is merged, devs will need to run:
$ poetry install

@gjreda Does it make sense add package.json scripts for check and fix like we did for eslint and prettier?
You can check https://github.com/refstudio/refstudio/pull/37 for what I've implemented for prettier.

@cguedes should be good now


font size gets zero in release mode.

Flutter version : 1.17.5
Library version: 2.1.0
till version 1.1.0 where context was used it was working fine. after that i upgraded to version 2.1.0 than in debug mode it is working fine but when i build release apk all the font size turns into zero.

2.1 I have tested it in the release test, and see if some necessary steps have not been performed.Because the version difference is too large, please take a look at the api

Same issue, maybe is beacuse the use of MediaQueryData.fromWindow(window) instead of MediaQuery.of(context) in recent versions.
https://github.com/flutter/flutter/issues/14113#issuecomment-357864964

Because the underlying code is the same, there should be no problem if the location of the call remains unchanged.But I will continue to test and see the possible problems

I had the same issue, the fix was to move my ScreenUti.init() from main() to inside the build()

me too, in the first widget appBar not displayed，second widget no problem

me too, in the first widget appBar not displayed，second widget no problem

Can you show the code?

`void main() {
Catcher(
MyApp(),
debugConfig: Constants.debugOptions,
releaseConfig: Constants.releaseOptions,
);
if (Platform.isAndroid) {
SystemUiOverlayStyle systemUiOverlayStyle =
SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State {
submitPrivacyGrantResult() {
SharesdkPlugin.uploadPrivacyPermissionStatus(1, (bool success) {
if (success == true) {
} else {}
});
}
@override
void initState() {
submitPrivacyGrantResult();
super.initState();
}
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(
create: () {
LoginViewModel model = LoginViewModel();
model.initUser();
return model;
},
),
ChangeNotifierProvider(
create: () => ThemeViewModel(),
)
],
child: Consumer2<ThemeViewModel, LoginViewModel>(
builder: (context, model1, model2, __) {
return MaterialApp(
title: "LOXEN",
onGenerateRoute: (settings) => Routes.configRoutes(settings),
navigatorObservers: [routeObserver],
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('zh', 'ZH'),
const Locale('en', 'EN'),
],
theme: model1.themeData,
home: HomePageWidget(),
);
}));
}
}`
`class HomePageWidget extends StatelessWidget {
HomePageWidget({Key key}) : super(key: key) {
.....
}
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
ScreenUtil.init(context, width: 750, height: 1334);
return MultiProvider(
providers: [
.....
],
child: Scaffold(
body: Builder(
builder: (context) => Stack(
children: [
Offstage(
offstage: context.watch() != 0,
child: const InspirationListWidget(),
),
Offstage(
offstage: context.watch() != 1,
child: const MaterialIndexWidget(),
),
Offstage(
offstage: context.watch() != 2,
child: const StudyIndexWidget(),
),
Offstage(
offstage: context.watch() != 3,
child: const MasterIndexWidget(),
),
Offstage(
offstage: context.watch() != 4,
child: minePageWidget,
),
],
)),
bottomNavigationBar: Builder(
builder: (context) => BottomNavigationBar(
currentIndex: context.watch(),
onTap: (index) {
if (index == 3) {
if (context.read().isLogin()) {
Navigator.of(context).pushNamed(Routes.login_page);
return;
}
}
_bottomIndex.value = index;
},
type: BottomNavigationBarType.fixed,
items: [
BottomNavigationBarItem(
icon: Image.asset(
'images/tab0_default.png',
width: 40.w,
height: 40.h,
),
activeIcon: Image.asset(
'images/tab0_active.png',
width: 40.w,
height: 40.h,
),
title: Text(StringResources.shou_ye,
style: TextStyle(
fontSize: 17.sp,
color: context.watch() != 0
? defaultColor
: activeColor))),
BottomNavigationBarItem(
icon: Image.asset(
'images/tab1_default.png',
width: 40.w,
height: 40.h,
),
activeIcon: Image.asset(
'images/tab1_active.png',
width: 40.w,
height: 40.h,
),
title: Text(StringResources.su_cai,
style: TextStyle(
fontSize: 17.sp,
color: context.watch() != 1
? defaultColor
: activeColor))),
BottomNavigationBarItem(
icon: Image.asset(
'images/tab2_default.png',
width: 40.w,
height: 40.h,
),
activeIcon: Image.asset(
'images/tab2_active.png',
width: 40.w,
height: 40.h,
),
title: Text(StringResources.xue_xi,
style: TextStyle(
fontSize: 17.sp,
color: context.watch() != 2
? defaultColor
: activeColor))),
BottomNavigationBarItem(
icon: Image.asset(
'images/tab3_default.png',
width: 40.w,
height: 40.h,
),
activeIcon: Image.asset(
'images/tab3_active.png',
width: 40.w,
height: 40.h,
),
title: Text(StringResources.da_shi_zhuo,
style: TextStyle(
fontSize: 17.sp,
color: context.watch() != 3
? defaultColor
: activeColor))),
BottomNavigationBarItem(
icon: Image.asset(
'images/tab4_default.png',
width: 40.w,
height: 40.h,
),
activeIcon: Image.asset(
'images/tab4_active.png',
width: 40.w,
height: 40.h,
),
title: Text(StringResources.wo_de,
style: TextStyle(
fontSize: 17.sp,
color: context.watch() != 4
? defaultColor
: activeColor)))
],
)),
),
);
}
void openSplash(BuildContext context) async {
var data = await SharedPreferencesUtil.getData(Constants.FIRST);
if (data == null) {
Navigator.push(context, MaterialPageRoute(builder: (_) => SplashPage()));
SharedPreferencesUtil.putData(Constants.FIRST, true);
}
}
}
`
BottomNavigationBarItem not displayed，appBar InspirationListWidget
`class InspirationListWidget extends StatelessWidget {
const InspirationListWidget({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(80.h),
child: .......,
),
body:.........,
);
}
}
`

i also used it in main. and added it in the theme but it didn't work. i guess we have to use it after the material app in next widget like in 2nd widget after material app as before than only it works even if it don't required the context.

i also used it in main. and added it in the theme but it didn't work. i guess we have to use it after the material app in next widget like in 2nd widget after material app as before than only it works even if it don't required the context.

Yes, although the context parameter is not needed, it actually needs to wait until dart obtains the screen data, generally this is when the context is obtained

@dufei816
It looks ok, but I can't run it so I can't debug  .  So sad

@lizhuoyuan 我也是遇到了 测试机型 iphone 11 pro max .  手机上只有布局 没有文字  布局上的文字一个也显示不了

@lizhuoyuan  加延时运可以解决此问题
void main() {
Future.delayed(Duration(milliseconds: 100)).then((value){
runApp(MyApp());
});
}

Hello everyone, I already have a plan to use ScreenUtil in MyApp.
And it should solve the problem that the screen parameters cannot be obtained.
After the test, I will organize the documents and submit the code.
A new version will be released this week.

I resolved this at 2.3

@Timus23 did you do this? await ScreenUtil.ensureScreenSize();
I had the same issue as you but after doing this, it was fixed in release mode.

simply use
flutter_screenutil: 5.8.4
This version works well


Photoshop reports program error on saving

First, thank you for the plugin.
I tried using it in Photoshop 12.1 (Creative Suite 5.5) on OS X 10.14.6 (Mojave). It loads correctly and appears in “Photoshop > About Plugins”. The file format option “WebPShop” is selectable in the “Save as…” dialogue and the image settings are displayed in the next step, options are selectable, preview is rendered correctly, everything looking great.
But on confirming the image settings Photoshop reports a program error and doesn’t save the image—see attached screenshot. The German text translates to “The file could not be saved as “test.webp” because a program error occured.”

I know PS CS 5.5 is really, really old and probably not supported by you (I wasn’t able to find any compatibility tables here on GitHub) but I’m hoping that there’s a simple solution you can recommend. I can’t update from Mojave because Catalina doesn’t support the Creative Suite.
Thank you!

Unfortunately, as specified here, only the latest Photoshop release is supported.
You can find alternatives in this post.


feat: add terminal formatter

Hi @Colonial-Dev,
Here is a draft for implementing the terminal formatter. My Rust skills are not the best, so there might be some bugs in it. I was able to make it work in one of my projects, so it should be at least on the right track. I'm sharing more to ensure that the work is not lost.

@Colonial-Dev, I have addressed some of your reviews. Please take a look and let me know if it meets your approval now. I have also added an example folder demonstrating how to use it, making it easy to see the results by running cargo run --example terminal_highlight. Additionally, I have included a theme generator. Frankly, this was the most challenging part, in my opinion. I believe that shipping with some built-in themes would be better.

Looks good to me!

I believe that shipping with some built-in themes would be better.

Yeah, I feel you. The Helix theme support is almost done!


SL Review - Decision Data Retention

We need to decide the data retention policy for the forms -

How long do we want unsubmitted drafts to be retained for ADMs to view after the deadline

what actions should they be able to do after deadline? (view, edit, submit)

How long do we want submitted forms to be retained for ADMs to view after the deadline

Is a potential solution to revoke access of all ADMs after deadline?

Retain both for 60 days. System to be locked after January 27th. If ADMs want to edit to submit we will have to manually open. What would the process for that be?


Fix selection bug mentioned in #741

Fix selection bug mentioned in #741 where if drag selection finishes with a mouse up outside of the table, that it gets stuck in a mouse down mode.

Confirmed. Thanks!


GQ Limit == 1 leads to two messages being processed

I'm trying to build a flow which would reject any messages which arrive while the semaphore is locked.
So, I'm trying to set GQ limit to 1.
When the first message arrives the semaphore locks, the message is being passed further and the queue remains empty.
When the second message arrives, it will be pending in the queue, further messages will be rejected, but the second message will be processed once the semaphore releases.
It seems like I cannot implement the desired logic, am I correct?

Hi @pshirshov,
The Avoidance Mode when set to GQ Threshold is exactly the queue length, not whether if the lock is in use.
With that said, I have now added a new Avoidance Mode

When Locked
If the semaphore is locked, it will output to pin 2

This gives you the control you need.
This should be available in the Node palette as 3.4.0

Thank you very much.
Regarding the semantics - I understand your logic, though it's a bit odd that with GQ limit set to 0 all the messages would be rejected and with GQ limit set to 1 two messages will be processed :)

Tested, works great, thanks again.


LDB install directory has wrong permissions

setup_toolchain.sh script creates temporary directory and then moves it into install location, see L24 & L35, however the default behaviour of mktemp command applies 700 permissions for the created folder. This makes the LDB install location available for a single user only (ie UID/GID of the script invoker).
I believe the proper approach should be like chmod ag+rx $dir.

Sounds great! Would you like to submit a PR?

here it is #15


fix module chart: fixes validation error in the case where null value…

…s are returned
Closes # .
Changes

changed properties of ChartResultArrayQuote and ChartIndicatorQuote (allowing null now)

Type

[ ] New Module
[ ] Other New Feature
Validation Fix
[ ] Other Bugfix
[ ] Docs
[ ] Chore/other

Comments/notes

Thanks so much, @spylacopa!  Very welcome PR.  This will be in the next release and there'll be an automated message here once its published.  Great first contribution :pray:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add ADP functionality

The Authorized Data Publisher (ADP) functionality in CVE Service is being implemented (tracked here). Add support for manipulating ADP containers on a CVE record to cvelib.
Some high-level requirements:

Support addition, deletion, and updates of an ADP container in a given CVE record
Support viewing ADP containers for a given CVE record (allow enumerating ADP records if there are multiple and only displaying one or a subset of them)
Support validating ADP containers using the ADP container sub-schema
Support listing CVE records where my organization added an ADP container (TODO: check to see how this is supported in CVE Services)

Support listing CVE records where my organization added an ADP container (TODO: check to see how this is supported in CVE Services)

This is currently not possible since no such endpoint exists in CVE Services. One was proposed to be added (similar to the existing /cve-id endpoint) at the AWG meeting on Jul 11.


fixed an issue when trying to start a build-chroot with explicit base…

… and version, fixed an issue with optargs indices

#17


Performance boost (up to 10x)

per https://gamealchemist.wordpress.com/2013/05/01/lets-get-those-javascript-arrays-to-work-fast/ 6. pre-allocate your arrays whenever you can.. This is also done in lodash's code, for performance reasons. https://github.com/lodash/lodash/blob/master/lodash.src.js#L1553

I have a dificult time thinking of performance tweaks without a demonstrated performance issue.
Have you been running into speed problems with Ramda's map?
There's clearly nothing wrong with this code, but is there something especially right with it?

Just seemed like an easy and simple performance boost. Being a utility library performance should be one goal, not necessarily the main goal, of the library. That way it is abstracted away from the users of the library and then I don't have to think, is this code I'm using going to significantly reduce the code on intensive loops? I can just use it instead.
The main reason I even looked at it was because I was getting the wrong results with lodash since it was passing in the extra parameters.
I don't see why you would want the code to be intentionally slower when a simple fix can make it faster.

I don't have a major objection.  But not having seen any problems, nor any demonstration besides a blog post (that warns against perf tests!), I don't have a great deal of faith that this won't in fact hurt performance.  That's why the scepticism.  I'd like to see some sort of demonstration that this would have a positive impact.

Last I checked (some time last year), there is a mixed bag to the perf gains from the Array(len) between JS vm implementations. Overall, I'd say it usually gives some win (its done in lodash and underscore) however, definitely not 10x. This used to be implemented via Array(len) (last time I touched this function at least).

OK, got the code to test. I'm showing 5x performance on node 0.12.x. When I'm doing tons of loops all over the place I would say that is a significant improvement.
function _mapNew(fn, list) {
    var idx = 0, len = list.length, result = Array(len);
    while (idx < len) {
        result[idx] = fn(list[idx]);
        idx += 1;
    }
    return result;
}
;
function _mapOriginal(fn, list) {
    var idx = 0, len = list.length, result = [];
    while (idx < len) {
        result[idx] = fn(list[idx]);
        idx += 1;
    }
    return result;
}
;
var range = function (count) {
    var idx = -1, arr = Array(count);
    while (++idx < count) {
        arr[idx] = idx;
    }
    return arr;
};
var arr = range(1e7);
var double = function (x) { return 2 * x; };
var ORIGINAL = 'mapOriginal';
var NEW = 'mapNew';
console.time(ORIGINAL);
_mapOriginal(double, arr);
console.timeEnd(ORIGINAL);
console.time(NEW);
_mapNew(double, arr);
console.timeEnd(NEW);
//# sourceMappingURL=index.js.map

Here's the output:
mapOriginal: 227ms
mapNew: 46ms

Depending on the order of the tests it changes between 2 to 5 times the original code. Not sure what I'm doing wrong in the tests to make it different.

When I do the tests in isolation I get about a 2.77x improvement over the original code.

A quick search shows that these files contain the code snippet result = []

src/mapAccumRight.js
src/dropRepeatsWith.js
src/mapAccum.js
src/xprod.js
src/splitEvery.js
src/uniqWith.js
src/unfold.js
src/internal/_map.js
src/internal/_makeFlat.js
src/internal/_concat.js
src/internal/_filter.js
src/internal/_filterIndexed.js
src/range.js

If this change goes through, perhaps all these should be changed?

If you are OK with the change I have no problem going through each file and changing it. I just don't want to do the work if it isn't accepted.

I personally will probably not have a say in whether this stays or goes =)

src/mapAccumRight.js
src/dropRepeatsWith.js
src/mapAccum.js
src/xprod.js
src/splitEvery.js
src/uniqWith.js
src/unfold.js
src/internal/_map.js
src/internal/_makeFlat.js
src/internal/_concat.js
src/internal/_filter.js
src/internal/_filterIndexed.js
src/range.js

This change can't be applied to most of those methods; only range and map
most likely
On Wed, Jul 8, 2015 at 4:35 PM, Ludwig Magnusson<EMAIL_ADDRESS>wrote:

I personally will probably not have a say in whether this stays or goes =)
—
Reply to this email directly or view it on GitHub
https://github.com/ramda/ramda/pull/1255#issuecomment-119724003.

+1, however note this may be slower on small arrays
On Jul 8, 2015 4:35 PM, "Ludwig Magnusson"<EMAIL_ADDRESS>wrote:

I personally will probably not have a say in whether this stays or goes =)
—
Reply to this email directly or view it on GitHub
https://github.com/ramda/ramda/pull/1255#issuecomment-119724003.

I tested smaller arrays and it still seems to be faster, although not as much as before; assuming I tested it right.
function _mapNew(fn, list) {
  var idx = 0, len = list.length, result = Array(len);
  while (idx < len) {
    result[idx] = fn(list[idx]);
    idx += 1
  }
  return result;
};

function _mapOriginal(fn, list) {
  var idx = 0, len = list.length, result = [];
  while (idx < len) {
    result[idx] = fn(list[idx]);
    idx += 1;
  }
  return result;
};

var range = function(count, cb) {
    var idx = -1, arr = Array(count)
    while (++idx < count) {
        arr[idx] = idx
    }
    cb(arr)
}

var double = x => 2*x

const ORIGINAL = 'mapOriginal'
const NEW = 'mapNew'

range(1, arr => {

    const LOOP = 1e7

    var o = 0
    console.time(ORIGINAL)
    while (o < LOOP) {
        _mapOriginal(double, arr)
        o += 1
    }
    console.timeEnd(ORIGINAL)

    var n = 0
    console.time(NEW)
    while (n < LOOP) {
        _mapNew(double, arr)
        n += 1
    }
    console.timeEnd(NEW)

})

I tested the first block and found a big improvement in V8: Chrome, Chromium and Node.  It made no difference at all in Firefox.  I didn't get a chance to check in IE, but assuming that it doesn't reduce performance there, I'd be in favor of this.

If this change goes through, perhaps all these should be changed?

Agreed.

Every time I see things like this I instantly thinking of Vyacheslav Egorov.
https://www.youtube.com/watch?v=65-RbBwZQdU
It's very likely you're not measuring what you think you are.

OK, I watched the video. Yeah, who knows. From all the testing I've done it seems to be better. But I could be wrong. Assuming that it is correct when using node.js it could impact performance with high volume, but changing actual algorithms might make more of a difference rather than making a micro optimization.
I did change the test to reflect the new found knowledge from the video and it appears to still be faster. But, whatever you guys want to do, maybe I'm just wasting time, but it's nice to learn :-) .
function _mapNew(fn, list) {
  var idx = 0, len = list.length, result = Array(len);
  while (idx < len) {
    result[idx] = fn(list[idx]);
    idx += 1
  }
  return result;
};

function _mapOriginal(fn, list) {
  var idx = 0, len = list.length, result = [];
  while (idx < len) {
    result[idx] = fn(list[idx]);
    idx += 1;
  }
  return result;
};

var range = function(count, cb) {
    var idx = -1, arr = Array(count)
    while (++idx < count) {
        arr[idx] = idx
    }
    cb(arr)
}

var double = x => 2*x

const ORIGINAL = 'mapOriginal'
const NEW = 'mapNew'

range(1e5, arr => {

    const LOOP = 200

    var orig = []
    var o = 0
    console.time(ORIGINAL)
    while (o < LOOP) {
        orig[o] = _mapOriginal(double, arr)
        o += 1
    }
    console.timeEnd(ORIGINAL)
    console.log(orig[10][1e5-1])

    var new_ = []
    var n = 0
    console.time(NEW)
    while (n < LOOP) {
        new_[n] = _mapNew(double, arr)
        n += 1
    }
    console.timeEnd(NEW)

    console.log(new_[10][1e5-1])

})

This is better because the engine doesn't have to keep increasing the size of the array. I wouldn't consider this a micro opt, just some engines use different strategies for this case, causing different performance characteristics.
:+1: none the less

My main reaction is that I have no objection to making this change, so long as we check that it doesn't actually cause harm in any important environments.  (IE anyone?)
It's not one that I care about, and I don't want to make a habit of making performance changes on spec.  I'd rather only do that once we recognize a real problem.  But now that this is out there, we might as well go ahead.

Even though it is hard to figure out performance boosts this video talks about its importance. As a library it is probably more important to be performant but 99% of the applications it doesn't really matter that much. In other words, I agree, performance isn't as big of a concern as we (I) make it out to be.
https://www.youtube.com/watch?v=UJPdhx5zTaw

LGTM :cow2:


Adds a missing import

The example implies the use of \ParseException, but I think the author meant andreskrey\Readability\ParseException

Good catch, thanks.


[5.6] Ability to set mail message ID right hand side using a config value

This PR adds the ability to set the right hand side of the Message-id header to a specific domain.
To do this, you need to set the mail.domain config value to a valid domain.

No tests?

We can probably move this into the singleton registration for the mailer, so we don't load this until it's needed?

@taylorotwell moved it into the singleton and also added a condition to only run it a config value was set.

@themsaid: This should probably be either mentioned in the docs, or maybe even be added to config/mail.php.


S3C-5448 update API for node 16

Changed branch to a separate custom-env-16 we are gonna swap over to, without breaking node 10


Add support of MongoDB to Superset via a new connector

I am interested in implementing a new connector for Superset to add MongoDB support, and would like to know if others have started similar work too so as to avoid duplicate effort.
Inspiration
@priyankajuyal I think there're 3 methods to support mongodb in superset:

Implement a mongodb in sqlalchemy, this requires a lot of work and may not be easy to do cause sqlalchemy is a object relational mapper library, while mongodb is not relational.
Implement a new connector for superset. Right now superset has two connectors, one is for sqlalchemy, one is for druid, and similar things can be implemented for mongodb, this should be the right choice.
Transform mongodb to some relational db, stripe has a deprecated project for this job: https://github.com/stripe/mosql.

Originally posted by @xiaohanyu in https://github.com/apache/superset/issues/4231#issuecomment-358608747

Hey @slim-patchy right now adding new connectors to Superset requires a SQLAlchemy + Python DB-API 2.0 compatible driver. Does Mongo have one?
https://preset.io/blog/building-database-connector/

Thanks @srinify for your response!
I am not sure if the official MongoDB Python driver called pymongo is PEP 249 compliant. But I have been thinking that to make a new Superset connector work for MongoDB will have a slight different set of requirements, or even some schema-based mechanisms to bridge MongoDB with RDBs (instead). I have seen some academic papers discussing the nuances regarding this latter point. So I will need to really work out the concept behind such a connector first before I do any serious coding though.

I have seen people attempted to come up with something based on the same idea with vastly different approaches. This appear to be something to be discussed  / thought through really thoroughly. Stripe's archived project called MoSQL is one such more promising examples of others' previous attempts: https://github.com/stripe-archive/mosql, though that is written in Ruby. I think I could probably borrow some ideas for the PR concept from them.

@slim-patchy to be honest I think your best bet is to use a query engine like Trino / PrestoDB / Drill. MongoDB AFAIK doesn't have a SQLAlchemy connector and it goes against all of the relational db principles that SQLAlchemy, Superset, etc are all built on & focused on supporting.
Originally, Druid didn't have SQL and a native connector was built for it. Since then, Druid learned to "speak SQL" (as Max says!) and the native connector got deprecated in favor of betting on the SQLAlchemy platform.

Yeah @srinify I can totally see where you are coming from. I think what I am proposing may be an entirely different variant of Superset if the Superset as we know it only relies on its SQLAlchemy connector, which enables support for SQL / Relational DBs in the first place, so it might require major work.
But instead my rationale for a NoSQL connector feeding data to the SQLAlchemy connector is that ultimately for data to be presented in a coherent way we really need highly structured data to be fed so that they can be visually represented in a very specific set of ways (say like as a dashboard). So I do not suppose I would bypass the existing SQLAlchemy connector, but rather add an adapter to it.

I have just found out about PartiQL today: https://partiql.org/
It is a querying language for relational, semi-structured, and nested data. So it supports NoSQL databases as well. I will see if I could write a PartiQL connector for Superset to fulfil the requirements of this issue. But it does look like a viable candidate.

Keep us posted @slim-patchy !

Sure @srinify

Turned out PartiQL doesn't have a Python implementation yet, so am working on that at the moment.

I just made a proof of concept of querying a mongo database with superset through mongo bi connector : https://github.com/jbouzekri/docker-superset-mongo-poc/. It seems to work pretty well. It is not in the documentation but I have tested row level security and it works too.

@jbouzekri Hey the work looks cool! Maybe I can also test it out for you soon.

Oh very cool! How does this work without a specific db_engine_spec !? For reference, those are modules telling Superset about some specificities of the database engine, more about it here: https://github.com/apache/superset/tree/master/superset/db_engine_specs

It seems to fallback to a BaseEngineSpec instance : https://github.com/apache/superset/blob/master/superset/db_engine_specs/base.py#L148

This is still a relevant feature request and based on the reactions highly sought after, please label this as .pinned

Mongo does have several ORMs like MongoEngine, so allegedly the integration via @srinify 's link should be trivial

Closing this since MongoDB will only be supported by intermediary tools like Prest/Drill as previously mentioned. Mongo Engine and Mongo BI are supportable if folks want to add/stabilize support. Closing this since it no longer seems to be a bug report, but rather one or more feature requests. If you'd like to continue seeking community support for these features, please open a new Ideas thread in our Github Discussions area.

I know this topic is super old, but if anyone is still interested in this topic - here is a tutorial on how to connect Apache superset with MongoDB.
<EMAIL_ADDRESS>

I don't like the idea of having one more part (apache drill), superset should take care of non-sql connections like mongodb and http REST API

superset should take care of non-sql connections like mongodb and http REST API

Glad you have an opinion but we have our fair share of product surface here, and unfortunately it's out-of-scope for this project to support databases (or APIs) not designed for analytics-type workloads. For this project we decided to pretty much focus to interface on anything that support SQL/dbapi.
Luckily there are a lot of emerging solutions on this emerging strata of the data stack. Libs like https://github.com/betodealmeida/shillelagh or products like https://www.peaka.com/ . Also note that data lake-era engines like Apache Drill, Presto/Trino and  cloud dbs like BigQuery or Snowflake can do interesting things with their external table interfaces (allowing to query files on cloud storage, google sheets, parquet on S3, ...).
Also there are all sorts of data sync solution like Fivetran that can probably sync you k/v store or document store to a proper data warehouse built to support large scans.
Another point in that direction is the fact that it's getting easier for database engine to support SQL through projects like Apache Calcite. Databases like Pinot and Druid that started without SQL support now have really great SQL support. SQL is here to stay.


Change psdb bash script to work with symlinks

dirname does not work correctly when you call the script through a symlink unless you route it first through readlink -f, because dirname will always give you the directory of the symlink itself.
An example for when this would error out: I had the psdb portable folder in /opt/psdb but I threw a symlink to the bash script inside /usr/local/bin instead of modifying PATH to add the opt folder.
Any psdb command would assume the bin/config folder would be in /usr/local/bin instead of its true location.

Thanks, today I learned!

Thanks, today I learned!

@brkzlr  I just remembered why I didn't have it  do just a single cd "$(dirname "$0")" originally (hence same problem with one  cd "$(dirname "$(readlink -f "$0")")".
When it's parsing the file, if you gave it a relative path as the input file it won't be able to find the input file, because the relative path is now from a different source. So i.e. if you did
($1 is for example ../somefile.bin, so you could have ./psdb ../somefile.bin )
cd "$(dirname "$(readlink -f "$0")")"
cp "$1" $tmp
then you get an error.
I actually took great care to never cd into the script directory directly, but use it to derive absolute paths for this reason.
So basically, I think it's better if we replace each instance of "$(dirname "$0")" previously with "$(dirname "$(readlink -f "$0")")"
instead of doing one cd using it.
Thoughts?

Oh, sorry for getting back so late. Looks like you edited your double post and GitHub does not notify on post edits, even if you ping me in edit, so I didn't know you said something.
Funnily enough Discord does the same thing, it never notifies the pinged user if you ping in a post edit instead of new post.
Yeah that seems fair, didn't know about that shortcoming, although I would suggest to save the result of "$(dirname "$(readlink -f "$0")")" into a variable like SCRIPTDIR and then just reference that as the value of the variable would be unlikely to change during the script runtime.


But should'nt we create the single plan item if not exist before setting plan to null ?
Something like this :
if ($this->hasSinglePlan()) {
           if ($this->items()->count() ==0 ) { // Can occurs after upgrading from version 10 to 11
                   $this->items()->create([
                           'stripe_id' => $subscription->stripe_id,
                           'stripe_plan' => $subscription->stripe_plan,
                           'quantity' => $subscription->quantity,
                   ]);
            }
            $this->fill([
                'stripe_plan' => null,
                'quantity' => null,
            ])->save();
}

@Nuranto no that's not needed. Your webhooks will take care of that.


Add option to not test from build space

Escalated to https://github.com/ros-industrial/industrial_ci/pull/16


Align SDK with docs regarding session update for dropped events

Problem Statement
Description
We've updated the docs (https://github.com/getsentry/develop/pull/551) to explain how we would like to handle event filter order, updating of sessions for dropped events and sending of session updates. We should check if we're aligned and adapt if necessary.
Solution Brainstorm
Here's the issue from the Java SDK where all of this started: https://github.com/getsentry/sentry-java/issues/1916

Closed as discussed with Steven


Request: Multi-threaded I/O

I have a program that launches a group of Lua-based plugins. The plugins are instantiated in parallel; that is, there are a number of threads that set up the plugins.
However, I came upon an assertion failure when using IO::Load to load in the Lua scripts, as apparently IO::Load can only be called from the thread IO::Setup was called from? Is there any way to change this so that I/O can execute on other threads?

Embarrassingly, this doesn't appear to be possible, and a fix isn't trivial (definitely not as easy as making a few classes thread-safe).
As far as I can see at the moment, the tricky part is that the completion callback would need to be called from the thread that initiated the IO, currently the completion callback is always called from the main thread, so the IO system needs some sort of thread-local context and runloop for checking for IO completion.
Definitely not something that can be fixed with a few lines of code unfortunately, but I'll keep the ticket open, as this is definitely something that should be fixed in the future.

Notes to self:

the IO system needs to maintain per-thread loadQueue's (since the loadQueue manages the completion callbacks)
ioWorker::put() must be callable from any thread (access to writeQueue needs to be thread-safe)

I might see if I can implement this for you. I would definitely enjoy having it :P

I'm running in to this as well. It would be great to be able to call IO from any thread. However, in my case, an acceptable solution would be a single threaded load (i.e. fully resolve the resource load on any thread or even a specified background thread). I wonder how hard it would be to do something like IO::LoadNow()?

If the IO::LoadNow() would basically be a synchronous load which finishes before the function returns, that's unfortunately not possible on asm.js/wasm. I'd prefer to not have per-platform features like that.

Hrmm, that makes sense :)
I guess I can use IO::ResolveAssigns to get the resource path and implement custom behaviour from there.

It's not possible to do synchronous loading on JS / wasm?

I was looking into this further, and apparently synchronous XHRs are allowed on threads other than the main one? If I understood that correctly, would it be possible to add in a synchronous IO::LoadNow that's usable in such contexts? That would allow for that functionality to be exposed on other platforms as well without the API getting out of sync

I'm no longer interested in seeing multi-threaded I/O (though if you are, you can of course leave the issue open)


Unable to load maven meta data

I get the following error when I try and run ./gradlew runIde from the Rider dir.
Unable to load Maven meta-data from https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/kotlin-eap/com/jetbrains/intellij/rider/riderRD/2021.3-SNAPSHOT/maven-metadata.xm.
I have  cloned the project, following instructions in Contributors.md

Thank you for reporting.
Just pushed the fix to net213. https://github.com/JetBrains/godot-support/commit/94711962b3455e753399e9def9f27a992fec4140


QUESTION: Extended tracking w or w/o SLAM

Description:
Hello! Fantastic library. I have a question:
Is it possible to do 'extended tracking' meaning:

Scan a marker
Display some content 'behind' the user or around them.
User turns to look at the Augmented content, tracking continues.

I'm looking for something similar to this:
https://samples.argonjs.io/directionswebgl/
with the wrinkle that in my code, instead of "North" etc. there would be arrows; the arrows would direct users to other locations based on the marker that had been scanned.
Thank you,
== John ==

You get full 6DOF tracking, and there is support for getting the position of a marker, such that you'll always have the pose of the camera, and the marker, and then it's just a matter of positioning something behind the camera pose

Sure, but if when the marker is out of view, typically the augmented objects disappear.
In other words, when the AR camera looses track of the makers, any objects attached disappear without "Extended tracking".
Is that a feature?

You get 6DOF tracking without markers via SLAM in ARCore/ARKit, so the above scenario is still possible even with no markers

Perfect, thank you!
Odd, Vuforia and Wikitude don't work that way at all, so this is great to know.
== John ==

An advantage of marker localization is it works anywhere getUserMedia exists, but has downsides like you mentioned. An advantage of AR specific browsers is leveraging ARCore/ARKit, but unfortunately needs a separate browser. You can follow along the status of standardizing the AR features to land in production browsers over at https://github.com/immersive-web. Hope this helps!


[Untranslated]: Location - R&D Lab

R&D Lab monster attack

This was an issue during packing. Should be fixed in the next patch.


Fix bug in update_recipes message

There is a bug that prevents update_recipes messages from creating jobs when the recipe is part of a batch.

This fix has been committed into master.


GIF is always nil when retrieved from memory

New Issue Checklist

[x] I have read and understood the CONTRIBUTING guide
[x] I have read the Documentation
[x] I have searched for a similar issue in the project and found none

Issue Info

Info
Value

Platform Name
iOS

Platform Version
11.2

SDWebImage Version
4.3.0

Integration Method
cocoapods

Xcode Version
Xcode 9

Repro rate
100%

Demo
https://github.com/liakhandrii/sdwebimageissuedemo

Issue Description and Steps
I try to load some GIFs in a UICollectionView and everything is fine on the first load, when the image is downloaded from the Internet or loaded from disk. When the cells are reused, the images are loaded from memory, but in that case they all become empty.
When the image is loaded from memory, the data: Data? in callback is nil, so I have to work with loadedImage: UIImage?, which is not nil. I try getting the data of loadedImage  and constructing an FLAnimatedImage myself, but it doesn't work. I try calling loadedImage?.sd_FLAnimatedImage, it doesn't work too.
By the way, if I try get the image from loadedImage: UIImage? when image is loaded from disk or web, it doesn't work too.
This code will work fine the first time it's run, but it won't the second time.
It'll work fine if I disable the memory cache, but I can't just disable it, I need it.
let url = URL(string: "https://i.giphy.com/media/JIX9t2j0ZTN9S/200w_d.gif")!
SDWebImageManager.shared().loadImage(with: url, options: [], progress: nil, completed: { (loadedImage, data, error, cacheType, success, _) in
    // This always contains some data
    let memoryImageData = loadedImage?.sd_imageData()
    // This is nil in all situations
    let gifFromUiimage = FLAnimatedImage(animatedGIFData: memoryImageData) ?? loadedImage?.sd_FLAnimatedImage
    // This is ok only when the image is loaded from disk or web
    let gifFromData = FLAnimatedImage(animatedGIFData: data)

    cell.animatedImageView.animatedImage = gifFromUiimage ?? gifFromData
})

I'll check this issue later. We introduce a performance improvements for FLAnimatedImageView to bind FLAnimatedImage to UIImage with associated object, so that we can store it into memory cache. This strategy may have some race condition.
It's better to provide a demo which can reproduce this issue to let us identify the problem. Thanks for report.

@dreampiggy created a demo and added it to the table above.

Maybe this change break the previous behavior. But we should make more consideration on this.
For histrocal reason, we always query the disk cache when the image is an animated image. Which means for UIAnimatedImage created by -[UIImage animatedImageWithImages:duration:], we always query the disk cache even the image instance is in memory cache. This is not a designed behavior but we used to. This is just to solve the problem that FLAnimatedImage need the data.
However, for static UIImage, we always do not query disk cache and return the data args with nil.
So, if you really need the data, you should now pass a extra options SDWebImageQueryDataWhenInMemory. I will mark this into the usage in wiki page

And one more thing. That sd_imageData() method is an API to encode the UIImage into NSData. So most cases you do not need this because this encoding need time and the produced data may not equal to the original data from the network 😅

I tried it, and SDWebImageQueryDataWhenInMemory works, but not always. For some images data is still nil. I can reproduce this only in iPhone 8 simulator, though. In iPhone 8 Plus simulator it works fine. I updated my demo project to demonstrate this issue.

Update: I checked on a real device, Adding SDWebImageQueryDataWhenInMemory makes no difference on it. The data is nil.

If you using cacheMemoryOnly, this will force the downloaded image data disappear. Only the UIImage instace keep in SDImageCache. So this is also a designed behavior.
For now and future implementation (If not change from the scratch). Memory cache only keep the UIImage instance but not NSData. So when you need the data, you should always prefer disk cache.
Through in 5.x, we introduce a SDAnimatedImage which you can obtain the data again through its property. You should not relay on this because it can be changed by other class which adopt SDAnimatedImageProtocol.

It seems that this issue is more about usage now. And the question is over. So I'll close this to keep the tracklog more clearly.
If you still have some questions about this, feel free to reopen it :)

In FLAnimatedImageView+WebCache , the default value for  options is 0，
there isn't have the sd_FLAnimatedImage assignment when other views load the image first, and then load cache ,it will don,t have the imageData,GIF will be nil

@YasinZhou Do you mean this case ?
UIImageView 1 request -> www.foo.bar/1.gif -> Download and cache to memory/disk cache, no asscoaited object in memory cache
FLAnimatedImageView 2 request -> www.foo.bar/1.gif -> Memory cache hit, return image without data
If so, please reply and I'll give some reason and consideration to this

yes

@YasinZhou I see..
To fix this issue, we maybe have two choice. But firstly I want to say something about previous version (I remember is 4.0.0-4.2.0) SD and FLAnimatedImage.
FLAnimatedImage's biggest disadvantage is that it's not a subclass of UIImage, but a NSObject. This means we can not store it into image cache. Because our image cache's memory cache only store the UIImage instance, but not any NSData or FLAnimatedImage. Our image cache's disk cache only store NSData. I don't think we need to change this because this will cause many issues.
So what we do in previous version SD for FLAnimatedImage. It's using a tricky logic. It's the following one:

If memory cache hit, and the UIImage.images is not nil, everytime we query memory cache, we will call - [NSData dataWithContentOfFIle:] synchronically to query the disk :). So if you query multiple GIF images, your main queu may be blocked and frame rate may drop during scrolling
If memory cache miss, then query the disk cache in global queue and callback NSData.

Since most cases, you only display GIF images on FLAnimatedImage but not UIImageView if you decide to use that GIF subspec. To fix the performance for this, we change it to current implementation. Which means we will bind a sd_FLAnimatedImage into UIImage to image cache.

So now, let's talk about this case:

UIImageView request -> www.foo.bar/1.gif -> Download and cache to memory/disk cache

After this step, actually we do not know any information about the image in the cache to specify that it's a GIF image. Because if you use UIImageView to request, it's been treated as Static GIF image and will draw as a CGImage during shouldDecompressImage. Any information in image instance itself has been lost.
This can not be easily solved because since we don't know what image original source is an  Animated GIF...And creating animated images cause extra CPU/Memory usage. So you can not always store the full animated images in the memory. Because most cases' performance will be impacted.
 If you know your images is animated GIF, and you're current request image using UIImaegView. Manually create FLAnimatedImgage instance and bind sd_FLAnimatedImage in the completion block to that image. Then the image in the cache should works for latter FLAnimatedImageView request.

Thank you very much for your answer!
i'm using three Kinds of imageView,FL/UI/ASDK, only FL need sd_FLAnimatedImage, and i've encapsulation FL, there's a unified call entry, so i can set all the FL reques's options is 'SDWebImageQueryDataWhenInMemory'.  though it's not so great too.

@YasinZhou Well...SDWebImageQueryDataWhenInMemory may cause JPEG/PNG images also query the disk data. (Though this one is asynchronized, not block main queue). But I think not all people need this. So now it does not become the default options. You can consider to write another convenience method such as sda_setImageWithURL: which provide this one as a default option....
In 5.x, we will move FL to another repo and use our own solution for animated image/imageView. See #2140 . Which may solve many issue about FL to integrate with SDWebImage's Core feature. It's welcomed to try that ;)

and there is a performance question, i found the image cache loading slowly, loading 21 disk caches in about 6 seconds

Your suggestion was right, I judged images's url<EMAIL_ADDRESS>

For disk cache performance, are you using WebP images ? If so, see #2245

yes, it's webp


chore: remove unnecessary os import from setup.py

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 57.50%. Comparing base (473a8ec) to head (adc4de5).

:exclamation:  There is a different number of reports uploaded between BASE (473a8ec) and HEAD (adc4de5). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (473a8ec)
HEAD (adc4de5)

keras
4
1

keras-torch
1
0

keras-tensorflow
1
0

keras-jax
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #20090       +/-   ##
===========================================
- Coverage   79.29%   57.50%   -21.80%
===========================================
  Files         501      501
  Lines       46983    46983
  Branches     8659     8659
===========================================
- Hits        37257    27019    -10238
- Misses       7976    18290    +10314
+ Partials     1750     1674       -76

Flag
Coverage Δ

keras
57.50% <ø> (-21.65%)
:arrow_down:

keras-jax
?

keras-numpy
57.50% <ø> (+<0.01%)
:arrow_up:

keras-tensorflow
?

keras-torch
?

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

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


Add --check-order flag to check mode

Adds too much complexity to check_core code, may not implement.

Superseded by #114


Lazy loaded styles are still hashed

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

Command (mark with an x)
- [ ] new
- [x] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Versions

$ node --version
v8.9.0
$ npm --version
6.0.1
Angular CLI: 6.1.1
Node: 8.9.0
OS: win32 x64
Angular: 6.1.0
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package                           Version
@angular-devkit/architect         0.7.1
@angular-devkit/build-angular     0.7.1
@angular-devkit/build-optimizer   0.7.1
@angular-devkit/build-webpack     0.7.1
@angular-devkit/core              0.7.1
@angular-devkit/schematics        0.7.1
@angular/cli                      6.1.1
@ngtools/webpack                  6.1.1
@schematics/angular               0.7.1
@schematics/update                0.7.1
rxjs                              6.2.2
typescript                        2.7.2
webpack                           4.9.2
Repro steps

ng new lazyscss --style scss
Adjust angular.json to lazy load styles.sccs ( "styles": [{"input": "src/styles.scss", "lazy":true} ],)
ng build --prod
The build contains the hashed version of styles.scss

The log given by the failure

None.
Desired functionality

Based on the pull request (#11491) the hashing should be disabled for lazy loaded styles. Therefore a styles.css is expected in the dist folder (instead a styles.<hash>.css is included).
This should have been fixed with issue #11235 / pull request #11491.
Mention any other details that might be useful
It seems that the problem is caused by passing the name (e.g. "styles") in styles.ts#getStylesConfig instead of the ID (which isn't even present at the time):
https://github.com/angular/angular-cli/blob/3529096a5398526f97f0c4ace76e48bbf50431fd/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/styles.ts#L191
https://github.com/angular/angular-cli/blob/3529096a5398526f97f0c4ace76e48bbf50431fd/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/styles.ts#L200
Later, in the RemoveHashPlugin#apply the name is then compared to the actual ID:
https://github.com/angular/angular-cli/blob/3529096a5398526f97f0c4ace76e48bbf50431fd/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/remove-hash-plugin.ts#L29
https://github.com/angular/angular-cli/blob/3529096a5398526f97f0c4ace76e48bbf50431fd/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/remove-hash-plugin.ts#L31
Changing remove-hash-plugin.ts#L29 to use data.chunk.name instead of data.chunk.id resolved the issue in our tests.

Looks like the problem is with optimization flag. When enabled the chunk id changes to a numeric value and the plugin cannot find chunkId in this.options.chunkIds.
I am going to disable optimization until there is a proper fix.
I did find the following handles both states of optimization flag:

                const chunkId = data.chunk && data.chunk.id;
                const chunkName = data.chunk && data.chunk.name;
                if ((chunkId || chunkName) && (this.options.chunkIds.includes(chunkId) || this.options.chunkIds.includes(chunkName))) {
                    // Replace hash formats with empty strings.
                    return path
                        .replace(this.options.hashFormat.chunk, '')
                        .replace(this.options.hashFormat.extract, '');
                }
                return path;

I also opened similar issue
https://github.com/angular/angular-cli/issues/11772

Thanks @dashkan and @dpreindl for taking your time into debugging this and providing your detailed analysis. I'll be looking into solving this pretty soon.


Fix the links to each of the lb strategies

When the sub-packages were created, the README links didn't get updated.

Fix links to each of the resolvers

Thanks you 👍
Although gRPC has changed quite a bit, these things are still used by some. I wonder if NGINX supporting gRPC soon will change any of that.


Manifest  error

Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details.
"manifest_version": 2,
Need help

Will look into this before deadlines..


Change ownership of sessions directory on centos

Description of the Change
On Centos the /var/lib/php/session directory is owned by root:apache and not root:www-data.  PR incoming to correct the directory path in wp-php-fpm

Closes #
How to test the Change

Changelog Entry

Added - New feature
Changed - Existing functionality
Deprecated - Soon-to-be removed feature
Removed - Feature
Fixed - Bug fix
Security - Vulnerability

Credits

Props @username, @username2, ...
Checklist:

[ ] I agree to follow this project's Code of Conduct.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my change.
[ ] All new and existing tests pass.

Thank you for this!


Restore check bioc

Restores .github/workflows/check-bioc.yml and removes .github/workflows/pkgdown.yaml since check-bioc.yml can also generate the pkgdown site.
Closes #203.

Hi @jwokaty, this looks good – let me fix a few of the issues in the package that are causing the jobs to fail and then we can merge your pull request. In the mean time, please add your name to the DESCRIPTION file.


Is there a hidden random seed in dask?

Running this twice on a dask dataframe returns different results in 'outfile' each time:
alldata = dd.read_csv(infile)
alldata = alldata.set_index('Id')
estimates = alldata.groupby(alldata.index).apply(myfunc, columns='Expected')
estimates.to_csv(outfile, header=True)

myfunc is deterministic.  Yet, if I run the script twice, I get different results.  The format of the input file is as follows:
Id,minutes_past,radardist_km,Ref,Ref_5x5_10th,Ref_5x5_50th,Ref_5x5_90th,RefComposite,RefComposite_5x5_10th,RefComposite_5
x5_50th,RefComposite_5x5_90th,RhoHV,RhoHV_5x5_10th,RhoHV_5x5_50th,RhoHV_5x5_90th,Zdr,Zdr_5x5_10th,Zdr_5x5_50th,Zdr_5x5_90
th,Kdp,Kdp_5x5_10th,Kdp_5x5_50th,Kdp_5x5_90th
1,1,8.0,,,,14.0,,,,15.0,,,,,,,,,,,,
1,5,8.0,10.0,,10.0,18.0,11.5,,11.0,18.0,,,,,,,,,,,,
2,0,15.0,,,,,,,,,,,,,,,,,,,,
2,4,15.0,,,,,,,,,,,,,,,,,,,,
2,8,15.0,,,,,,,,,,,,,,,,,,,,
2,12,15.0,,,,,,,,,,,,,,,,,,,,
3,3,11.0,22.5,15.0,25.5,34.5,29.5,15.0,27.5,36.5,0.885,0.86833334,0.95166665,0.9716667,0.5,-0.25,0.5625,2.375,1.4099884,-
5.3200073,0.34999084,3.869995
3,8,11.0,,,,22.0,,,,28.5,0.92833334,0.9316667,0.945,0.97833335,1.5625,-0.1875,0.875,1.625,-0.69999695,-5.6200104,-0.69999
695,2.119995

The file itself is 8 million lines long.

There isn't a random seed in this case, it's just multiple threads acting non-deterministically in the groupby's shuffle.
I suspect that the issue here is that we're not guaranteeing a fixed order within each group.  Perhaps we should sort groups before sending them to myfunc?
I'm curious, what is pandas' policy during a groupby(...).apply(myfunc)?  Do the dataframes sent to myfunc obey some canonical ordering?

I'm curious, what is pandas' policy during a groupby(...).apply(myfunc)? Do the dataframes sent to myfunc obey some canonical ordering?

Yes, I'm pretty sure pandas preserves the original order of elements in a groupby/apply. I'm not sure if that's actually guaranteed as part of the API though.

Preserving original order is going to be hard.
The two options I see are sort or ignore.  Thoughts?

Here's a timely reference for the pandas behavior: https://github.com/pydata/pandas/pull/10931/

Thanks! I think not having the original order preserved is
counterintuitive. However, if the original dataframe has some natural
ordering, users can do a sort in myfunc, so it is not the end of the world.
Perhaps, just document this difference in the API?
Sent from my phone
On Sep 4, 2015 10:55 PM, "Stephan Hoyer"<EMAIL_ADDRESS>wrote:

Here's a timely reference for the pandas behavior: pydata/pandas#10931
https://github.com/pydata/pandas/pull/10931
—
Reply to this email directly or view it on GitHub
https://github.com/blaze/dask/issues/665#issuecomment-137912944.

See https://github.com/blaze/dask/pull/669

I don't think that this is fixed.  I updated to the latest 'master', and even tried sorting the group within "myfunc".  Here's a short program that illustrates the problem:
#!/usr/bin/env python
import dask.dataframe as dd
import numpy.random as rnd
import pandas as pd
import numpy as np
import sys

# create test file to illustrate problem
infile="/tmp/sample.csv"
fp = open(infile, 'w')
fp.write("Id,Minute,Ref\n")
for i in xrange(1000,2000):
    for minute in xrange(0,rnd.randint(5,8)):
        fp.write("{0},{1},{2}\n".format(i, minute, rnd.randint(30,60)))
fp.close()

# define function to operate on group
def myfunc(hour):
    hour.sort('Minute', ascending=True)  # note that sort here doesn't help
    return hour['Ref'].iloc[0]

for iter in xrange(0,2):
   outfile="/tmp/sample_soln_{0}.csv".format(iter)
   # read file
   alldata = dd.read_csv(infile, chunkbytes=1000)
   alldata = alldata.set_index('Id')
   # compute and write CSV
   estimates = alldata.groupby(alldata.index).apply(myfunc, columns='Expected')
   estimates.to_csv(outfile, header=True)

print "Run:  diff /tmp/sample_soln_0.csv /tmp/sample_soln_1.csv"

Note that by default DataFrame.sort doesn't operate in place.  You might want the following.
# old
hour.sort('Minute', ascending=True)

# new
hour = hour.sort('Minute', ascending=True)

By adding this I get the following:
mrocklin@workstation:~/tmp$ python 665.py
Run:  diff /tmp/sample_soln_0.csv /tmp/sample_soln_1.csv
mrocklin@workstation:~/tmp$ diff /tmp/sample_soln_0.csv /tmp/sample_soln_1.csv
mrocklin@workstation:~/tmp$

thanks, yes, changing to sort the group fixes the problem.


Conversion issue Rivine - Stellar

It seems<PHONE_NUMBER>448 TFT is still locked
https://horizon.stellar.org/accounts/?signer=GD5UBZMGQYJLVXWBJRWOJYLFQVKTWBNCR7EHNUN3MCO3DY2UHPCI7VEL
Pierre.3bot
Stellar: GD5UBZMGQYJLVXWBJRWOJYLFQVKTWBNCR7EHNUN3MCO3DY2UHPCI7VEL
Rivine: 018f1db57fa2b5bbde751503219853910054e6ef8821512be8e5d389873d5343eabfad95d0a435

@LennertDefauw1 this should be fixed now or not?

@robvanmieghem please check

Can you ask the user if this issue is fixed? @sabrinasadik
Was probably the locked tokens issue which is solved.

Not fixed yet

note to myself: original conversion happened at 2021-08-26 15:52:53 UTC

extra free TFT's have been issued

@LennertDefauw1 next step: put him back on v2 wallet so we can unlock the tokens

Tokens showing now! Thanks for the work guys


Networkmanager reference is null on SpectatorView

Does this affect the legacy HoloToolkit (master) or the Mixed Reality Toolkit (mrtk_release)?
HoloToolkit
Describe the bug
If I drag the SpectatorView.prefab into my scene (I'm following this instruction (https://docs.microsoft.com/en-us/windows/mixed-reality/spectator-view) Unity tells me that Networkmanager reference is null on SpectatorView, without hitting play or trying to build.
Also when trying to build it fails because of this error.
Unity Editor Version
2017.3 and 2018.1.0f2
Additional context
The component 'NetworkManager' seems to be missing in the prefab:

Also I tried to use a FindObjectOfType(...) in the Awake method, but this did not result in success. In the instructions I followed, they have a screenshot where there's clearly an existing component NetworkManager. I downloaded the latest Git repo, so in there this component may be missing? Or am I clearly blind to something obvious?
I'm also using the SDK 10.0.17763.0

Hello @benzben
TL;DR add  your own.
The new version of Spectator View doesn't ship with a Network Manager. the reason behind it is that you application has to be Multilense before you add Spectator View, or at least it has to be once you do it. We don't want to enforce people to use our implementation because every application is different. And of top of that we want to make Spectator View easy to add onto an application already built.
If you look at the example you'll see that there's a very basic NetworkManager component. To begin with, something along those lines will do :)


SL.BART will be removed from Super Learner

I get this warning with my data but not with the example data:
Warning: Error in algorithm SL.BART
  The Algorithm will be removed from the Super Learner (i.e. given weight 0)
Error in SuperLearner::SuperLearner(Y = Y, X = X, cvControl = cvControl,  :
  All algorithms dropped from library

I guess, the new algorithm to use is SL.bartMachine?

Hi @artur-sannikov - would you be able to send a minimal reproducible example to debug it on my end?
Thanks,
Himel

Hi @himelmallick, there was a conflict with MOFA2's predict() function. I had to unload it from namespace: unloadNamespace("MOFA2").
Now it works.


feat(providers): possiblity to set external tracker issue URL

As discussed, I kept only required changes.

@rafinskipg Would you have some time to quickly look at it please, if possible ?


Variable references are not resolved before plugin constructor is called

I just spent several hours trying to understand why the parameters from the serverless dashboard weren't correctly being passed to lift plugin until I came across this note on the serverless plugins' guide.

Note: Variable references in the serverless instance are not resolved before a Plugin's constructor is called, so if you need these, make sure to wait to access those from your hooks.

Which means that trying to do the following will result in an error "ARNs must start with "arn:" and have at least 6 components: ${param:CERTIFICATE}".
constructs:
  app:
    domain: ${param:DOMAIN}
    certificate: ${param:CERTIFICATE}
    type: static-website
    path: dist

I fixed it on a fork moving the Constructs loader to the initialize hook https://github.com/pedrodim/lift/commit/1c476382d38236bd9ae96eacbe6cbb40859ab603, which seems to work fine for the Static website construct (it does correctly deploy my website without errors) but obviously now some tests are broken and I have no idea how to fix those.

Hey @pedrodim, thanks for the report. This is indeed something that we need to clarify: because of the way Serverless loads all the plugins and resolves variables, this leads to some circular dependencies with constructs.
Using the initialize hook indeed messes up a few things.
I'll investigate right away if we can solve this specifically. If we can't, I'll document the limitation.

Thank you so much!
An idea could be have each construct expose a initialize hook (like they do currently with afterDeploy) so that they could instantiate any dependency or internal config which could use variables there instead on the constructor.
From what I've seem on https://github.com/serverless/serverless/pull/3911 other plugins have solved this by moving any logic that uses variables to a hook, maybe it is something that cannot be possible for all actual constructs but for some this could be a workaround.

constructs:
    jobs:
        type: queue
        worker:
            handler: worker.handler
        maxRetries: ${param:maxRetries}
        batchSize: ${env:BATCH_SIZE}

In the example above, ${env:BATCH_SIZE} will be resolved correctly, but not ${param:maxRetries}.
The reason (I suspect) is related to the order in which variables are resolved. I'm still digging into it, I may have a lead.

I am working on #31 that should fix this issue.


Update dependency eslint-plugin-github to v4.6.0

This PR contains the following updates:

Package
Type
Update
Change

eslint-plugin-github
devDependencies
minor
4.4.1 -> 4.6.0

Release Notes

github/eslint-plugin-github
v4.6.0
Compare Source
What's Changed

Allow wildcard *.*.* prefix extension  by @theinterned in https://github.com/github/eslint-plugin-github/pull/357

Full Changelog: https://github.com/github/eslint-plugin-github/compare/v4.5.0...v4.6.0
v4.5.0
Compare Source
What's Changed

chore(deps): bump @typescript-eslint/parser from 5.41.0 to 5.42.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/337
chore(deps-dev): bump eslint from 8.26.0 to 8.27.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/339
chore(deps): bump @typescript-eslint/eslint-plugin from 5.41.0 to 5.42.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/338
chore(deps): bump @typescript-eslint/parser from 5.42.0 to 5.42.1 by @dependabot in https://github.com/github/eslint-plugin-github/pull/342
chore(deps-dev): bump chai from 4.3.6 to 4.3.7 by @dependabot in https://github.com/github/eslint-plugin-github/pull/341
bump @typescript-eslint/eslint-plugin from 5.42.0 to 5.42.1 by @dependabot in https://github.com/github/eslint-plugin-github/pull/340
chore(deps): bump @typescript-eslint/parser from 5.42.1 to 5.44.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/348
chore(deps): bump @typescript-eslint/eslint-plugin from 5.42.1 to 5.44.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/349
chore(deps): bump prettier from 2.7.1 to 2.8.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/347
chore(deps): bump @typescript-eslint/parser from 5.44.0 to 5.45.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/353
chore(deps-dev): bump eslint from 8.27.0 to 8.29.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/351
chore(deps): bump @typescript-eslint/eslint-plugin from 5.44.0 to 5.45.0 by @dependabot in https://github.com/github/eslint-plugin-github/pull/350
allow .server.* file extension by @theinterned in https://github.com/github/eslint-plugin-github/pull/343

New Contributors

@theinterned made their first contribution in https://github.com/github/eslint-plugin-github/pull/343

Full Changelog: https://github.com/github/eslint-plugin-github/compare/v4.4.1...v4.5.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=renovate%2Fsidecar&tag=latest: dial unix /var/run/docker.sock: connect: permission denied


Wrong icon classnames, because the API kit returned an unresolved version

There's a problem when using the addon with a specific kit, where the GraphQL returns a version of latest, but the addon expects an acutal version string like 5.1.0. Therefore it uses the "fa-solid" syntax for classes instead of "fas" and none of the icons are displayed, as it can't find the class in the new kits' stylesheet.
Here's the response of the kit request to the API:
{
    "token": "xxxxxxxxxx",
    "licenseSelected": "pro",
    "version": "latest",
    "iconUploads": {}
}

The tag tries to fetch the iconClass, but the condition doesn't take the case of "latest" into account in FontAwesome.php on Line 103:
return Str::startsWith($this->kit()->get('version'), '5') ? 'fa' . substr($style, 0, 1) . ' fa-' . $icon : "fa-$style fa-$icon";

The case of latest is taken into account. If the version doesn't contain 5 it will use the new fa-{style} syntax. All versions after 5 use this new syntax.

Please correct me if I'm wrong, but I just checked with the configuration and when I have "Latest 5.x" selected for my kit, the version I get from the API is also "latest", so it doesn't always resolve to 6.x, but also to 5.x. I just switched to "Latest 6.x" for this project, and it works now as expected. Can you reproduce my initial case?

I can't reproduce this. I suspect it's a caching issue. Whenever you change the config of a kit, you have to clear the Statamic cache.


Hyprland crashes after updating to the newest commit

Hyprland Version
 System/Version info
Hyprland, built from branch  at commit 93d05114716e847c37f49d3cc2d0c5cb01d06a24  ().
Date: 2024-03-27
Tag:

flags: (if any)

System Information:
System name: Linux
Node name: Cirno
Release: 6.8.0-zen1
Version: #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan  1 00:00:00 UTC 1980

GPU information:
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c7) (prog-if 00 [VGA controller])

os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05.20240325.57e6b3a"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"

plugins:

Bug or Regression?
Bug
Description
After updating the flake and effectively updating hyprland to the newest version it crashes when trying to launch it. The crash is not instant. It is stuck on launching for around like 1 minute and then crashes.
How to reproduce

Update hyprland
Restart system
Try to launch hyprland
Crash :( (very sad and horror)

Crash reports, logs, images, videos
--------------------------------------------
   Hyprland Crash Report
--------------------------------------------
*thud*

Hyprland received signal 11 (Segmentation fault)

Version: 93d05114716e847c37f49d3cc2d0c5cb01d06a24
Tag:

System info:
	System name: Linux
	Node name: Cirno
	Release: 6.8.0-zen1
	Version: #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan  1 00:00:00 UTC 1980

GPU:
	08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c7) (prog-if 00 [VGA controller])

os-release:
	ANSI_COLOR="1;34"
	BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
	BUILD_ID="24.05.20240325.57e6b3a"
	DOCUMENTATION_URL="https://nixos.org/learn.html"
	HOME_URL="https://nixos.org/"
	ID=nixos
	IMAGE_ID=""
	IMAGE_VERSION=""
	LOGO="nix-snowflake"
	NAME=NixOS
	PRETTY_NAME="NixOS 24.05 (Uakari)"
	SUPPORT_URL="https://nixos.org/community.html"
	VERSION="24.05 (Uakari)"
	VERSION_CODENAME=uakari
	VERSION_ID="24.05"

Backtrace:
	#0 | /run/current-system/sw/bin/Hyprland(_Z12getBacktracev+0x48) [0x594fd8]
		getBacktrace()
		??:?
	#1 | /run/current-system/sw/bin/Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0x6b5) [0x529ed5]
		CrashReporter::createAndSaveCrash(int)
		??:?
	#2 | /run/current-system/sw/bin/Hyprland(_Z25handleUnrecoverableSignali+0x44) [0x4adb64]
		handleUnrecoverableSignal(int)
		??:?
	#3 | /nix/store/1rm6sr6ixxzipv5358x0cmaw8rs84g2j-glibc-2.38-44/lib/libc.so.6(+0x3deb0) [0x73cef6254eb0]
		??
		??:0
	#4 | /run/current-system/sw/bin/Hyprland(_ZN11CCompositor20getMonitorFromVectorERK8Vector2D+0x155) [0x4bc295]
		CCompositor::getMonitorFromVector(Vector2D const&)
		??:?
	#5 | /run/current-system/sw/bin/Hyprland(_ZN11CCompositor21vectorToWindowUnifiedERK8Vector2DhP7CWindow+0x38) [0x4bc358]
		CCompositor::vectorToWindowUnified(Vector2D const&, unsigned char, CWindow*)
		??:?
	#6 | /run/current-system/sw/bin/Hyprland(_ZN13CInputManager22processMouseDownNormalEP24wlr_pointer_button_event+0x14c) [0x61531c]
		CInputManager::processMouseDownNormal(wlr_pointer_button_event*)
		??:?
	#7 | /run/current-system/sw/bin/Hyprland(_ZN13CInputManager13onMouseButtonEP24wlr_pointer_button_event+0x27b) [0x61627b]
		CInputManager::onMouseButton(wlr_pointer_button_event*)
		??:?
	#8 | /nix/store/55kjzqzn2a3g0v3wssbq9507rkpnp3k6-wayland-1.22.0/lib/libwayland-server.so.0(wl_signal_emit_mutable+0x7c) [0x73cef6f48a0c]
		??
		??:0
	#9 | /nix/store/55kjzqzn2a3g0v3wssbq9507rkpnp3k6-wayland-1.22.0/lib/libwayland-server.so.0(wl_signal_emit_mutable+0x7c) [0x73cef6f48a0c]
		??
		??:0
	#10 | /nix/store/0m0yd60xcngmxr4jddi6slf6ri4i8mh6-wlroots-hyprland-2024-03-09_50eae51/lib/libwlroots.so.13(+0x5f348) [0x73cef6e7b348]
		??
		??:0
	#11 | /nix/store/0m0yd60xcngmxr4jddi6slf6ri4i8mh6-wlroots-hyprland-2024-03-09_50eae51/lib/libwlroots.so.13(+0x5e20b) [0x73cef6e7a20b]
		??
		??:0
	#12 | /nix/store/55kjzqzn2a3g0v3wssbq9507rkpnp3k6-wayland-1.22.0/lib/libwayland-server.so.0(wl_event_loop_dispatch+0xa2) [0x73cef6f4a8f2]
		??
		??:0
	#13 | /nix/store/55kjzqzn2a3g0v3wssbq9507rkpnp3k6-wayland-1.22.0/lib/libwayland-server.so.0(wl_display_run+0x25) [0x73cef6f48455]
		??
		??:0
	#14 | /run/current-system/sw/bin/Hyprland(main+0x7a2) [0x495f32]
		main
		??:?
	#15 | /nix/store/1rm6sr6ixxzipv5358x0cmaw8rs84g2j-glibc-2.38-44/lib/libc.so.6(+0x280ce) [0x73cef623f0ce]
		??
		??:0
	#16 | /nix/store/1rm6sr6ixxzipv5358x0cmaw8rs84g2j-glibc-2.38-44/lib/libc.so.6(__libc_start_main+0x89) [0x73cef623f189]
		??
		??:0
	#17 | /run/current-system/sw/bin/Hyprland(_start+0x25) [0x4ad9c5]
		_start
		??:?

Log tail:
[LOG] New mouse created, pointer WLR: 2e266d0
[backend/libinput/events.c:69] Adding ASUE120A:00 04F3:319B Mouse [1267:12699]
[LOG] Attached a mouse with name ASUE120A:00 04F3:319B Mouse
[LOG] New mouse has libinput sens 0.00 (0.00) with accel profile 2 (2)
[LOG] Applied config to mouse company--usb-device---1, sens -0.50
[LOG] Applied config to mouse company--usb-device---keyboard-1, sens -0.50
[LOG] Applied config to mouse asus-keyboard-1, sens -0.50
[LOG] Applied config to mouse kingston-hyperx-pulsefire-fps-pro, sens -0.50
[LOG] Applied config to mouse kingston-hyperx-pulsefire-fps-pro-keyboard-1, sens -0.50
[LOG] Applied config to mouse asue120a:00-04f3:319b-mouse, sens -0.50
[LOG] Registered signal for owner 232d740: 2f64170 -> 232d770 (owner: Mouse)
[LOG] New mouse created, pointer WLR: 2f64160
[backend/libinput/events.c:69] Adding ASUE120A:00 04F3:319B Touchpad [1267:12699]
[LOG] Attached a mouse with name ASUE120A:00 04F3:319B Touchpad
[LOG] New mouse has libinput sens 0.00 (0.00) with accel profile 2 (2)
[LOG] Applied config to mouse company--usb-device---1, sens -0.50
[LOG] Applied config to mouse company--usb-device---keyboard-1, sens -0.50
[LOG] Applied config to mouse asus-keyboard-1, sens -0.50
[LOG] Applied config to mouse kingston-hyperx-pulsefire-fps-pro, sens -0.50
[LOG] Applied config to mouse kingston-hyperx-pulsefire-fps-pro-keyboard-1, sens -0.50
[LOG] Applied config to mouse asue120a:00-04f3:319b-mouse, sens -0.50
[LOG] Applied config to mouse asue120a:00-04f3:319b-touchpad, sens -0.50
[LOG] Registered signal for owner 2a59af0: 2eee160 -> 2a59b20 (owner: Mouse)
[LOG] New mouse created, pointer WLR: 2eee150
[backend/libinput/events.c:129] libinput gesture not handled
[backend/libinput/events.c:69] Adding Asus WMI hotkeys [0:0]
[LOG] Attached a keyboard with name Asus WMI hotkeys
[LOG] Registered signal for owner 2eeec50: 2eee888 -> 2eeec58 (owner: Keyboard)
[LOG] Registered signal for owner 2eeec50: 2eee878 -> 2eeecc0 (owner: Keyboard)
[LOG] Registered signal for owner 2eeec50: 2eee758 -> 2eeed90 (owner: Keyboard)
[LOG] Registered signal for owner 2eeec50: 2eee898 -> 2eeed28 (owner: Keyboard)
[LOG] ApplyConfigToKeyboard for "asus-wmi-hotkeys", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant  (rules: , model: , options: )
[LOG] Updating keyboard 2eeec50's translation state from an active index 0
[LOG] Set the keyboard layout to us and variant to  for keyboard "Asus WMI hotkeys"
[LOG] New keyboard created, pointers Hypr: 2eeec50 and WLR: 2eee748
[backend/libinput/events.c:69] Adding AT Translated Set 2 keyboard [1:1]
[LOG] Attached a keyboard with name AT Translated Set 2 keyboard
[LOG] Registered signal for owner 2fc8a50: 2fc8688 -> 2fc8a58 (owner: Keyboard)
[LOG] Registered signal for owner 2fc8a50: 2fc8678 -> 2fc8ac0 (owner: Keyboard)
[LOG] Registered signal for owner 2fc8a50: 2fc8558 -> 2fc8b90 (owner: Keyboard)
[LOG] Registered signal for owner 2fc8a50: 2fc8698 -> 2fc8b28 (owner: Keyboard)
[LOG] ApplyConfigToKeyboard for "at-translated-set-2-keyboard", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant  (rules: , model: , options: )
[LOG] Updating keyboard 2fc8a50's translation state from an active index 0
[LOG] Set the keyboard layout to us and variant to  for keyboard "AT Translated Set 2 keyboard"
[LOG] New keyboard created, pointers Hypr: 2fc8a50 and WLR: 2fc8548
[backend/libinput/backend.c:127] libinput successfully initialized
[backend/drm/drm.c:1590] Scanning DRM connectors on /dev/dri/card1
[backend/drm/drm.c:1641] Found connector 'DP-1'
[backend/drm/drm.c:1238] Reallocating CRTCs
[backend/drm/drm.c:1301]   Connector DP-1 (disconnected): no CRTC (no change)
[backend/headless/backend.c:17] Starting headless backend
[LOG] Hyprland is ready, running the event loop!
[LOG] [hookSystem] New hook event registered: keyPress
[ERR] BUG THIS: m_pXKBTranslationState NULL!
[LOG] [hookSystem] New hook event registered: mouseButton
[WARN] getMonitorFromVector no close mon???

patch.txt
test

patch.txt test

Doesn't work. The difference now is that it freezes and doesn't launch at all requiring it to be killed. Here's the logs of it.
hyprland.log

hm. Since this is a regression (even tho you marked it as a bug ffs) git bisect please

I have this line in my hyprland config so it uses dGPU as the main one. After commenting it hyprland launches without problem.
env = WLR_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1

And git bisect returns this (hopefully I did it correctly)
Bisecting: 9 revisions left to test after this (roughly 3 steps)
[8001b96bb5f801ea665fd482ba421e8703d986e7] renderer: dont render fullscreen special on wrong monitor (#5249)

maybe finish it first?

@AlephNought0 You can follow this guide to use git bisect to find the commit that introduced the issue. Make sure to repeat the process until there are no more revisions to test.
In short:

Find the commit in which you know it was working (the one in use before the update).
Run git bisect start, then git bisect bad to mark the current commit as containing the bug.

Git will check out a commit to test in between these two commits, compile and test to see if the bug is still there.

If the bug is still there, run git bisect good.
If the bug is not present, run git bisect bad.

Repeat this process until there are no more revisions left. At this point, Git will output a description for the commit that introduced the regression. Paste that here.

Hope it helps!

So I have tried many commits and none worked. Then after a while of testing I went to the commit that I am 100% sure worked for me before and now it doesn't work as anymore. Because of that I believe that hyprland didn't bring this regression but something else. I apologize for marking this issue as a bug. When I was creating a new issue I only saw an option to create a bug report or ask for a new feature or something along those lines. I am still relatively new to GitHub so I believe I have simply missed the option to mark it as a regression.


Added Weather App UI

Fixed issue #7 . Please review it.

Fixed issue #7 . Please review it.

Hey @ISHITA-ROY016 , You have developed very beautiful UI, but this is a Design repo
so make this PR into Flutter repo

Hey @ISHITA-ROY016 , You have developed very beautiful UI, but this is a Design repo so make this PR into Flutter repo

But sir I made this pr because I was assigned to #7 in this repo. I was asked to make a weather app UI. Should I change my UI?

Hey @ISHITA-ROY016 , You have developed very beautiful UI, but this is a Design repo so make this PR into Flutter repo

But sir I made this pr because I was assigned to #7 in this repo. I was asked to make a weather app UI. Should I change my UI?

Ishita this repo is for UI/UX Design where we accept only those design which are made in Figma, XD or Sketch.
So, design Weather App in any one of the above software and then make PR.

Ishita this repo is for UI/UX Design where we accept only those design which are made in Figma, XD or Sketch. So, design Weather App in any one of the above software and then make PR.

Okay.


Support cross-server communication for Classic Era and Retail

Effort to create the support for cross-server is too huge vs expected users (1 guild atm). This won't be done unless WoTLK will introduce cross-server.


add hooks.lowerCase([field])

I have little experience in creating pull request. Now I hope I did it right.

Woot! Thanks @kulakowka :tada:


Download and convert construction databases into planned schema

Scenarios still being developed, will be picked up in future issues


Specified cast is not valid

Sometimes i got error
System.InvalidCastException: Specified cast is not valid.
at Naxam.Controls.Mapbox.Platform.Droid.MapViewRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs`1[TElement] e) [0x00076] in D:\Github\Xamarin\mapbox-xamarin-forms\Naxam.Mapbox.Platform.Droid\MapViewRenderer.cs:45
This can be fixed by changing
var activity = (AppCompatActivity) Context;
to
var activity = (AppCompatActivity) Context.GetActivity();
https://github.com/NAXAM/mapbox-xamarin-forms/blob/3f9fed5dea3c2e70a6f220f34ce1fba12d7909fc/Naxam.Mapbox.Platform.Droid/MapViewRenderer.cs#L45

Hi, I experienced the exact issue.
My mapview was a child of ScrollView. Removing the scroll view fixed the issue.

@tmk907 , could you create a PR for this?


[Github organisation proposition] Rename master branch

Following all the discussions in many open source projects' communities, I wonder if we should also get rid of the master terminology.
I guess the default now is to call the default branch main, with projects as big as Python renaming their master branch (and only breaking GitHub once in the process).
So, what do you guys think of that change?

This will also require updating the workflows, just a find-replace master -> main

Is this something we are in favor of? If so assign to me @leios