Uint256 Check for External Functions

Uint256 Check for External Functions
Overflow
Cairo's Uint256 library applies its own uint256_check() on all arithmetic functions; nevertheless, this does not account for uint256 arguments themselves. Each uint256 value is really a struct of two 128bit felts. Since Cairo's felt size equates to 252 bits, external function arguments easily overflow prior to reaching any security checks. Suppose a function, to further illustrate, accepts a uint256 argument, and a user inserts (2^128 + 1, 2^128). The values will be interpreted as (1, 0).
uint256_check
In order to ensure uint256 arguments (of two 128bit felts) do not exceed 2^256 - 1, a check should be implemented in all external functions accepting uint256 arguments as well as _mint() and _burn() (when added). uint256_check() should suffice from Cairo's Uint256.

[ ] insert uint check in transfer()
[ ] insert uint check in transfer_from()
[ ] insert uint check in approve()
[ ] insert uint check in increase_allowance()
[ ] insert uint check in decrease_allowance()
[ ] insert uint check in _mint()
[ ] insert uint check in _burn()

After researching and testing this issue, I will conclude that the current ERC20 implementation cannot be broken, as of the time of this writing, by attempting to overflow or underflow uint256 arguments. Each function that utilizes addition or subtraction within ERC20 also includes a check either on the uint256 argument itself (ensuring it's compliant and in range relative to what is being compared) or the sum (as in _mint() and increase_allowance()) on the 1 bit carry. In the case of decrease_allowance(), however, the internal check occurs after the subtraction. Attempts at breaking invariants with this function were also thwarted. If any changes should be made to the security checks of these functions, perhaps we can insert a check prior to the subtraction in decrease_allowance(); nevertheless, I don't believe that's necessary.


match num_workers with batch size

Hi, lightning pose team
I can run LP on a GPU with more memory(48g vs 80g), I want to increase the batch size. Do I need to increase num_workers(16 is default in the config)? assuming I have enough cpu cores.

@Wulin-Tan just checking in on this, did you find any speedups by increasing num_workers?

Hi, @themattinthehatt
I tried but the speedyup is not obvious. I guess the reason might be that:
the major part of the process is done on GPU, so the speedup by num_workers is not that significant.


♾ CI cannot build

Currently the set up Yarn version on the actions/setup-node@v4 is 1.22.21.
This is why Yarn cannot build the package as I used the latest stable version (4.0.2) at the time of writing this.

[ ] Install Yarn v4 on Build CI
[ ] Use yarn --immutable --immutable-cache --check-cache for PR safety

Try out with corepack enable before actions/setup-node.
Originally from https://github.com/actions/setup-node/issues/480#issuecomment-1820797831.


Task (TODO) support

Like other people, I like this widget, but I really want a widget that displays calendar events and tasks (or TODOs) together. Like Pure Calendar Widget does (or did), but unfortunately it's not working reliably lately and it seems not to be maintained anymore.
I read the previous issues about this topic, including the differently colored past events, but I find that solution unappealing.
Unfortunately, Android does have a concept of tasks as it does of calendar events. So it's not possible to have an universal solution that would just work with any of the dozens of Task applications available on the Play Store. Instead, code needs to be added for each application that would be supported by the widget.
I'm opening this new issue because I'm willing to write this code, if you'd be interested in including it in your app. Initially I'd add support for Samsung Calendar (because that's what I use and I've already reverse engineered how to fetch its tasks), but I'd try to write the code in a way that it should be simple to add support for other application. Another that comes to mind is  https://github.com/dmfs/opentasks, it's open source and it's interfaces are available.
Anyway, let me know if you think this would be a nice addition to this widget.

@ekalin I simplified and unified permissions checking and requesting. Tested this working on an emulator (see the commit https://github.com/andstatus/todoagenda/commit/3b76f99e8e0c22088518109ec8c571503bc455c8 )
I tested tasks with Open Tasks app https://f-droid.org/en/packages/org.dmfs.tasks/
What needs to be fixed yet:

Days from today aren't shown for tasks in the "Event entry layout" = "All in one row"
For some reason, a task with a Start day of July 16 is shown as today's event, see the screenshot:

This unified permission system does not work if the user does not have OpenTasks installed. Since no app created org.dmfs.permission.READ_TASKS, it can never be granted, and the app will be forever stuck in the needs permissions state. I guess it could be worked around by checking whether the application is installed.
But even so, I don't like this solution. Imagine support is added for several Task apps (there are many on Google Play), and each defines its own custom permission; at each refresh the widget would loop for all those permissions (or checking if the app is installed), when at most one task source is active at a time.
It is also not impossible that an user has a tasks app but does not want tasks in Todo Agenda. With your commit the widget only works if the user grants permissions to read tasks, even if he doesn't want that.
I think my solution was very nice: once the user selects the task source, if it requires permissions, a button to grant them is displayed, and once granted it is not displayed anymore. It would also work nicely should the user decide to switch to another task app, once he selects the new app from the list, the button would appear again to grant this new app's permissions.

I'm not sure what you mean by your comment #1. I've tested with "All in one row", and while the layout is somewhat ugly (the task text should probably be moved to right to align with the event text), otherwise everything seems to work normally.

As for point #2, I'm not really considering start dates, only due dates. Not all providers support this concept (Samsung Tasks does not, tasks in Google Calendar also do not, etc). But I suppose it could be added when it exists, though I'm not 100% sure of what it's semantics should be. Perhaps if there is a Due Date, display the task in that day. If there's a Start Date but not Due Date, display the task in the Start Date day. (Even before working with this widget, I myself never felt the need to have a "Start date" in my tasks.)

This unified permission system does not work if the user does not have OpenTasks installed. Since no app created org.dmfs.permission.READ_TASKS, it can never be granted, and the app will be forever stuck in the needs permissions state. I guess it could be worked around by checking whether the application is installed.

I tested this case (when Open Tasks is not installed) on Android 9 emulator, and it works perfectly: the Open Tasks permission is simply ignored and a User is not prompted for the permission. Need to check on other versions though...

But even so, I don't like this solution. Imagine support is added for several Task apps (there are many on Google Play), and each defines its own custom permission; at each refresh the widget would loop for all those permissions (or checking if the app is installed), when at most one task source is active at a time.

The ToDo Agenda app is not for geeks. Ordinary user, I think, cares more about trusting an application than about cherry picking permissions :-)
As for me personally, I don't see a reason to give an app permission to read my Calendars and not give a permission to read my tasks.

I'm not sure what you mean by your comment #1. I've tested with "All in one row", and while the layout is somewhat ugly (the task text should probably be moved to right to align with the event text), otherwise everything seems to work normally.

When you turn off day headers, the "All in one row" layout has additional column showing a number of days to the event start. Tasks event doesn't show anything in this column.

As for point #2, I'm not really considering start dates, only due dates. Not all providers support this concept (Samsung Tasks does not, tasks in Google Calendar also do not, etc). But I suppose it could be added when it exists, though I'm not 100% sure of what it's semantics should be. Perhaps if there is a Due Date, display the task in that day. If there's a Start Date but not Due Date, display the task in the Start Date day. (Even before working with this widget, I myself never felt the need to have a "Start date" in my tasks.)

It's strange for me that someone doesn't care when a task execution should be started ( if the date is set, of course). I think that for the purposes of this widget, if the start date of the task isn't set (e.g. because it's not supported by the Tasks app), the end/due date should be assumed as the start date.

I tested this case (when Open Tasks is not installed) on Android 9 emulator, and it works perfectly: the Open Tasks permission is simply ignored and a User is not prompted for the permission. Need to check on other versions though...

I believe that's the version I used to test. Maybe you need to uninstall OpenTasks and TODO Agenda, and then install TODO Agenda.
The permission request is ignored and there is no prompt, but ContextCompat.checkSelfPermission returns that permission is not granted, and thus the widget is stuck in "needs permission"

When you turn off day headers, the "All in one row" layout has additional column showing a number of days to the event start. Tasks event doesn't show anything in this column.

I see, I had not tested "All in one row" and "No day headers". I'll emulate the layout.

It's strange for me that someone doesn't care when a task execution should be started ( if the date is set, of course).

Well, to say the truth I don't think start date makes much sense in tasks... Not in conjunction with due date. But since some task apps have this concept, I'll implement the logic I described in a previous commit.

I tested this case (when Open Tasks is not installed) on Android 9 emulator, and it works perfectly: the Open Tasks permission is simply ignored and a User is not prompted for the permission. Need to check on other versions though...

I believe that's the version I used to test. Maybe you need to uninstall OpenTasks and TODO Agenda, and then install TODO Agenda.
The permission request is ignored and there is no prompt, but ContextCompat.checkSelfPermission returns that permission is not granted, and thus the widget is stuck in "needs permission"

Yes, current code in https://github.com/andstatus/todoagenda/commit/3b76f99e8e0c22088518109ec8c571503bc455c8 works normally only if "ToDo Agenda" is installed after tasks providing applications (or if such applications won't be installed at all).
The main feature that we need both for configuring Tasks and for checking / requesting their permissions is checking each "Events provider" if it's installed. Having this information we will:

Check and request permissions for all installed "Event providers" and only for them.
In the "Tasks" section of Settings we will list all installed "Tasks events providers" (just like we list Calendars in the "Calendars" section) and allow to check (select for viewing) any or all of them, and not only one Task provider, as is implemented now.

?!

All in one layout is fixed here: https://github.com/ekalin/calendar-widget/commit/bf3a250986369d8bcfe293c60e1ae46d43d10d26

The main feature that we need both for configuring Tasks and for checking / requesting their permissions is checking each "Events provider" if it's installed. Having this information we will:

Check and request permissions for all installed "Event providers" and only for them.
In the "Tasks" section of Settings we will list all installed "Tasks events providers" (just like we list Calendars in the "Calendars" section) and allow to check (select for viewing) any or all of them, and not only one Task provider, as is implemented now.

Seems to me like an overkill. I find it unlikely that someone would need more than one task application, and displaying tasks from multiple such applications at the same time. It would be adding extra complexity and code for a very small number of users.
One thing that I intend to do, though, is support selecting which task lists to display tasks from (same as the user can select calendars). I haven't started this yet, I'll fix the start date issue and any other problems first.

The main feature that we need both for configuring Tasks and for checking / requesting their permissions is checking each "Events provider" if it's installed. Having this information we will:

Check and request permissions for all installed "Event providers" and only for them.
In the "Tasks" section of Settings we will list all installed "Tasks events providers" (just like we list Calendars in the "Calendars" section) and allow to check (select for viewing) any or all of them, and not only one Task provider, as is implemented now.

Seems to me like an overkill. I find it unlikely that someone would need more than one task application, and displaying tasks from multiple such applications at the same time. It would be adding extra complexity and code for a very small number of users.

Don't worry, I will do this myself :-)
Actually I remember several requests telling that people use different calendar providers and different calendars on one device. One of common cases: calendars at work and personal calendars.
So I think that this will be the same for tasks.
It's good that you decided to implement an option to select separate task lists. With our joint effort in Tasks section we will have for selection a list from all available "Task lists" from all task providers - exactly what we have in Calendars.

@ekalin Thank you for improving tasks.  I merged your PR #312  and added my fixes:

Tasks really have startDate (and dueDate, of course), so I added both to the TaskEvent. Due date is not used so far and this is a problem that needs to be thought about.
If both Start and Due dates set for the Task, and they are set at different days, this means that a User cares about these days. Currently this is ignored (only one date is taken into account)...

Dates of a Task do have time, so I made sure that it is not cut off them. Unfortunately time is not shown yet. And this is another problem to solve.
If you think that time is unimportant for tasks, we can think about an option for tasks like "Ignore time for Tasks"...

Date range filtering should be the same both for Calendar events and for tasks. This is why I removed "special" end of period change for tasks. Whether "One day" range should include events up to
end of tomorrow, is a separate question, not specific to tasks, and needs separate discussion.

Even though it won't make a difference, I have to disagree once more.
I think the most important date is the due date, not the start date. Well, actually I don't even see much reason for a start date in tasks. Same for time: I guess there might be situations when it makes sense. But when they start to get really similar to a calendar event, so perhaps a calendar event could be simply be used instead.
Of course, that is based on how I use tasks, which admittedly is quite simple and does not necessarily reflect how other users use them. But I just checked with Google Tasks (https://play.google.com/store/apps/details?id=com.google.android.apps.tasks), which would be a nice app to add suppport for (as it integrates with Google Calendar and the rest of the Google ecosystem), and it only has one date for tasks (it does have a time, though). In practice it doesn't matter whether we call the one date start or due, but semantically I'd argue for it being the due date, since a task is something that needs to be done, and generally needs to be done by some time.
Perhaps instead of releasing a super complete version, you could keep it simple for a first release, and if there is a lot of user feedback requesting support for task times, or dealing with tasks with start and and date, etc, then it could be added.
As for point 3, here I agree that consistency makes sense. I'd say that "One day" should include events (and tasks) up to the end of tomorrow (and not only the next 24 hours), but consistency is more important.

Another thing occurred to me, considering the "calendarization" of tasks.
When dealing with past tasks, while your proposed changes still displays them, they appear in their respective days:

While it might be useful (but by no means necessary) to highlight past tasks (with the background color), I find it completely irrelevant to know the exact date, and having them in separate days is counterproductive.
The solution I proposed simply showed past due tasks in "Today". By the way, the solution I propose is essentially what the not-maintained-anymore Pure Calendar Widget did, so there's at least one more person (that widget's author) that agrees with me on how tasks should behave in a widget :-) And I suppose several users of that widget were satisfied with how it worked.
I'd really like for you to not merge 1149fa94.

I think the most important date is the due date, not the start date. Well, actually I don't even see much reason for a start date in tasks. Same for time: I guess there might be situations when it makes sense.

There is no problem here: if you don't set Start Date, then Due Date is used by the widget, without a need for any changes in settings.
Same for Time: I just checked that "Open Tasks" app allows to set "All day" checkbox for a task, so not only Start Date is optional, but even Time of the Due Date may be explicitly unset.

But when they start to get really similar to a calendar event, so perhaps a calendar event could be simply be used instead.

I came to the same conclusion some years ago, before even joining this project. And I personally add my "Tasks" in the same Calendar app as other "calendar events".
This is normal.

Of course, that is based on how I use tasks, which admittedly is quite simple and does not necessarily reflect how other users use them. But I just checked with Google Tasks (https://play.google.com/store/apps/details?id=com.google.android.apps.tasks), which would be a nice app to add support for (as it integrates with Google Calendar and the rest of the Google ecosystem), and it only has one date for tasks (it does have a time, though). In practice it doesn't matter whether we call the one date start or due, but semantically I'd argue for it being the due date, since a task is something that needs to be done, and generally needs to be done by some time.

As I wrote above, if some "Tasks" app doesn't have a notion of a "Start Date" OR it has, but a User didn't set the Start Date, Due Date is used by the widget instead.
Point 1 in my previous comment is exactly about semantics: we shouldn't "rename" actual task properties or voluntary merge Start Date and Due Date into a "Task Date", meaning (semantics) of which somebody invented (no matter you or me...).

Perhaps instead of releasing a super complete version, you could keep it simple for a first release, and if there is a lot of user feedback requesting support for task times, or dealing with tasks with start and end date, etc, then it could be added.

I understand you. You contribute to the project in order to make it suitable for your needs first. Good, why not?
And I see that you understand my position also: I look at the new feature from a position of existing and future users, thousands of different users all around the world. I really don't want to receive tens of "bug reports" on the next day after a release telling me that I forgot about Start Date,  time etc. - the thing that are obvious even today and that are already supported for Calendar events.
We are not in a hurry anyway. Are we? :-)

Regarding showing due (past but incomplete) tasks. I think we need to invent a way, consistent with past (but show according to settings...) Calendar events. Showing past events in "Today" is a dirty/ad hoc solution. Showing them under dedicated "Past and due" header would look nicer?!
We could have an option "Show past/due events under one "Past and due" header" ?!

I found another bug in Tasks: past tasks should have dedicated "past" color, but they are not now.
BTW, look how I deal with day headers: I simply turn them off completely ;-)

It went as predicted.
Just some small points to comment:

[Regarding start vs. due]

OpenTasks has a simple widget. If there's a start and due date, only the due date is displayed, and they are also sorted according to due date. So they seem to agree with me that due date should take priority, not start date.

And I personally add my "Tasks" in the same Calendar app as other "calendar events".
This is normal. Please read this discussion on "Completed" and "Cancelled" events: #126

I've read that. Nice that it works for you, but to me (and I must assume some other people), while tasks and calendar events (especially an all-day event) are similar, there are some fundamental differences that prevent that solution:

There must be a way to mark tasks as completed and have them disappear - even if they are completed before their due date. Sure, one can delete the task, but the convenience of having a completed task still around is nice. I also don't delete past events - they just don't show anymore.
Unlike events, which once finished I don't want to see anymore, uncompleted tasks must be displayed even if their date has passed - even if it was a month ago. "Show past events" does not solve that, because the time window is limited, and most importantly, because it also shows past calendar events (which I'm not interested in).

understand you. You contribute to the project in order to make it suitable for your needs first. Good, why not?

I surely want it to at least accommodate my desires, but as I said, I was also emulating another widget that I had been using for years (https://play.google.com/store/apps/details?id=org.koxx.pure_calendar). And since it has a large number of downloads and a high review, so it's fair to suppose that others were satisfied with its model.

And I see that you understand my position also: I look at the new feature from a position of existing and future users, thousands of different users all around the world. I really don't want to receive tens of "bug reports" on the next day after a release telling me that I forgot about Start Date, time etc.

This can go both ways: if you release your way, next day you may receive tens of "bug reports" with concerns similar to what I'm raising here.
When in doubt, I'd go for the simpler solution first. If the users want more, it's easier to add complexity later than to remove it.
And as you said in the other bug report, you don't use tasks. Perhaps you should listen to how people that use them would like them. Unfortunately only you and I are taking part in this discussion, but support for tasks had been asked a couple times already.
On a general note, perhaps Open Tasks is not a good model for task behavior. It has too many features. If you look at other task apps, you'll see that on average they tend to have a simpler model for tasks.

@ekalin It seems to me that you don't like what I'm doing because you are trying to mimic in this widget exactly what you saw in apps that you use before. And also because we are discussing many things simultaneously.
Please look from another side: from features that you really need. And let's discuss one feature at a time.

As I wrote you already, also more than once: no problem, just don't set Start date! Did you test this?
Why is that not OK for you? You never told me :-(

Well, if there was an app that worked like I wanted (and possibly like many of its other users wanted), it's reasonable to want to replicate that, isn't it?
Concerning sorting by due date, yes, that's how I believe it should be. And yes, for my use, I use only the due date, and so they appear in proper order.
But here we can also look at other people's uses: someone might want start and end dates, and tasks sorted by due date.
But then, someone might want start and end dates, and have them sorted by start date... An option to select how to sort would solve that problem, but too many options can make the app too complicated for users, not to mention the extra work to maintain and test it. But I'm diverging from the sort topic :-)

Ok, so you personally may have tasks sorted the way you want them (just don't set Start dates). And current implementation will sort by Start Date for those users, who care about the Start Dates: they will need to set them - and voila!
No changes in settings are needed for these two behaviours.
This is why I think that this implementation of tasks sorting is good enough for the first release.

Sure, but that was never a huge concern for me.
What is a concern that does limit the usability is what I described in https://github.com/plusonelabs/calendar-widget/issues/308#issuecomment-513505213. Essentially there was some code that set the task to be displayed under "Today" if it was past due. If there were several tasks that were due on several past days, they were all displayed together.
Maybe there should be some special treatment for past due tasks, but the way they're displayed in the screenshot is bad: uses a lot of space with unnecessary information and distracts from the actually useful info (one can't even see "Today"). [BTW, I like the day headers, I'm not disabling them.]

Ok, so we're switching to another issue: day headers that are useful for a User (e.g. for you) are inconvenient/unneeded for tasks that are in the past.
I already replied to you on the issue,but you didn't react on that. So:
This issue should be discussed with consideration of past Calendar events also. Your suggestion to group all past tasks under "Today" header will lead to the ugly and confusing layout, when past Calendar events are shown with their past day headers;
and below them, under "Today" header, all past tasks are grouped (followed by today's calendar events),
and below them calendar events and tasks start to be sorted and shown under their day headers in the unified way.
Is this the implementation that you are defending?
I personally solve your problem by using "All in one line" layout with day headers turned off.

Well, I don't show past events: to me that completely unnecessary. I'm not sure how one should deal with past due tasks when past events are shown: perhaps in this case the tasks should also be displayed on their individual days, but "Show past events" only goes back one day, but if there's a task that's overdue by 30 days, it should be displayed (if only to remind the user to reschedule it :-) )
But without past events, as I said, I'd group all overdue tasks together. Maybe they could be in a separate "Past due" header, but even that to me is unnecessary: I'd be fine with them appearing under "Today".

I personally solve your problem by using "All in one line" layout with day headers turned off.

To me that's the ugliest layout configuration, by far :-)

Aha, so you didn't notice yet that we have the option: "Show all past events having default color", which allows to see past events of any past date, not yesterday's only.
And you agree that in the scenario that I described (past Calendar events are shown with their past day headers) grouping past tasks under today's header isn't good.

This is the answer for you, why I rejected that behavior. And why I suggested an alternative...

That's even worse. I tried that option and got events starting at 1970. OK, they're recurring events (birthdays), but even not considering those, there were still real events from over a year ago. Not exactly useful for me.

We are talking about a feature that will be in effect for all users, not for two of us. This is why we cannot ignore combinations of settings and data different from ours, telling that they are "not exactly useful" for us :-)
I hope that you understand now.

After merge of #313 this left to be done:

[ ] Detection of actually installed events providers, both the Calendar provider and tasks providers (it's easy now as we can ask each for a "Task lists" and see if there's any)

[ ] Checking and requesting permissions for actually installed events providers. Looks like detection and permission requests will be a single module...

[ ] Enumerating events providers (we have three now). Identifying each selected calendar/task list and events query result by the provider.

[ ] Get rid of "Task event source" selector in Settings. List all available tasks lists from all providers and allow selection from all providers in one widget.

[ ] Add an option "Show past/due events under one "Past and due" header". It will be applied both for calendar events and for tasks.

[ ] Past/due tasks should have specified background color, not the same as future events (as it is now).

@ekalin After merging of "Event Sources" (Calendars and Tasks lists) into one list it came to me that having separate lists for Calendars and for Tasks lists is artificial and only complicates development and usage.
So I would better keep them all for selection in one list. Just need to make clear a provider (application/API) of each source. Anyway, most of (actually all for now) other settings are the same for these two groups of events.
This way after introduction of Tasks users will just see additional sources for selection in the same Settings section.
?!

As I have been saying in my other comments (but perhaps not so explicitly), I don't think tasks are just a slightly different kind of calendar event. There are similarities, for sure, but they are different enough that treating them differently seems justified.
So, once more, I wouldn't do that.

@ekalin Thank you, you see more differences than similarities yet you think that putting them on one widget is OK :-)
Thinking once again, and considering that:

Both kinds of events are shown on the same widget;
ALL other settings now are the same for both kinds of events. Or at least we don't have separate tabs for tasks or for calendar events only.
Simply because notions of Tasks/TODOs and Calendar events are close. And distinction between them depends on each person's point of view (as we see in this discussion between two of us).

I think that having single list to select event sources is quite logical.

Actually, I think that My calendar events are more like my Tasks than "National holidays" Calendar events :-)

@ekalin Regarding support of Tasks from Samsung Calendar. As I see in some places, Samsung is removing this feature in this year's updates, see e.g. https://eu.community.samsung.com/t5/Galaxy-S9-S9/New-Update-Calendar-Issues/td-p/940866 and https://www.reddit.com/r/GalaxyS9/comments/9xjmt0/tasks_are_missing_in_the_default_samsung_calendar/
:-(

Well, that sucks. It's quite convenient because I already have the Samsung Calendar pre-installed, and especially because the tasks are synced (along with contacts and calendar) from my server.
There does seem to be a "Reminders" app that kind of replaces Tasks (not well, judging by the comments...)

"Header for past/due events" looks good:

Please test Beta release v.2.1.0-453: https://play.google.com/apps/testing/org.andstatus.todoagenda

One thing you might add is a receiver for PROVIDER_CHANGED for Dmfs OpenTasks (see https://github.com/ekalin/calendar-widget/commit/48c59268a10b78a0db596a82f29a30c117e4bc29).
This won't actually work on Oreo and later because OpenTasks sends the broadcast only to its own package (https://github.com/dmfs/opentasks/blob/e711e6ea630162be184f5a0e77ac115145a291a3/opentasks-provider/src/main/java/org/dmfs/provider/tasks/TaskProvider.java#L1322), but here Android fragmentation is probably useful; I suppose there's a lot of pre-Oreo devices still around :-) Moreover, there's a note in their source code that they might be looking for a solution, so this might start working in a newer version.

One thing you might add is a receiver for PROVIDER_CHANGED for Dmfs OpenTasks (see ekalin@48c5926).

We need to test if sending notification to  the "ToDo Agenda"'s package works in Android 8+ (it should...) and if so suggest a change to the OpenTasks app?!

I made an app that sends a broadcast just like OpenTasks does, and it was received by ToDo Agenda normally.
I've opened an issue with OpenTasks: https://github.com/dmfs/opentasks/issues/822

I added "Register for notifications on Open Tasks provider changes" and did many internal fixes that should make User experience smoother.
See the updated Beta package:
TodoAgenda-2.1.1-460-release.zip


Singularity containerisation to enable use in conda-limited environments

HPC/Compute Canada doesn't support conda so running the workflow is non-trivial.
They can use singularity so the options would be:

Create a container that has all the dependencies installed and have host install of snakemake executing rules in that environment (easier but less portable)
Create a container encompassing the entire tool (more portable but more complex).

Once done, this build can be triggered on a new release in github actions e.g. https://github.com/jaleezyy/covid-19-signal/blob/master/.github/workflows/dockerpublish.yml

is probably the better choice using the conda docker container as a base image  e.g. singularity build of https://github.com/jaleezyy/covid-19-signal/blob/master/resources/Dockerfile_pipeline  installing mamba on this and then just scripting the README install instructions SHOULD work although the nested pangolin workflow might be a slight tripping point

Hello, I am with the C3G and Compute Canada.
A reasonable solution would be to have two containers, one with the dependencies, with fixed versions of the tools minus snakemake, and one with the ncov-tools scripts that depend on the previous container. Having a version number for all the tools in the environment file could also speed up the build speed and help reproducibility (https://www.anaconda.com/blog/understanding-and-improving-condas-performance)
The goal for us will be to run the pipeline using  snakemake --use-singularity --use-conda paradigm, where snakemake in installed on the host (not in a container).
I can fork the repo and propose something.

Thanks @poquirion, I'd be happy to take a look if you want to fork and propose some changes. You may wish to have a look at issue #47 as we're discussing some other changes to the workflow that may effect the environments.

@poquirion just a head's up that I merged the first stage of the refactor - I suggest you update your fork before starting on the singularity changes

Resolved by @poquirion


don't discard substitions

@amosr

:musical_keyboard:

tempted to, in the future, have substitutions as an abstract type rather than a type synonym for Map: just so it is obvious that map operations won't necessarily be correct


Implement Editor WIP

Allows for #19 to be created without editing original osu!std beatmap.
Also allows #3 #4 #5 to be created.
Current State is not fully operational

please fix all the whitespace issues


Gateway Infrastructure Field Should Be Omitted from Marshaling

What happened:
The Gateway infrastructure field is defined as optional, but it's still being marshaled to JSON.
What you expected to happen:
For this field to be omitted from JSON marshaling.
How to reproduce it (as minimally and precisely as possible):
N/A
Anything else we need to know?:
N/A

/assign


Revert host type UI updates to support dropdown search and multiple pages

Can you add in the description which file was not reverted so it is clear to someone that this isn't a complete revert?


Exchanged developers with containers

The meaning of original sentence: "Coordinating ports across multiple developers is very difficult to do at scale..." is not really obvious. From what I understand from the context of this page, the term containers would make more sense, because the context in this paragraph is on containers and ports rather than developers.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Remember to delete this note before submitting your pull request.
For pull requests on 1.17 Features: set Milestone to 1.17 and Base Branch to dev-1.17
For pull requests on Chinese localization, set Base Branch to release-1.16
Feel free to ask questions in #kubernetes-docs-zh
For pull requests on Korean Localization: set Base Branch to dev-1.16-ko.<latest team milestone>
If you need Help on editing and submitting pull requests, visit:
https://kubernetes.io/docs/contribute/start/#improve-existing-content.
If you need Help on choosing which branch to use, visit:
https://kubernetes.io/docs/contribute/start#choose-which-git-branch-to-use.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

/assign @kbarnard10

The existing document is trying to say that if multiple people need to select a port, those people need to agree on who is using what port where, plus things like handing back ports that are no longer used.
It's more convenient, if you can, to let the control plane take care of port allocations.
I like the aim of the existing document. However, it sounds like the wording could be more clear.

I'd add that, with Kubernetes, picking what ports to use for the containers inside a Pod is rarely difficult. It's when you have multiple different Pod templates that things could get gnarly.

Thank you very much for the explanation. From that point of view the sentence indeed makes sense as it is. I will try to change the wording a bit in order to make the intent a little clearer.

/retitle Improve wording of “Connecting Applications with Services”

@tom1299 if this is something you plan to work on, you can label it as work in progress by putting [WIP]  at the start of the pull request title

/check-cla

I'm absolutely sorry for the mess I caused. But I straightened out git commits and everything should be fine now.
I rephrased the beginning of the sentence a little bit to make it more clear that the the people or teams need to agree on the ports of their containers.
What do you thing ?

/sig network

/approve


Allow user to edit their repo page and change visibility

Currently, there's no way to edit a repo insight page  to change visibility. There should be an option for visibility and an option to upgrade their account

The repo and contributor insight pages being public/private has been hoisted up to the workspace level. So, if you make a workspace private via the Pro Workspace subscription, it'll make all the insight pages private.
We had talked about adding additional access granularity for individual pages but need validation on the whole workspaces product before moving forward with all that.


chore: publish version 0.0.6+1

What kind of change does this PR introduce?
Publish version 0.0.6+1

Which part do you not see the purpose? Do you think we should do weekly releases for individual component libraries such as postgrest_dart or storage_dart as well?


:bug: Call go mod download on each module, if not vendor

Changes

:bug: Call go mod download on each module, if not vendor

/kind bug
Fixes #325

/lgtm Sorry this took so long, ping us!
/hold when you ready go ahead and unhold

/unhold


Extra files in created PR on v2.1.0

There is an extra directory created in PRs when using v2.1.0.
I am using a matrix run, and trying to use the custom branch name option.
https://github.com/LizardByte/PyStream/pull/53/files

This is my workflow: https://github.com/LizardByte/.github/blob/25f8dee8bf0e9ad815e666d4ef7fe9afd4c2d56e/.github/workflows/global-replicator.yml#L119-L151
I'm not sure if I misconfigured something, or if this is a bug.

@derberg I'm sorry for the direct mention, but is there anyway you could take a look at this?
I'm in a bind until this is resolved, or I have to manually update ~30 repos.

done, just rerun worflow, should be ok 🤞🏼
I recommend for security reasons to do: uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25 which is pointing to commit of given release tag

@derberg no, I'm using v2.1.0 https://github.com/LizardByte/.github/blob/25f8dee8bf0e9ad815e666d4ef7fe9afd4c2d56e/.github/workflows/global-replicator.yml#L138
It's only a dev branch right now, but that is the tag that caused the clones directory to appear.

ah, ok, you mean https://github.com/LizardByte/.github/blob/build(deps)-bummp-derberg/manage-files-in-multiple-repositories-from-v2-to-v2.1.0/.github/workflows/global-replicator.yml

ok, got it, the problem is here -> https://github.com/LizardByte/.github/blob/build(deps)-bummp-derberg/manage-files-in-multiple-repositories-from-v2-to-v2.1.0/.github/workflows/global-replicator.yml#L31-L48
patterns_to_include and patterns_to_remove are mutually exclusive

strange that below code did not work:
    if (patternsToRemove && patternsToInclude) {
      core.setFailed('Fields patterns_to_include and patterns_to_remove are mutually exclusive. If you want to remove files from repos then do not use patterns_to_include.');
      return;
    }

I am not using them together... I have two different steps.
First step does removals, second step does includes.

hmmm, these matrix are not that easy to read.
ok, I see what you did there.
there are 2 options:

run workflow again in debug mode, maybe I will be able to see more in logs
refactor to what we do https://github.com/asyncapi/.github/blob/master/.github/workflows/global-replicator.yml and not matrix. If you do matrix to avoid duplications like bot_branch_name: bot/update-files-from-global-repo then please use workflow environments

otherwise it is hard for me to help. I use this new version for few months already and never had such a weird issue

The matrix is equivalent to what you have. You can honestly ignore the matrix, it just runs multiple jobs instead of one... which is the same as what you're doing.
You don't have any patterns_to_remove so perhaps the issue is related to that, I don't think it's that though...
Another thing I notice is that you don't have this action running as more than one step in any job; therefore, I think what is happening, is it's contaminating the github workspace directory... and it doesn't clean up after or between steps... based on this I will add a cleanup step to remove that directory and prevent it from matching clones/*.

I can confirm it works as expected after cleaning up the workspace.
I thought about just deleting the clones directory, but ended up doing a full checkout again just to be 100% sure it's a clean github workspace.


phantomjs crashes running on Ubuntu

I'm running phantomjs as part of a test for a maven project. I get this output when I run maven with -X:
[DEBUG]   (f) arguments = [/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/qunit/runner.js, --modular=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/main/webapp/js/modular.js, --srcDir=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/main/webapp/js, --testDir=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/js/integration, --qunit=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/qunit/qunit-1.11.0.js, --url=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/qunit/qunit.html]
[DEBUG]   (f) basedir = /home/etherton/workspace/epsilon/thinktank5/epsilon-client-js
[DEBUG]   (f) classpathScope = runtime
[DEBUG]   (f) executable = phantomjs
[DEBUG]   (f) longClasspath = false
[DEBUG]   (f) project = MavenProject: com.groupsystems:epsilon-client-js:5.3.0-SNAPSHOT @ /home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/pom.xml
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@d402e
[DEBUG]   (f) skip = false
[DEBUG] -- end configuration --
[DEBUG] Executing command line: phantomjs /home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/qunit/runner.js --modular=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/main/webapp/js/modular.js --srcDir=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/main/webapp/js --testDir=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/js/integration --qunit=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/qunit/qunit-1.11.0.js --url=/home/etherton/workspace/epsilon/thinktank5/epsilon-client-js/src/test/qunit/qunit.html
INFO	runner.js	Changed log level to: INFO
Took 25ms to run 6 tests. 6 passed, 0 failed.
PhantomJS has crashed. Please read the crash reporting guide at https://github.com/ariya/phantomjs/wiki/Crash-Reporting and file a bug report at https://github.com/ariya/phantomjs/issues/new with the crash dump file attached: /tmp/5848405a-f7f1-5945-0f5c3d53-342588dd.dmp

Below is the output from minidump_stackwalk:
./minidump_stackwalk /tmp/5848405a-f7f1-5945-0f5c3d53-342588dd.dmp . 2>/dev/null
Operating system: Linux
                  0.0.0 Linux 3.2.0-41-generic-pae #66-Ubuntu SMP Thu Apr 25 03:50:20 UTC 2013 i686
CPU: x86
     GenuineIntel family 6 model 42 stepping 7
     3 CPUs

Crash reason:  SIGSEGV
Crash address: 0x0

Thread 0 (crashed)
 0  phantomjs!QVariant::toLineF [qvariant.cpp : 2116 + 0x2]
    eip = 0x09b1b1f3   esp = 0xbfc6a9e0   ebp = 0xbfc6aa18   ebx = 0x0a55015c
    esi = 0xbfc6aa90   edi = 0xbfc6abd0   eax = 0x00000000   ecx = 0x0a46cb40
    edx = 0x0c366020   efl = 0x00210246
    Found by: given as instruction pointer in context
 1  phantomjs!streamDebug [qvariant.cpp : 1157 + 0x14]
    eip = 0x09b228b0   esp = 0xbfc6aa20   ebp = 0xbfc6ac28   ebx = 0x0a55015c
    esi = 0xbfc6aa90   edi = 0xbfc6abd0
    Found by: call frame info
 2  phantomjs!streamDebug [qguivariant.cpp : 636 + 0x8]
    eip = 0x09389b60   esp = 0xbfc6ac30   ebp = 0xbfc6afe8   ebx = 0x0a55015c
    esi = 0xbfc6afcc   edi = 0x0c366020
    Found by: call frame info
 3  phantomjs!operator<< [qvariant.cpp : 2933 + 0x11]
    eip = 0x09b21bb8   esp = 0xbfc6aff0   ebp = 0xbfc6b038   ebx = 0x0a55015c
    esi = 0xbfc6b020   edi = 0xbfc6b06c
    Found by: call frame info
 4  phantomjs!Callback::call [callback.cpp : 43 + 0x12]
    eip = 0x08054864   esp = 0xbfc6b040   ebp = 0xbfc6b098   ebx = 0xbfc6b074
    esi = 0x0c3658f8   edi = 0x0c365900
    Found by: call frame info
 5  phantomjs!WebpageCallbacks::qt_static_metacall [webpage.cpp : 296 + 0x12]
    eip = 0x08054efd   esp = 0xbfc6b0a0   ebp = 0xbfc6b0c8   ebx = 0xbfc6b7fc
    esi = 0xbfc6b0b4   edi = 0xbfc6b7fc
    Found by: call frame info
 6  phantomjs!WebpageCallbacks::qt_metacall [webpage.moc : 163 + 0x1e]
    eip = 0x08054fcf   esp = 0xbfc6b0d0   ebp = 0xbfc6b0f8   ebx = 0x00000000
    esi = 0x00000000   edi = 0xbfc6b7fc
    Found by: call frame info
 7  phantomjs!QMetaObject::metacall [qmetaobject.cpp : 245 + 0x16]
    eip = 0x09affe3b   esp = 0xbfc6b100   ebp = 0xbfc6b118   ebx = 0x0a55015c
    esi = 0xbfc6b7fc   edi = 0x00000004
    Found by: call frame info
 8  phantomjs!JSC::Bindings::QtRuntimeMetaMethod::call [qt_runtime.cpp : 1455 + 0x29]
    eip = 0x081a7908   esp = 0xbfc6b120   ebp = 0xbfc6bb78   ebx = 0x0a55015c
    esi = 0x0c3580a0   edi = 0x0c44aa20
    Found by: call frame info
 9  phantomjs!JSC::cti_op_call_NotJSFunction [JITStubs.cpp : 2191 + 0x5]
    eip = 0x08c37cd4   esp = 0xbfc6bb80   ebp = 0xbfc6bbf8   ebx = 0x0a55015c
    esi = 0xb4a1a3f0   edi = 0xb4a1a3f0
    Found by: call frame info
10  0xb4a0fd1b
    eip = 0xb4a0fd1c   esp = 0xbfc6bc00   ebp = 0xbfc6bc48   ebx = 0xb4a0fc2d
    esi = 0x0000025d   edi = 0xb5800230
    Found by: call frame info
11  phantomjs!JSC::Interpreter::executeCall [JITCode.h : 77 + 0x2d]
    eip = 0x08c039a5   esp = 0xbfc6bc50   ebp = 0xbfc6bd48
    Found by: previous frame's frame pointer
12  phantomjs!JSC::call [CallData.cpp : 38 + 0x34]
    eip = 0x08c5256c   esp = 0xbfc6bd50   ebp = 0xbfc6bd98   ebx = 0x0a55015c
    esi = 0xb53e56a8   edi = 0xfffffffb
    Found by: call frame info
13  phantomjs!WebCore::ScheduledAction::executeFunctionInContext [JSMainThreadExecState.h : 48 + 0x42]
    eip = 0x08d07c35   esp = 0xbfc6bda0   ebp = 0xbfc6bea8   ebx = 0x0a55015c
    esi = 0xb4d325b0   edi = 0xfffffffb
    Found by: call frame info
14  phantomjs!WebCore::ScheduledAction::execute [ScheduledAction.cpp : 132 + 0x1d]
    eip = 0x08d0821b   esp = 0xbfc6beb0   ebp = 0xbfc6bf08   ebx = 0x0a55015c
    esi = 0xb65d6000   edi = 0xb5d7c2a8
    Found by: call frame info
15  phantomjs!WebCore::ScheduledAction::execute [ScheduledAction.cpp : 80 + 0x11]
    eip = 0x08d09c80   esp = 0xbfc6bf10   ebp = 0xbfc6bf28   ebx = 0x0a55015c
    esi = 0xb65ec088   edi = 0xb5541a50
    Found by: call frame info
16  phantomjs!WebCore::DOMTimer::fired [DOMTimer.cpp : 148 + 0x11]
    eip = 0x0851343b   esp = 0xbfc6bf30   ebp = 0xbfc6bfb8   ebx = 0x0a55015c
    esi = 0xb4d89960   edi = 0xb65e8120
    Found by: call frame info
17  phantomjs!WebCore::ThreadTimers::sharedTimerFiredInternal [ThreadTimers.cpp : 112 + 0x7]
    eip = 0x085f5a1b   esp = 0xbfc6bfc0   ebp = 0xbfc6bff8   ebx = 0x0a55015c
    esi = 0xb4d89960   edi = 0xb65e8120
    Found by: call frame info
18  phantomjs!WebCore::ThreadTimers::sharedTimerFired [ThreadTimers.cpp : 90 + 0xa]
    eip = 0x085f5b0f   esp = 0xbfc6c000   ebp = 0xbfc6c028   ebx = 0x0a55015c
    esi = 0xb65c40a0   edi = 0x0c1bb7f8
    Found by: call frame info
19  phantomjs!WebCore::SharedTimerQt::timerEvent [SharedTimerQt.cpp : 120 + 0x2]
    eip = 0x0876ae54   esp = 0xbfc6c030   ebp = 0xbfc6c048   ebx = 0x0a55015c
    esi = 0x0c1ac850   edi = 0x0c1ac850
    Found by: call frame info
20  phantomjs!QObject::event [qobject.cpp : 1156 + 0xb]
    eip = 0x09b0b94f   esp = 0xbfc6c050   ebp = 0xbfc6c158   ebx = 0x0a55015c
    esi = 0xbfc6c5a4   edi = 0x0c1ac850
    Found by: call frame info
21  phantomjs!QApplicationPrivate::notify_helper [qapplication.cpp : 4562 + 0xe]
    eip = 0x0935848f   esp = 0xbfc6c160   ebp = 0xbfc6c178   ebx = 0x0a55015c
    esi = 0xbfc6c5a4   edi = 0x0c1ac850
    Found by: call frame info
22  phantomjs!QApplication::notify [qapplication.cpp : 3944 + 0x4]
    eip = 0x09360461   esp = 0xbfc6c180   ebp = 0xbfc6c538   ebx = 0x0a55015c
    esi = 0xbfc6c5a4   edi = 0xbfc6c7ac
    Found by: call frame info
23  phantomjs!QCoreApplication::notifyInternal [qcoreapplication.cpp : 946 + 0x10]
    eip = 0x09af912b   esp = 0xbfc6c540   ebp = 0xbfc6c568   ebx = 0x0a55015c
    esi = 0x0c192d68   edi = 0x0c1ac850
    Found by: call frame info
24  phantomjs!QTimerInfoList::activateTimers [qcoreapplication.h : 231 + 0x19]
    eip = 0x09b252b0   esp = 0xbfc6c570   ebp = 0xbfc6c5c8   ebx = 0x0a55015c
    esi = 0x0c403c80   edi = 0xbfc6c5a4
    Found by: call frame info
25  phantomjs!QEventDispatcherUNIX::activateTimers [qeventdispatcher_unix.cpp : 879 + 0x12]
    eip = 0x09b253b9   esp = 0xbfc6c5d0   ebp = 0xbfc6c5d8   ebx = 0x0a55015c
    esi = 0x00000001   edi = 0x0c1964a8
    Found by: call frame info
26  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 941 + 0xa]
    eip = 0x09b25c70   esp = 0xbfc6c5e0   ebp = 0xbfc6c618   ebx = 0x0a55015c
    esi = 0x00000001   edi = 0x0c1964a8
    Found by: call frame info
27  phantomjs!QEventDispatcherQPA::processEvents [qeventdispatcher_qpa.cpp : 246 + 0x11]
    eip = 0x093bd5fa   esp = 0xbfc6c620   ebp = 0xbfc6c658   ebx = 0x0a55015c
    esi = 0x0c366a50   edi = 0x0c1964a8
    Found by: call frame info
28  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x8]
    eip = 0x09af7fbd   esp = 0xbfc6c660   ebp = 0xbfc6c688   ebx = 0x0a55015c
    esi = 0x0c366a50   edi = 0xbfc6c6c8
    Found by: call frame info
29  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x11]
    eip = 0x09af84a1   esp = 0xbfc6c690   ebp = 0xbfc6c6d8   ebx = 0x0a55015c
    esi = 0x0c366a50   edi = 0xbfc6c700
    Found by: call frame info
30  phantomjs!QCoreApplication::exec [qcoreapplication.cpp : 1218 + 0x11]
    eip = 0x09afa31d   esp = 0xbfc6c6e0   ebp = 0xbfc6c718   ebx = 0x0a55015c
    esi = 0x0c192d68   edi = 0x0c192d68
    Found by: call frame info
31  phantomjs!QApplication::exec [qapplication.cpp : 3823 + 0x4]
    eip = 0x09357da7   esp = 0xbfc6c720   ebp = 0xbfc6c728   ebx = 0x0a55015c
    esi = 0xbfc6c800   edi = 0xbfc6c7ac
    Found by: call frame info
32  phantomjs!main [main.cpp : 121 + 0x4]
    eip = 0x0806d9b9   esp = 0xbfc6c730   ebp = 0xbfc6c7e8   ebx = 0x0c1a46e0
    esi = 0xbfc6c800   edi = 0xbfc6c7ac
    Found by: call frame info
33  libc-2.15.so + 0x194d2
    eip = 0xb73754d3   esp = 0xbfc6c800   ebp = 0x00000000   ebx = 0xb7500ff4
    esi = 0x00000000   edi = 0x00000000
    Found by: call frame info
34  libc-2.15.so + 0x1a4ff3
    eip = 0xb7500ff4   esp = 0xbfc6c828   ebp = 0x00000000
    Found by: stack scanning
35  ld-2.15.so + 0x146af
    eip = 0xb77556b0   esp = 0xbfc6c858   ebp = 0x00000000
    Found by: stack scanning
36  libc-2.15.so + 0x193e8
    eip = 0xb73753e9   esp = 0xbfc6c85c   ebp = 0x00000000
    Found by: stack scanning
37  ld-2.15.so + 0x20ff3
    eip = 0xb7761ff4   esp = 0xbfc6c860   ebp = 0x00000000
    Found by: stack scanning
38  phantomjs!_GLOBAL__I_main [main.cpp : 129 + 0x7]
    eip = 0x0806d780   esp = 0xbfc6c874   ebp = 0x00000000
    Found by: stack scanning
39  ld-2.15.so + 0xf27f
    eip = 0xb7750280   esp = 0xbfc6c888   ebp = 0x00000000
    Found by: stack scanning
40  ld-2.15.so + 0x21917
    eip = 0xb7762918   esp = 0xbfc6c890   ebp = 0x00000000
    Found by: stack scanning

Thread 1
 0  linux-gate.so + 0x424
    eip = 0xb7740424   esp = 0xb6ecb0b8   ebp = 0x00000002   ebx = 0xb6ecb288
    esi = 0x00000000   edi = 0xb6ecb208   eax = 0xfffffdfc   ecx = 0xb6ecb288
    edx = 0xb7500ff4   efl = 0x00200292
    Found by: given as instruction pointer in context
 1  libc-2.15.so + 0x1a4ff3
    eip = 0xb7500ff4   esp = 0xb6ecb0c0   ebp = 0x00000002
    Found by: stack scanning
 2  libc-2.15.so + 0xb7f25
    eip = 0xb7413f26   esp = 0xb6ecb0c8   ebp = 0x00000002
    Found by: stack scanning
 3  libc-2.15.so + 0xb7d1e
    eip = 0xb7413d1f   esp = 0xb6ecb0d0   ebp = 0x00000002
    Found by: stack scanning
 4  phantomjs + 0x1a8701f
    eip = 0x09acf020   esp = 0xb6ecb100   ebp = 0x00000002
    Found by: stack scanning
 5  ld-2.15.so + 0x965c
    eip = 0xb774a65d   esp = 0xb6ecb14c   ebp = 0x00000002
    Found by: stack scanning
 6  libc-2.15.so + 0x12bae
    eip = 0xb736ebaf   esp = 0xb6ecb150   ebp = 0x00000002
    Found by: stack scanning
 7  ld-2.15.so + 0x20ff3
    eip = 0xb7761ff4   esp = 0xb6ecb17c   ebp = 0x00000002
    Found by: stack scanning
 8  libc-2.15.so + 0x37ab
    eip = 0xb735f7ac   esp = 0xb6ecb180   ebp = 0x00000002
    Found by: stack scanning

Thread 2
 0  linux-gate.so + 0x424
    eip = 0xb7740424   esp = 0xb65a201c   ebp = 0xb65a2098   ebx = 0x00000008
    esi = 0xb5c00994   edi = 0x00000000   eax = 0xfffffdfe   ecx = 0xb5c0056c
    edx = 0xb5c00780   efl = 0x00200292
    Found by: given as instruction pointer in context
 1  phantomjs!QEventDispatcherUNIX::select [qeventdispatcher_unix.cpp : 650 + 0x23]
    eip = 0x09b23e19   esp = 0xb65a20a0   ebp = 0xb65a20b8
    Found by: previous frame's frame pointer
 2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0x34]
    eip = 0x09b257d7   esp = 0xb65a20c0   ebp = 0xb65a21c8   ebx = 0x0a55015c
    Found by: call frame info
 3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0xb]
    eip = 0x09b25c47   esp = 0xb65a21d0   ebp = 0xb65a2208   ebx = 0x0a55015c
    esi = 0xb65a21f0   edi = 0xb5c00478
    Found by: call frame info
 4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x8]
    eip = 0x09af7fbd   esp = 0xb65a2210   ebp = 0xb65a2238   ebx = 0x0a55015c
    esi = 0xb5c00bd8   edi = 0xb65a2278
    Found by: call frame info
 5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x11]
    eip = 0x09af84a1   esp = 0xb65a2240   ebp = 0xb65a2288   ebx = 0x0a55015c
    esi = 0xb5c00bd8   edi = 0xb65a22c0
    Found by: call frame info
 6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xe]
    eip = 0x099e7b5a   esp = 0xb65a2290   ebp = 0xb65a22d8   ebx = 0x0a55015c
    esi = 0x0c1c3628   edi = 0xb65a22c0
    Found by: call frame info
 7  phantomjs!QThread::run [qthread.cpp : 609 + 0xa]
    eip = 0x099e7ca1   esp = 0xb65a22e0   ebp = 0xb65a22e8   ebx = 0x0a55015c
    esi = 0x0c31f450   edi = 0x0c1bbea8
    Found by: call frame info
 8  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x7]
    eip = 0x099ead80   esp = 0xb65a22f0   ebp = 0xb65a2328   ebx = 0x0a55015c
    esi = 0x0c31f450   edi = 0x0c1bbea8
    Found by: call frame info
 9  libpthread-2.15.so + 0x6d4b
    eip = 0xb763bd4c   esp = 0xb65a2330   ebp = 0xb65a2428   ebx = 0xb764cff4
    esi = 0x00000000   edi = 0x003d0f00
    Found by: call frame info
10  libc-2.15.so + 0xeeddd
    eip = 0xb744adde   esp = 0xb65a2430   ebp = 0x00000000
    Found by: previous frame's frame pointer

Loaded modules:
0x08048000 - 0x0a55ffff  phantomjs  ???  (main)
0xb4aee000 - 0xb4b88fff  DejaVuSansCondensed-Bold.ttf  ???
0xb4c33000 - 0xb4cd0fff  DejaVuSansCondensed.ttf  ???
0xb4cfe000 - 0xb4d11fff  n019003l.pfb  ???
0xb6ed4000 - 0xb6f2afff  libssl.so.1.0.0  ???
0xb6f2b000 - 0xb70d2fff  libcrypto.so.1.0.0  ???
0xb70d6000 - 0xb70dbfff  945677eb7aeaf62f1d50efc3fb3ec7d8-le32d4.cache-3  ???
0xb70dc000 - 0xb70ddfff  99e8ed0e538f840c565b6ed5dad60d56-le32d4.cache-3  ???
0xb70de000 - 0xb70e0fff  2cd17615ca594fa2959ae173292e504c-le32d4.cache-3  ???
0xb70e1000 - 0xb70e1fff  e7071f4a29fa870f4323321c154eba04-le32d4.cache-3  ???
0xb70e2000 - 0xb70e3fff  b5ea634b0fb353b8ea17632d1f9ef766-le32d4.cache-3  ???
0xb70e4000 - 0xb70e4fff  0d8c3b2ac0904cb8a57a757ad11a4a08-le32d4.cache-3  ???
0xb70e5000 - 0xb70e8fff  a755afe4a08bf5b97852ceb7400b47bc-le32d4.cache-3  ???
0xb70e9000 - 0xb70effff  6d41288fd70b0be22e8c3a91e032eec0-le32d4.cache-3  ???
0xb70f0000 - 0xb70fafff  04aabc0a78ac019cf9454389977116d2-le32d4.cache-3  ???
0xb70fb000 - 0xb70fdfff  385c0604a188198f04d133e54aba7fe7-le32d4.cache-3  ???
0xb70fe000 - 0xb70fefff  4794a0821666d79190d59a36cb4f44b5-le32d4.cache-3  ???
0xb70ff000 - 0xb7101fff<PHONE_NUMBER>630a81b71ace7c5f9b32a8-le32d4.cache-3  ???
0xb7102000 - 0xb7105fff  3047814df9a2f067bd2d96a2b9c36e5a-le32d4.cache-3  ???
0xb7106000 - 0xb7106fff  56cf4f4769d0f4abc89a4895d7bd3ae1-le32d4.cache-3  ???
0xb7107000 - 0xb7107fff  b9d506c9ac06c20b433354fa67a72993-le32d4.cache-3  ???
0xb7108000 - 0xb710bfff  b47c4e1ecd0709278f4910c18777a504-le32d4.cache-3  ???
0xb710c000 - 0xb7118fff  d52a8644073d54c13679302ca1180695-le32d4.cache-3  ???
0xb7119000 - 0xb7318fff  locale-archive  ???
0xb731c000 - 0xb7345fff  libexpat.so.1.5.2  ???
0xb7346000 - 0xb735bfff  libz.so.<IP_ADDRESS>  ???
0xb735c000 - 0xb7501fff  libc-2.15.so  ???
0xb7505000 - 0xb7522fff  libgcc_s.so.1  ???
0xb7524000 - 0xb754ffff  libm-2.15.so  ???
0xb7550000 - 0xb762dfff  libstdc++.so.6.0.16  ???
0xb7635000 - 0xb764dfff  libpthread-2.15.so  ???
0xb7650000 - 0xb7658fff  librt-2.15.so  ???
0xb7659000 - 0xb765dfff  libdl-2.15.so  ???
0xb765f000 - 0xb7692fff  libfontconfig.so.1.4.4  ???
0xb7693000 - 0xb772cfff  libfreetype.so.6.8.0  ???
0xb772e000 - 0xb7731fff  3f7329c5293ffd510edef78f73874cfd-le32d4.cache-3  ???
0xb7732000 - 0xb7739fff  e13b20fdb08344e0e664864cc2ede53d-le32d4.cache-3  ???
0xb773a000 - 0xb773cfff  7ef2298fde41cc6eeb7af42e48b7d293-le32d4.cache-3  ???
0xb7740000 - 0xb7740fff  linux-gate.so  ???
0xb7741000 - 0xb7762fff  ld-2.15.so  ???

Thanks for any help. Phantomjs runs fine on my colleagues computers, but mine just doesn't like it.

Please upgrade to PhantomJS 2.0. 1.9.x is no longer supported, and known to have many crasher bugs that are fixed in 2.0.


R4 Minima: "extra" pins inaccessible.

The board to chip pin translations for the RX and TX LEDs, and the RX/TX signals available on the SWD connector are not present in the Minima variants.cpp or pins_arduino.h, making those essentially inaccessible to "proper" arduino sketches.

TX/RX LEDS are now user accessible (https://github.com/arduino/ArduinoCore-renesas/blob/main/variants/MINIMA/variant.cpp#L49-L50 , from commit https://github.com/arduino/ArduinoCore-renesas/commit/df98db2d3f9b2b8362b74e9ad720cd13e1a1aac7 ).
For the SWD pins, I don't think it's a good idea to expose them to the end user, but I'll be glad to change my mind if you have a user case for it.

I wasn't talking about the SWD pins themselves, but rather the "extra" serial port from P501/502 that seems to be connected pins 7 and 8 on the SWD connector.   (This seems to be an Arduino-specific hack.  Pin 7 is "supposed" to be a "key" (missing pin) for correct connector insertion.  Not that I've ever seen a connector with pin7 actually missing.)

Got it, I agree that's something we should add to the list of user pins (maybe also the SWD ones at this point).
About the "key" pin, the specification only mandates that 7 and 8 are "not connected" on the debugger side

so you can add whatever you want on that pins :slightly_smiling_face:


Can only print blank either bluetooth or usb c cable.

Transport:

[x] Bluetooth (what adapter are you using?)

Hi. You picked wrong print direction in label settings. For B1 it should be Top (red line on the top of canvas).
Otherwise, it will not fit with the printer's max printhead resolution and will produce unpredictable results.

I tried with top as well. No luck. I can print it via mobile appm but not sure why niimBlue is not working on b1

hi I was wrong. There is some connection issue from usb-c, able to print if using ble. Thank you!

Glad it all worked out for you!
For USB connection, make sure your printer is turned on before connecting the USB cable.
Otherwise, the printer can be connected in the Web UI, but printing will not work.


fix: return status code instead of the object

I think returning object instead of status code might make more sense in the REST paradigm. Not having too strong of an opinion here as it largely depends on the merchants architecture and the method they prefer. Obviously returning such an object is not mandatory.

Closing this PR as the changes are reflected in #7


add multi-label support

Hi I added support to allow label as a list. So we can support reading data with multiple labels. This can then solve https://github.com/ray-project/xgboost_ray/issues/286.
I verified new unit tests pass. Also test_matrix.py all pass with my local set up.
I verified locally by training a xgboost model with parquet data format, it works well. So far it should work well for parquet data format. Thank you!

I verified the change works with the blow code example:
from sklearn.datasets import make_multilabel_classification
import pandas as pd
import numpy as np
n_classes = 5
random_state = 0
X, y = make_multilabel_classification(n_samples=32, n_classes=5, n_labels=3, random_state=random_state)
features = [f"f{i}" for i in range(len(X[0]))]
labels = [f"label_{i}" for i in range(n_classes)]

X_df = pd.DataFrame(X, columns = features)
y_df = pd.DataFrame(y, columns = labels)
data = pd.concat([X_df, y_df], axis = 1)

data.to_parquet("~/Desktop/sample_data/data.parquet")

from xgboost_ray import RayDMatrix, RayParams, train, RayFileType
n_classes = 5
features = [f"f{i}" for i in range(20)]

labels = [f"label_{i}" for i in range(n_classes)]

training_data = "~/Desktop/sample_data"
train_set = RayDMatrix(training_data, labels, columns = features + labels, filetype=RayFileType.PARQUET)

evals_result = {}
bst = train(
    {
        "objective": "binary:logistic",
        "eval_metric": ["logloss", "error"],
        "random_state": random_state,
    },
    train_set,
    num_boost_round = 1,
    evals_result=evals_result,
    evals=[(train_set, "train")],
    verbose_eval=False,
    ray_params=RayParams(
        num_actors=1,  # Number of remote actors
        cpus_per_actor=1))

#bst.save_model("model.xgb")
#print("Final training error: {:.4f}".format(
#    evals_result["train"]["error"][-1]))

from xgboost_ray import predict
pred_ray = predict(bst, train_set, ray_params=RayParams(num_actors=1))
print(pred_ray)

import xgboost as xgb

clf = xgb.XGBClassifier(tree_method="hist", n_estimators = 1, random_state=0)
clf.fit(X, y)
expected = clf.predict_proba(X)

np.testing.assert_allclose(expected, pred_ray)

@Yard1 can you help take a look when you get a chance? thanks!

Hi @Yard1 may I ask how to fix the lint test? Seems it still blocks the merge. Thank you!

Can you run the ./format.sh script in the root of the repo?

@louis-huang can you please run the above test please?


Bot does not answer at all

Hi there,
I've just tried the Matrix-EmailBridge but could not make it work.
I followed the instructions but all I got was this message:
Hey you have invited me to a new room. Enter !login to bridge this room to a Mail account
Typing !login ou !help does nothing at all.
Can someone please help?

@facb69  I had a similar issue, on "matrixuserid" field, wouldn't you happened to have setup your userid? It's supposed to be a unique name for the bot 😄


App request root even after granting.

I'm on Havoc 3.0 on Q. Magisk 20.1. I've granted the app root but it doesn't detect it. I've checked in Magisk Manager and yes it has root. I tried to reboot, same problem.

No Root Detected

Hey there, I'm experiencing the exact same issue on the same device with the same OS.
Please @KieronQuinn :)
Thanks !

Fixed in 1.2


Remove the src dir and fix the dockerfile to get the code from the pu…

…blic repo

Status
In Progress
Related Content Pull Request
https://github.com/demisto/sane-doc-reports/pull/87
Related Issues
Related: https://github.com/demisto/etc/issues/37148
Description
Make changes to add the public repo of sane-doc-reports & update a fix.

@agamm I think circleci ignore the PR if it has WIP in it.

Docker Image Ready - Dev
Docker automatic build at CircleCI has deployed your docker image: devdemisto/sane-doc-reports:<IP_ADDRESS>87
It is available now on docker hub at: https://hub.docker.com/r/devdemisto/sane-doc-reports/tags
Get started by pulling the image:
docker pull devdemisto/sane-doc-reports:<IP_ADDRESS>87

Docker Metadata

Image Size: 394.39 MB

Image ID: sha256:10587409e1e1fd0682cd0f5a57b57e330cf0bb7cc1aebde5deb77b9816bbe67f

Created: 2021-05-27T10:46:07.258775404Z

Arch: linux/amd64

Command: ["python3"]

Environment:

PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=C.UTF-8
GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568
PYTHON_VERSION=3.9.5
PYTHON_PIP_VERSION=21.1.1
PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/1954f15b3f102ace496a34a013ea76b061535bd2/public/get-pip.py
PYTHON_GET_PIP_SHA256=f499d76e0149a673fb8246d88e116db589afbd291739bd84f2cd9a7bca7b6993
DOCKER_IMAGE=devdemisto/sane-doc-reports:<IP_ADDRESS>87

Labels:

org.opencontainers.image.authors:Demisto<EMAIL_ADDRESS>org.opencontainers.image.revision:2eff77783c626121bf014934e2f1847374bba486
org.opencontainers.image.version:<IP_ADDRESS>87


dma: enable edma drivers for mcux

edma rt series support. tested on mimxrt1060_evt/frdmk64f
MEMORY_NOCACHE is needed for rt
test slot need special set for kinetis
Signed-off-by: Hake Huang<EMAIL_ADDRESS>Depends on zephyrproject-rtos/hal_nxp#35

@carlescufi I'd like to review the dma api changes in the api meeting next week

@carlescufi I'd like to review the dma api changes in the api meeting next week

@erwango FYI since you guys are doing a bunch of DMA stuff on STM32 as well.

-:112: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1
#112: FILE: drivers/dma/dma_mcux_edma.c:1:
+/*

Please ignore these warnings (see #24921)

API meeting:
No objections to the changes in the DMA config structure, except for additional comments.

tests/drivers/dma/loop_transfer doesn't seem to work at runtime:
On frdm_k64f:
*** Booting Zephyr OS build v2.3.0-rc1-6-g90ad28307ca0  ***
DMA memory to memory transfer started on DMA_0
Preparing DMA Controller
Starting the transfer and waiting for 1 second
TX data: The quick brown fox jumps over the lazy dog
block_size 43
I: channel 0 error status is 0x2
ERROR: unfinished transfer
Each RX buffer should contain the full TX buffer string.
TX data: The quick brown fox jumps over the lazy dog
RX data Loop 0: The quick brown fox jumps over the lazy dog
RX data Loop 1: The quick brown fox jups
RX data Loop 2:
RX data Loop 3:
RX data Loop 4:
Finished: DMA

On mimxrt1064_evk:
*** Booting Zephyr OS build v2.3.0-rc1-6-g90ad28307ca0  ***
DMA memory to memory transfer started on DMA_0
Preparing DMA Controller
Starting the transfer and waiting for 1 second
TX data: The quick brown fox jumps over the lazy dog
block_size 43
Each RX buffer should contain the full TX buffer string.


init.py needs declare_namespace

What steps will reproduce the problem?
1. Install distribute and pip directly:
sudo bash -c "wget -O - http://python-distribute.org/distribute_setup.py |
python"
sudo bash -c "wget -O -
https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python"
2. 'pip install google-apputils'
3. Get a warning:
Running setup.py install for google-apputils
    WARNING: google is a namespace package, but its __init__.py does
    not declare_namespace(); setuptools 0.7 will REQUIRE this!
    (See the setuptools manual under "Namespace Packages" for details.)

    WARNING: google.apputils is a namespace package, but its __init__.py does
    not declare_namespace(); setuptools 0.7 will REQUIRE this!
    (See the setuptools manual under "Namespace Packages" for details.)

What is the expected output? What do you see instead?
No warnings.

What version of the product are you using? On what operating system?
Ubuntu 10.04

Please provide any additional information below.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 28 Mar 2012 at 12:44

We won't be fixing issues directly in this repository.  Development of this library has been moved to https://github.com/abseil/abseil-py.  If it can be reproduced there, please open an issue in the abseil-py project.


GEOMESA-715 Speeding up writes

Passing computed values to the various writers to we don't encode the feature multiple times
Reducing the creation of various keys and visibility text objects
When possible, not re-building features just to change the feature id

Signed-off-by: Emilio Lahr-Vivaz<EMAIL_ADDRESS>

Committed as 669babec061d5b4a026f74bcf837801323d6733a on 1.5.


player.getDuration() return NaN or 0

I don't know if it's a bug, or I'm missing something:
I should get the video duration when the video is ready, but with my videos it return 0, with the provided demo video it return NaN
Browser: FILL WITH YOUR BROWSER (ex: Chrome Version 46.0.2490.80, Firefox Version 3.5.6, IE 11)
Chrome
OS: FILL WITH YOUR OS (ex: Mac OS 10.11.1, iOS9, android4.5)
Windows 10
Clappr Version: 0.3.8
Steps to reproduce:
var playerElement = document.getElementById("player-wrapper");
var player = new Clappr.Player({
source: 'http://clappr.io/highline.mp4',
poster: 'http://clappr.io/poster.png',
mute: true,
height: 360,
width: 640
});
player.listenTo(player, Clappr.Events.PLAYER_READY, () => {
console.log("Video ready");
console.log(player.getDuration())  /// NaN
});
player.attachTo(playerElement);
Did you try to reproduce this issue at http://cdn.clappr.io/
YES
ps: you can attach images, logs or whatever you think might be helpful.
ps: feel free to clean this if your issue is different.

Hi @DanieleSuppo73 !
Doing some tests I noticed that the video element is not returning the duration property as soon as its state changes to READY. We need further investigation but it appears to be a bug.
To solve it momentarily, if you delay the call to the getDuration method a bit, the answer will come correctly.
An example of how to do it: http://clappr.io/demo/#dmFyIHBsYXllckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLXdyYXBwZXIiKTsKCnZhciBwbGF5ZXIgPSBuZXcgQ2xhcHByLlBsYXllcih7CiAgc291cmNlOiAnaHR0cDovL2NsYXBwci5pby9oaWdobGluZS5tcDQnLAogIHBvc3RlcjogJ2h0dHA6Ly9jbGFwcHIuaW8vcG9zdGVyLnBuZycsCiAgbXV0ZTogdHJ1ZSwKICBoZWlnaHQ6IDM2MCwKICB3aWR0aDogNjQwLAogIGV2ZW50czogewogICAgb25SZWFkeTogZnVuY3Rpb24oKSB7CiAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICByZXR1cm4gY29uc29sZS5sb2codGhpcy5nZXREdXJhdGlvbigpKTsKICAgICAgfSwgMTAwMCk7CiAgICB9CiAgfQp9KTsKCnBsYXllci5hdHRhY2hUbyhwbGF5ZXJFbGVtZW50KTsK

As I also stumbled over this issue I found a maybe better way: clappr provides a timeupdate event
http://clappr.io/demo/#dmFyIHBsYXllckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLXdyYXBwZXIiKTsKCnZhciBwbGF5ZXIgPSBuZXcgQ2xhcHByLlBsYXllcih7CiAgc291cmNlOiAnaHR0cDovL2NsYXBwci5pby9oaWdobGluZS5tcDQnLAogIHBvc3RlcjogJ2h0dHA6Ly9jbGFwcHIuaW8vcG9zdGVyLnBuZycsCiAgbXV0ZTogdHJ1ZSwKICBoZWlnaHQ6IDM2MCwKICB3aWR0aDogNjQwLAogIGV2ZW50czogewogICAgb25UaW1lVXBkYXRlOiBmdW5jdGlvbihldmVudCkgewogICAgICBjb25zb2xlLmxvZyhldmVudCkKICAgIH0KICB9Cn0pOwoKcGxheWVyLmF0dGFjaFRvKHBsYXllckVsZW1lbnQpOwo=


Embedded Picture Invalid ID3 frame size..

Embedding an image with "tone --meta-cover-file=image.jpg audio.mp3" works nicely, but Exiftool returns "Warning: Invalid ID3 frame size".
I've tried to pinpoint the problem on tone with mpg123-strip <in.mpg >out.mp3, tone.exe tag --meta-cover-file=image.jpg out.mp3
Using tone release 0.1.5 on Windows.

Something to be discussed with the atldotnet maintainer... thanks for reporting.

@gitoss
Is this still happening with tone 0.1.6?

tone 0.1.7 is out, no feedback - I'm going to assume this is fixed. Feel free to reopen the issue, if not.


feat(quote): add additional quote structures

Closes #74
Does not contain deserialization code that currently depends on some unsafe { transmutes }.

I'm not sure how to remove these references. A lot of types have dynamic lengths so I'm not sure how to cast to them without some parsing. I added the parsing code I'm using.


[NPM] add npm-tools k8s workload

What does this PR do?
Add npm-tools k8s workload
Which scenarios this will impact?
Motivation
Additional Notes

If you need it deployed to the Github registry, you need to update the github workflow, I listed raw instructions at https://datadoghq.atlassian.net/wiki/spaces/ADX/pages/3536257272/How+to+add+a+workload+app+for+tests

If you need it deployed to the Github registry, you need to update the github workflow, I listed raw instructions at https://datadoghq.atlassian.net/wiki/spaces/ADX/pages/3536257272/How+to+add+a+workload+app+for+tests

Thanks but I would not need to update the image, it's just the k8s job description

/merge


Refactor remote IO code

The code paths for interacting with a remote chip via local ERISC cores are difficult to understand and make puzzling use of std::vector.  There appear to be opportunities to eliminate use of temporary buffers and to make the code more obvious in its intent.

We will likely hit this issue when trying to create LocalChip vs RemoteChip.


[1.13] journald log driver

Allowed for user to flag --log-to-journal to log container output to journald as well as kubernetes logs (in conmon).
(this is just a CI requirements test, still need to wire it up in cri-o)
Signed-off-by: Peter Hunt<EMAIL_ADDRESS>
- What I did
- How I did it
- How to verify it
- Description for the changelog

/ok-to-test

/retest

/retest e2e_rhel

/test e2e_rhel

/test integration_rhel

/retest

/test integration_rhel

/test e2e_rhel

@mrunalp @sboeuf I think the Kata tests need to include libsystemd (or libsystemd-dev if Ubuntu based) to pass. I can open a PR but I'm not sure where those tests run from. Is it https://github.com/kata-containers/agent ?

@giuseppe I added conditional compilation of the journald content to get around systems that aren't compatible with systemd (or ones where it's too difficult to pin down what the package is actually called). Do you think it would be better to have compile a dummy sd_journal_print() instead of having the #ifdefs in the code? I'm not married to either solution.

/test e2e_fedora

@chavafg Can you help with kata integration for this?

any reason why this is for release-1.13 and not master?
The code LGTM

It was requested for OCP 4.1 which, as I understand, will be running 1.13. I've been prioritising here and will also add to master once code here is approved

/test e2e_rhel

Huzzah happy tests! @mrunalp @umohnani8 PTAL :)

It was requested for OCP 4.1 which, as I understand, will be running 1.13. I've been prioritising here and will also add to master once code here is approved

it should really not make any difference, but could you already open it so we can we sure tests pass on master too?

LGTM

Let us add some bats tests for this as well. The test can be similar to the logging tests that we have today but can also read from the journal to check that the logs are written correctly to the journal.

@mrunalp okay I will try. I think they will have to be optional tests that run only if the system has systemd installed (similar to how conmon is compiled). I will see what I can do.

@haircommander Yes, that should work :+1:

/test critest_fedora

/retest

/test kata-jenkins

/retest

/retest

/retest

alright, now journald or cri-file can be chosen, as well as both at the same time. I left the crio flag --log-journald, as we always want to write to the cri file. @mrunalp @rhatdan @giuseppe @sboeuf PTAL

/test kata-containers

/test e2e_rhel

/retest

OK folks, I kinda went wild here following the advice. Container logging is now in a separate file, as well as some utility functions that are needed in both conmon.c and ctr_logging.c . There's a set of interface functions for conmon call to log any container output into any/all of the logging drivers. Eventually, this will allow for more flexibility with container logging. I will look into adding JSON as a proof of concept of that as well.
following @giuseppe 's advice, the flag in conmon is now --log-path : or --log-path  which defaults to k8s format. I like this, because it will allow us to write to JSON and k8s at the same time, to different files, with a clear CLI. However, I left the flag in CRI-O as --log-journald, as we always want to write to k8s. When I eventually port this to podman, I will likely follow conmon more closely in CLI.
PTAL :) @rhatdan @mrunalp

/retest

/test e2e_rhel

/test  rhel_e2e

/test e2e_rhel

LGTM

@mrunalp  @rhatdan PTAL

LGTM
But @mrunalp Needs final say.

@mrunalp can now be filtered by ID like:
journalctl MESSAGE_ID=<ctr_id> :) PTAL!

/test kata-containers

@mrunalp PTAL when you get a chance :)

/retest

currently working on some small fixes in master, which I'd like to integrate into here when they're hammered out:
https://github.com/kubernetes-sigs/cri-o/pull/2171
/hold

/hold cancel
updated to have newest journald content :)

/test e2e_rhel
On Wed, Mar 27, 2019, 5:39 PM OpenShift CI Robot<EMAIL_ADDRESS>wrote:

@haircommander https://github.com/haircommander: The following test
failed, say /retest to rerun them all:
Test name Commit Details Rerun command
ci/openshift-jenkins/e2e_rhel 430037f
https://github.com/kubernetes-sigs/cri-o/commit/430037f4f5794534b82a5a930d01785f34fcc9bd
link
https://openshift-gce-devel.appspot.com/build/origin-federated-results/pr-logs/pull/kubernetes-sigs_cri-o/2078/test_pull_request_crio_e2e_rhel/2375/ /test
e2e_rhel
Full PR test history
https://openshift-gce-devel.appspot.com/pr/kubernetes-sigs_cri-o/2078. Your
PR dashboard https://openshift-gce-devel.appspot.com/pr/haircommander.
Please help us cut down on flakes by linking to
https://github.com/kubernetes/community/blob/master/contributors/devel/flaky-tests.md#filing-issues-for-flaky-tests
an open issue
https://github.com/kubernetes-sigs/cri-o/issues?q=is:issue+is:open when
you hit one in your PR.
Instructions for interacting with me using PR comments are available here
https://git.k8s.io/community/contributors/guide/pull-requests.md. If
you have questions or suggestions related to my behavior, please file an
issue against the kubernetes/test-infra
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
repository. I understand the commands that are listed here
https://go.k8s.io/bot-commands.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/cri-o/pull/2078#issuecomment-477357978,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIqYJ7ouR1dJRbAxn8p82Pnw9J84LLgDks5va-UjgaJpZM4bDsb-
.

/retest

We don't need this for 1.13 anymore. Closing it for now.


Follow up prompts

it’s not apparent how to request a series of prompts on the knowledge graph. Like if I wanted to ask a series of questions. I don’t want to make multiple api calls on the same website.  Maybe I’m not understanding something.
How do I save the knowledge graph and then iterate prompt requests on it without actually calling the website again?

Also what testing has been done on inputting raw source html to the source parameter?

it’s not apparent how to request a series of prompts on the knowledge graph. Like if I wanted to ask a series of questions. I don’t want to make multiple api calls on the same website. Maybe I’m not understanding something.
How do I save the knowledge graph and then iterate prompt requests on it without actually calling the website again?

hi @jesse-lane-ai,
one way to achieve the above is to use the cache attribute to store the contents of a website, so that you only have to call the language model on it multiple times, once per search question you might have, instead of re-running the whole pipeline multiple times (automatically handled under the hood).
see more on the cache in the graph config's additional parameters section in the documentation.

Is there a workflow to just return the graph ?

you mean returning the vector store / KG?
not yet, but we already had some requests for it, @VinciGit00


Uncaught TypeError: Cannot read property 'setDefaults' of undefined

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Feature request
[ ] Documentation issue or request

Current behavior
Chrome:
I get an error: Uncaught TypeError: Cannot read property 'setDefaults' of undefined, in jquery-cropper.js:68.
Firefox:
I get an error: TypeError: Cropper is undefined, in jquery-cropper,js:68:5
Expected behavior
No error.
Minimal reproduction of the problem with instructions
STEPS TO REPRODUCE
Copy/paste the following files into project: https://raw.githubusercontent.com/fengyuanchen/cropperjs/master/dist/cropper.js
https://raw.githubusercontent.com/fengyuanchen/cropperjs/master/dist/cropper.css
https://raw.githubusercontent.com/fengyuanchen/jquery-cropper/master/dist/jquery-cropper.js
https://raw.githubusercontent.com/fengyuanchen/jquery-cropper/master/dist/jquery-cropper.esm.js
https://raw.githubusercontent.com/fengyuanchen/jquery-cropper/master/dist/jquery-cropper.common.js
Add to html page:
head --
< link rel="stylesheet" type="text/css" href="/css/cropper.css">
body --
< script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
< script src="webroot;?>js/cropper.js">
< script src="webroot;?>js/jquery-cropper.js">
What is the motivation / use case for changing the behavior?
Use cropper to crop an image that gets uploaded by a user, and then save the cropped image.
Environment

jquery-cropper version: 1.0.0

Browser:
- [x] Chrome (desktop) version 77.0.3865.90 (Official Build) (64-bit)
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [x] Firefox version 69.0.2 (64-bit) (Firefox Quantum)
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX

Others:
jquery-min version: 3.4.1
cropper version - 4.1.0
also tried cropper version - 1.5.6

It seems you don't load the cropper.js on the page.

Doesn't this line load cropper.js:
< script src="/js/cropper.js">
?
I saved the file cropper.js on the server, and I see it being loaded in chrome inspector->network.

https://github.com/fengyuanchen/jquery-cropper#installation

<script src="/path/to/jquery.js"></script><!-- jQuery is required -->
<script src="/path/to/cropper.js"></script><!-- Cropper.js is required -->
<link  href="/path/to/cropper.css" rel="stylesheet">
<script src="/path/to/jquery-cropper.js"></script>


fix: remove yargs-promise from cli cmds

related:
https://github.com/ipfs/js-ipfs/pull/2708

Could you change the base to the add-metadata-support branch please?  It's got quite a few more tests in it for the CLI than master.

The metadata support branch has been merged into master so ignore that last comment..

@achingbrain ready for review

Superseded by ipfs/js-ipfs/pull/2795


nuxt.config.ts sitemap key Typescript error in VSCode

VSCode does not recognize the sitemap key and keeps highlighting it within the nuxt.config.ts file.

Full error:
Argument of type '{ css: string[]; app: { head: { htmlAttrs: { lang: string; }; link: { rel: "preload"; as: "style"; onload: string; href: string; media: string; }[]; script: { hid: string; src: string; defer: true; }[]; }; }; routeRules: { ...; }; ... 5 more ...; sitemap: { ...; }; }' is not assignable to parameter of type 'NuxtConfig'.
  Object literal may only specify known properties, and 'sitemap' does not exist in type 'NuxtConfig'.ts(2345)

I think sitemap is the old nuxt2 way.
Try putting it in the modules part:
export default defineNuxtConfig({
        modules:
            [
                [
                    "@funken-studio/sitemap-nuxt-3",
                    {
                        hostname: "https://example.com"
                    }
                ]
            ]
    }
);

This worked for me with nuxt 3.0.0.
With the current version 3.1.1 I have a different problem, see #29.

Also see #21.


Package request: JReleaser

Project description
JReleaser is a Java packaging and release tool.
Metadata

homepage URL: https://jreleaser.org
source URL: https://github.com/jreleaser/jreleaser
license: Apache 2.0
platforms: linux, darwin

I have tried this here https://github.com/NixOS/nixpkgs/pull/301914 a while ago simplify the spoon nix flake :^)
Packaging the jar file works and the PR should be fine, but I had some blockers building from source. Getting jreleaser to build deterministically is a challenge I wasn't able to overcome so far without sacrificing revision information. JReleaser decided to bake in the date and revision of the last git commit into its binary. Therefore, to properly package jreleaser we need to check out the git repository. Sadly, the fetchgit or fetchFromGitHub helpers are not deterministic if you keep .git: The object layout is subject to change.
The only real solution I see is cloning without .git and making my own git commit. Sadly, users will then see a revision that does not exist in their --version output, which I consider to be bad.
This issue is therefore blocked on upstream I'd say (or nixpkgs maintainers are fine with merging my PR packaging the jar file). If upstream doesn't care about random hashes ending up in their revision that would also be a possible solution.

⬆ @aalmiray

Understood. Does creating the package require strict building from source?
We publish SLSA provenance, SBOMs, and PGP signatures alongside our release artifacts that may be used to verify the authenticity and origin of said artifacts. Also, the generic .zip artifact should be reproducible as well.

The generic ZIP artifact does not contain .git either. A normal clone with the usual helpers without leaveDotGit is reproducible too (as that is how git works), but then the revision and build dates are wrong.
The nix package also verifies the hash of the downloaded jar file, so I don't think the additional files are of any real consequence. If anything changes in the jar file the nix package will fail to build.
Packaging from source is not required for Nix (but it is nicer), and my PR currently packages your release jar file. That PR should be merge-able, quite a few java packages only package release jar files. As you don't seem to have a nice other idea for building it from source either, I guess that approach is our best bet at the moment.

Tis why we provide convenience binaries alongside metadata for verifying their origin and integrity, so that others may consume them directly and skip building from source when such option exists.
Whether the single JAR (jreleaser-tool-provider) or the generic ZIP is consumed is up to a preference, as the latter contains additional files such as licenses and launcher scripts.

Nix packages are normally built from source by Hydra and then cached by it. This allows users to retrieve binaries directly (from a trusted cache, such as hydra) and fall back to building from source if they need to. Typically this happens when you try to build e.g. old software, build for a different architecture that is not yet built automatically, or just want to be extra safe and not trust any cache. It's sometimes quite useful that many parts can evaluate from source :)
I currently create a wrapper for jreleaser-cli, which I think is all the wrapper scripts you need to run the software? I also marked the package as being Apache 2.0 in the meta tags, so I think it should be fine to exclude the LICENSE file itself.

This was merged in https://github.com/NixOS/nixpkgs/pull/301914 which made its way to nixpkgs unstable :) It does not build from source (as reproducibly packaging jreleaser without screwing up the version information is something that still eludes me after 5+ hours of work and likely requires patches to plugin dependencies of jreleaser), but it works :)
❯ nix run nixpkgs#jreleaser-cli -- --version
------------------------------------------------------------
jreleaser 1.13.1
------------------------------------------------------------
Build time:   2024-06-30 12:32:42Z
Revision:     5542956c0a386c559a22840e3d323d6b59ab9f65
JVM:          21.0.3 (N/A 21.0.3+9-nixos)
------------------------------------------------------------

Closing; this appears to have been resolved in #301914. Please open a new PR if you encounter any issues with the Nixpkgs package.


Uploading files larger than 5GB

As far as I can figure out, when uploading files larger than 5GB to S3, you have to use multipart uploads. http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html
From what I can see in this repo's readme, this library does multipart uploads by default. Is that correct?
When I attempt to upload a file larger than  5GB to S3, it gets to exactly 5GB, then fails silently, leaving an incomplete file uploaded.
Is there something special I have to do when uploading large files?

Ah, I see multipart is used when file size exceeds multipartUploadThreshold

Ok, put some logging in the library code, and it's definitely going into https://github.com/andrewrk/node-s3-client/blob/master/lib/index.js#L209, so definitely using multipart.
What gives?  Wouldn't be the first time ;)


Can't use cmd-space with quicksilver 2.0.0

Describe the bug
I just installed Quicksilver 2.0.0 and I can't set cmd-space as my activation shortcut, when I set cmd-space it shows cmd-1 in the UI.
What version of macOS?
12.2.1
What version of Quicksilver?
2.00

This might be a duplicate of #2682

Likely a duplicate, and should be fixed in the official 2.0 release (which will be released shortly). You're likely running a pre-release of 2.0. See the version number in your Quicksilver preferences.

If it's still an issue with 2.0 official, then please comment here and we'll re-open the issue.

I have this version  :

Is that the official  2  ?


vignette on distributions

needs text from Angeline

I've started the vignette with plots here
https://bcgov.github.io/ssdtools/articles/distributions.html

done


Question about flatten in HungarianMatcher

In models/matcher.py/HungarianMatcher.forward
out_delta = outputs["pred_deltas"].flatten(0, 1)
out_bbox_old = outputs["pred_boxes_old"].flatten(0, 1)

Predictions from different batches are mixed up by flattening them by the first two dims, and are later used to generate deltas together with flattened gt . As a beginner may I ask that is this some kind of trick or the reason causes the drop when larger batch size is set.

Thanks for your interest!
This part of the code is a bit confusing, but I understand it is correct. The operations on lines 119 and 123 will obtain the correct cost matrix. https://github.com/impiga/Plain-DETR/blob/6ad930bb85f5d10417ebe979780132a9a466a8e0/models/matcher.py#L114-L124
I hope the following comments can help.
# Final cost matrix
# Shape: [batch_size * num_queries, sum(num_target_boxes)]
# This matrix contains cost between all predictions and targets in a batch, including those not in the same image.
# The cost between predictions and targets in different images are not used (see below).
C = (
    self.cost_bbox * cost_bbox
    + self.cost_class * cost_class
    + self.cost_giou * cost_giou
)
# Shape: [batch_size, num_queries, sum(num_target_boxes)]
C = C.view(bs, num_queries, -1).cpu()

# sum(num_target_boxes)
sizes = [len(v["boxes"]) for v in targets]
indices = [
    # C.split(sizes, -1) splits C into a list of tensors, each tensor has size [batch_size, num_queries, num_target_boxes]
    # c[i] is the cost matrix between predictions and targets in the same image
    linear_sum_assignment(c[i]) for i, c in enumerate(C.split(sizes, -1))
]


Database style cleanup

Style nit: style guide says emums should be in caps.

I have no problem with the change itself. But keep in mind that this is a change to a public interface, so must happen pre-1.0 or in a major. :-/

@puf actually I don't believe this is a public interface change since OnChangedListener is a child of FirebaseArray which is package protected.  When I try to create a new instance of OnChangedListener in my class I get:
"com.firebase.ui.database.FirebaseArray" is not public in "com.firebase.ui.database".  Cannot be accessed from outside package.

@puf are you ok with this change given my previous comment?

Yup.
On Tue, Oct 4, 2016 at 8:49 AM Sam Stern<EMAIL_ADDRESS>wrote:

@puf https://github.com/puf are you ok with this change given my
previous comment?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/firebase/FirebaseUI-Android/pull/336#issuecomment-251428973,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA3w3wrmMGCyO22CqiTzHnxxhAiUZR6tks5qwnWjgaJpZM4KME07
.

Merged, @SUPERCILEX thanks!

Thanks!


Feat/collapse tree fn

Adds function to allow users to collapse all tree nodes.
closes issue #19.

Updated my code per your recommendation.  Let me know if this fits what you were thinking a bit better.

@admwx7 @haasDev We can squash on the merge, don't worry about squashing

Address it in response to the posted issue, not as part of this unrelated PR
On Wed, Feb 8, 2017, 11:10 AM Tyler Haas<EMAIL_ADDRESS>wrote:

@haasDev commented on this pull request.
In hc-nested-list-behavior.html
https://github.com/Hackception/hc-tree-view/pull/20:

@@ -107,7 +122,7 @@
*/
itemOpenChanged(event, detail, idName = this.itemIdName, parts = this.parts) {
// Block interactions while loading items

 if (this.isLoading) return;

 if (this.isLoading || !parts) return;

I thought that would be the case as well but I was noticing that fn
throwing an error in mtz-group-manager because parts was undefined.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Hackception/hc-tree-view/pull/20, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABpRr0pX5_pGHHR12nmisVgUBJNx2oDzks5rafcPgaJpZM4L6Brm
.


Add ability to use wildcards

I wish to effectively respond to all requests (apart from robots.txt) with HellPot as to punish rouge exploit searching botnets. Such a feature would be greatly appreciated.

Great idea! I'll look into it :)

Thanks! I really look forward to it

See: https://github.com/yunginnanet/HellPot/pull/25 (Test by pulling https://github.com/yunginnanet/HellPot/tree/development).
I have tested this feature successfully, it will be merged soon.

Awesome thanks!

Also @yunginnanet if possible I think for the catch all mode it should ideally disallow everything in robots.txt if it doesn't do so already so search engine crawlers dont get nuked


About button should point to preprint

Do we have a preprint to point to?

The one on arxiv????? This one https://arxiv.org/abs/2001.02316 ???

Oh whoops I was confused what repo this issue was in. Yeah, let's link to that. I'll at least put it in the readme.


[Test Proxy] Documentation updates and improvements

Description
Resolves https://github.com/Azure/azure-sdk-for-python/issues/26883. Various documentation improvements in the test proxy migration guide and doc/dev/tests.md, with a main focus on:

EnvironmentVariableLoader use
pytest.mark.parametrize guidance
Option to use (for now, only docker-aliased) Podman
Updated proxy behavior and best practices

All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

/check-enforcer override