[Project] Profile page iteration

Overview [Edits by @BenJam]
It is a very weird experience to have everything looking like a Collective, which causes problems in discoverability, and capacity for our users to differentiate one profile type from another, making it harder to interact fully with the platform.
This causes confusion, especially between organisations, hosts, collectives, projects and events. Profile pages have very different jobs, depending on what they're for i.e.

Events > sell tickets, attract sponsors
Hosts > accept applications
Users and organisations > say something about myself and share the projects I contribute to
Collectives and projects > attract sponsors, present financial information

Our current page structures and formats are so generic that they limit our ability to effectively meet those needs.
This is particularly weird in the case of Octobox which has both an organisation and a collective:

A user
An organisation
A collective

We have discussed differentiating our profiles, so this project is an excellent way to start, by solving what doesn't work so well with our current profile page master.
Related issues

https://github.com/opencollective/opencollective/issues/5678
https://github.com/opencollective/opencollective/issues/2228
https://github.com/opencollective/opencollective/issues/4760
https://github.com/opencollective/opencollective/issues/5457
https://github.com/opencollective/opencollective/issues/5640
https://github.com/opencollective/opencollective/issues/5570
https://github.com/opencollective/opencollective/issues/4946
https://github.com/opencollective/opencollective/issues/3220
#5013
https://github.com/opencollective/opencollective/issues/2103

Problem statements

Everything on Open Collective looks the same (collectives, users, organisations, projects)

it is a very weird experience to have everything looking like a Collective [this] causes problems in discoverability, [and] mak[es] it harder to interact fully with the platform.

working on Open Collective as an active user is much like browsing as an outsider. I need to know which page(s) to go to, to do what I need to do.

Ownership

Owner: @Memo-Es
Resources
Design
Plan
The way I see it, these tweaks and improvements can be boiled down to three main issues: (Issues documentation pending)

[ ] Redesign the Collective page header

[ ] Bigger, clearer buttons (Website link, and main action)

[ ] Redesign the 'sections' feature of the Collective page (General logic revamp, subsections, design facelift)
[ ] Design an alternative navbar for Collectives profile pages (We discussed during the navbar updates the possibility of having an alternate version of the navbar for Collective's profiles, one that included contributing as the main CTA)

Next steps

We can schedule this project as a candidate for shaping the next sprint
Solve the issue about the cover image cropper presented in https://github.com/opencollective/opencollective/issues/5678

Can #5013 be added to this issue?

I also think #1445 is part of this milestone project

to expand/brainstorm a bit, was thinking there could 2 'View' options: a "Section" view and "Timeline" view

Misc updates (Added Jack as an admin),

I would add (regarding the oversharing of information being a security risk) that I think the 'admin add' info can be very vague. e.g. "CollectiveName added a new Admin" or "CollectiveName removed an Admin"

Also, I don't think it's necessary to include times in this public view, for the same security reasons.

I think these 'Admin' updates might be the only ones that don't appear in 'Section' view that would appear in 'Timeline' view, but maybe there are more

Perhaps in the 'Timeline' view, we could lump things together so there aren't tedious lists

e.g. "CollectiveName disbursed $250 on [date]"

"CollectiveName received   $200 on [date]"
or maybe even "Collective name processed 31 Expenses on [date]"

with focus on 'Daily summary' type of information rather than itemization
with options to click for more details -> then this could turn it into Section view? I'm not totally sure...

@Memo-Es another (small) pain point that just came up, might be worth considering including: https://github.com/opencollective/opencollective/issues/5862

Design specs

Full design documentation here

Main goalPush forward a series of updates to the profile page master design, a.k.a. "Collective page" that help us mature one of our main features, and for it to become a tool for users to stay in the platform and use our features to the fullest. We seek to differentiate the profiles of our different users on the platform, so we help the experience by distinguishing what's inside the platform, smoothing the adoption of our other features.Immediate goal (Q3S2)Define this project strategically. It is a significant and complex project that will need different phases to "complete" a full iteration in production. This sprint cycle is about asking the right questions and working closely with users and key team members so we can bring forth the right design proposals to analyze as the first round of updates to the profile page.We will navigate the tensions between thinking big and long-term, designing the solution that should be and ensuring we launch small bits along the way that smooth the change to the new page experience. Helping us test quickly and have validation early in the development process.Definition process:What a profile page inside www.opencollective.com should do?For Collectives (Main persona)For Fiscal HostsFor sponsor organizationsFor usersFor eventsFor projectsWhy are Collective admins our main persona?Alanna Irving explains in a thread on slack:This speaks to a bigger strategic question about how we market our product. We essentially have three different products with very different customers and value props: Hosted CollectivesFiscal HostsIndependent Collectives. 2 only works when someone is very motivated and really digs into our docs etc., or when we create a first-party host ourselves. For case 3 we offer minimal support and virtually no marketing or onboarding for. Like 99% of our revenue comes from 1, and that’s been our strategic priority explicitly for the last few years. Personally, I think there is a lot of value in 2 or 3, but right now, it’s a sideline without a really viable revenue stream, and we have explicitly made our website and key marketing with Hosted Collectives in mind. So yeah, that’s where we’re at.We’ve always kind of tried to tell all those stories at once, not to leave out 2 and 3, but honestly, it doesn’t work very well.We are focusing on the profile page for Collectives and then tweaking that base model to adapt to the other profile types.What goals do we want this project to achieve? How do we measure success?Better retainmentA wider use of our features (More Collectives' activity on more features)What changes do we need to make to our sections' structure?

Goals
Contribute
Connect
Budget
Contributions
About

Goals
Contribute (Tiers)
Updates
Overview
Recurring contributions
About

Events
Conversations

ContributionsAll contributionsHosted CollectivesHosted fundsHosted eventsFinancial contributors
Our team

Connected collectives

Top financial contributorsAllTeamFinancial contributorrs

Projects

Next design updates:So far, we identify a couple of strong areas of opportunity to define the new profile page in the next step:Redesign the Collective page headerBigger, clearer buttons (Website link, and main action)Redesign the 'sections' feature of the Collective page (General logic revamp, subsections, design facelift)Design an alternative navbar for Collectives profile pages (We discussed during the navbar updates the possibility of having an alternate version of the navbar for Collective's profiles, one that included contributing as the main CTA)

Thanks for these specs breakdowns.  Was thinking here:

What a profile page inside www.opencollective.com should do?

For Collectives (Main persona)
For Fiscal Hosts
For sponsor organizations
For users
For events
For projects

I think it's important to identify that 'users' encompasses:

Donors (Financial Contributors)
Collective Admins
Collective Expense Recipients

volunteers to be reimbursed,
contractors getting paid (& sometimes landlords, vendors etc. getting paid)
grant recipients

because each of these user groups has different needs & identities and will interact with the platform in a potentially very specific way. We want to give those users the simplest path, not expect them to jump through the same hoops /go thru platform education like a Collective Admin will.

This project also aligns with the Funder/Host dashboard project I think. If we are going to redesign the collective page, we need to keep this overlap in mind so that we aren't duplicating information

Additional issues with the current collective profile:
1: Disorienting & Inconsistent Top-bar navigation

Click on Budget:

This currently feels disorienting. I thought I had transitioned to another page. I assume that if I want to go back to the main page I need to click on the collective icon - or back on the browser (which was the pattern that I ended up adopting).
However, if I scroll up, I realize that the header is still there ... there is a point where the collective icon disappears, the menu shifts to the left and the entire header comes into view.
However if I scroll down to the budget ... the topbar does not collapse ... it simple disappears from the view frame. A collapsed and position-locked menu could actually be useful when I am navigating further down in the page (by just scrolling). Perhaps if it behaved that way it would train me to understand what has happened when I click on "Budget" (or any other scroll-inducing menu item).
AND ... if I scroll down to updates (https://opencollective.com/opencollective) and click on "View all updates" I DO end up on a page that has a collapsed header that does not scroll up to a full header (because apparently this time I have been routed to another page?  https://opencollective.com/opencollective/updates).
AND if from 4 (above) I click on Budget again the URL reverts to the previous format https://opencollective.com/bushwick-ayuda-mutua#category-BUDGET (apparently without a page reload) and the full header is back.

This behavior is inconsistent, unclear and is a confusing experience.
2: Why are Events under "budget"?
It seems that Events were conceived as a money-raising capability but their adoption has given a life that is indenepdent of fund-raising. Having them under the "budget" menu is confusing and difficult to find.
If I am looking for an event, it may not cross my mind (<-this has happened to me numerous times) to look under budget (<- and I have now been twisted into thinking this way).
3: Why are "Updates" under "Connect"
Does connect have anything else under it? Why is Updates not a direct link (like Budget).
4: Integrate Top Financial Contributors with Financial Visualizations
Redesign this section to bring into the updated visual language of the page.
Integrate it with the new financial visualizations so that time filtering can also be applied to it.
Consider adding a sibling element that show top paid people for expenses.
5: Fix Section Containers
(the following comments are made based on a full screen view and need to be reassesses for smaller/mobile screens)
The following containers/sections leak beyond the page parent grid and the resulting horizontal scrolling is ugly and annoying (perhaps this is more intuitive on mobile devices):

Contribution Tiers (eg: https://opencollective.com/bushwick-ayuda-mutua)
This is all of us (eg: https://opencollective.com/bushwick-ayuda-mutua)
Events (https://opencollective.com/opencollective#category-ABOUT)
Projects (<- probably, I do not have an example)

6: This is All of Us

There is repetition of information since team is also shown separately. Perhaps team can be left as its own section and the team can be removed from this section and it can be reframed as "contributors" ... and perhaps made more useful (see next comments).
Beyond a certain number of people (fortunately, there are many examples of this) this becomes a useless overload of information. It may be more beneficial to show:

Visual page scrolling instead of continuous scrolling.
Just small avatars for each contributors.
Hover over (touch on mobile?) avatar to show expanded card view.
Filters: All, one time, recurring
Visual indicators:

To discern between individuals and organizations (eg: border color).
To give a sense of scale of the contribution (eg: thickness of border color)
An indicator for one time or recurring (eg: added icon for recurring)

7: Contributions
In profiles where a contributions (distributed from the collective to other collectives!) section does show up, the information is not very useful and has what sometimes seems like incoherent duplicates - see ESLint appearing twice in screenshot from https://opencollective.com/indeed :

Thank you, @kaylarep and @iamronen, for your comments; here are a couple of follow-up thoughts:
@kaylarep, on the pathways for people to do something specific (Submit an expense, request a grant) vs the experience for Collective admins. I agree, one of the goals for this project in the mid-term is to help us separate the platform (workspace) from the public side (Collective pages, marketing, etc.); I think the action to submit an expense should not be mixed in the public profile page as it is now, more about this to come in the first round of design proposals.
@iamronen, I value that we are aligned about the problems we both see on the Collective pages:

Redesigning the top bar navigation and its behavior it's one of the goals of this design round
Same, expressed in the design specs as "Redesign page sections."
Connect has two elements, Updates and Conversations. @Betree  and I had already raised an issue to potentially merge them #5784. It is also related to redesigning the profile page sections.
I had already proposed this with the budget overview project; the profile page update will also follow up on this.Annotation on 2022-09-28 at 09-30-45
That horizontal scrolling deserves to be considered as well, I agreed
Considered under "Sections redesign."
Ibid

Thanks again! I'm preparing a presentation to show what we're tackling this sprint, taking these things into consideration

I'd be interested in giving feedback on the design of Host pages
specifically. Let me know a good time/way to do that.

Message ID: @.***
com>

Week 3 update

[ ] Kickstart design process (1st round of drafts)

apologies if this is a duplicate request, but its really important that hosted collectives are easier to find on a host's profile (and maybe even a quick way to show that a collective is part of a greater network on the Collective profile).
Right now, if I want to find OCF's hosted groups (and its the only public place where people can see this information), I go under Contributions. Not at all the right place for this.
(This should also be a part of the https://github.com/opencollective/opencollective/issues/3892 )

Week 5 update

[ ] Kickstart design process (drafts, sketches)
[ ] Demo of main proposal

@Memo-Es can you link to the demo above?

[ ] sync up, share existing resources
[ ] decide on scope for this sprint and doc here

To continue this project, I'm planning on doing;

Translate previous feedbacks into demands (How Might We)
Turn hypothesis into prototypes
Present and gather feedback with team
Usability test it with multiple users (Manual moderated AB Test is an option)
Validate and push to UI :)

Week 4

[ ] First round of design proposals

@toomuchinformation & I had a conversation yesterday and work-shopped some ideas together in rough wireframes. This helped outline the challenges we wish to tackle next:

Discern between collective profile pages and other profile pages.
Use dedicated collective profile page navigation to navigate within a collective (and to subtly internalize the core purpose and narrative of the platform).
Communicate that Events and Projects are related to Collectives.

We don't yet have a good notion of how/why potential contributors arrive at collective profile pages and what drives their decision making. We aspire to learn more about this, but for now we focuses on one discerning question:

is a potential contributor here because they have already decided to contribute or did they arrive in order to make their decision?

It feels to me important to re-iterate that:

We are looking for a first move that will open the door to a lengthy unfolding process that will both improve the whole (collective profile page) and its parts.
The first iterations will likely be experimental and only used internally (or by invite) to test the waters.
This is a core user experience on the platform that has been around for a long time and many users are familiar with and depend on it. Changing it is going to cause friction. Therefore (in addition to internal deployment and caring design) we should communicate about the efforts we are making on this project as early as possible to both allow for feedback and prepare people for the change.

1: Discern between Collective Profile Pages and other profile pages.
Currently all profile pages look the same and we want to make a clear distinction between two sets:
Set1:

Individual (person) Profiles
Organization Profiles
Fiscal Host Profiles
Fund Profiles
Collective Profile

Set2:

Event Profiles
Project Profiles
Event Profiles

The most prominent way (wireframed so far) to do this seems to be to remove the OpenCollective header and leave in its place a small control that takes you back to the platform. This way when you arrive at a Collective page your attention is drawn towards its internal workings and not distracted by the OpenCollective header which competes for attention.
2: Collective Profile Page Navigation
A main navigation element within the collective profile page can look something like:

About
Budget
Contribute
Connect

This presents numerous potential benefits:

It repeatedly tells the story of the platform, every time anyone looks at this menu they are effectively being subtly trained about what Open collective is about.
It makes it possible to break up the single long profile view into a few separate views. The existing profile page containers can be divided into coherent narrative-supporting views.
If it is locked in place (does not scroll away) it makes it easy to read about a collective, then, when you are ready you can look at its budget and when your ready you can continue on to contribute. It is always there to tell you where you are and where you can go.
It makes "contribute" always available and accessible and in context. Also, when you decide to contribute you have a view that is dedicated to that (eg: Tiers) without the distraction of other content.
It hints at a subtle assessment process (which we want to research further in the future):

1: discover what the collective is about
2:  see how they handle money
3:  decide if you wish to contibute

3: Relate Projects and Events to Collectives.
This felt like the most challenging issue and we did not yet reach something that felt like a good solution, however we did realize that:

We would like projects and events to be related to their collectives instead of being "separate" profile pages on the platform.
The collective profile navigation pattern (see above) fits well onto projects and events. This hinted at the possibility to apply the same collective profile UX pattern to both projects and events - so they would still be separate profile pages, but their headers would clearly associate them to their collectives and be consistent in terms of narrative (about, budget, contribute, connect).
We also explored the possibility of using modals within the collective profile page for projects and events.

Week 5

[ ] Complete design proposal
[ ] Implementation plan proposal (Options A, B, lifecycle, etc.)

A pitch for engaging with this work is proposed for FY23Q1C2: #6415

[ ] Usability Testing

[ ]  Invite people
[ ]  Set up test tasks and questions on Testing platform
[ ]  Test it!
[ ]  Iteration round (if necesary)
[ ]  Analyze results and validate design

@tomsusemihl was the user testing on this ever done? Can we add the results to https://coda.io/d/Make-Open-Collective_dnHLKv7oLV0/User-Research-Center_sulZq#Research-Efforts_tucOn/r20&view=modal


Remove the general containers and tests for them

Most of the generic structures don't appear to have a benefit, lets just use normal data structures and if in the end we need them we add them when needed

(x) Remote the array


[RD] Fix Issues with StartDate When a Schedule is Modified

When Enhanced Recurring Donations is enabled, ensure that Start Date of updated schedules defaults to current date.
Critical Changes
Changes
Issues Closed
New Metadata
Deleted Metadata

**Lurch: attach W-037358

Tracking W-037358

@RadSFDeveloper @force2b Ready for review
@sam-knox Could you please review PR description

Major changes to the ordering of methods - moved several methods back to ScheduleService and left very few in the trigger.
Used the basic structure of your suggestion, but needed to replace getUpdateSchedules with getAllRecurringDonationSchedules (renamed from setScheduleDependentFields).
    private void calculateNextDonationDateBeforeUpdate(List<SObject> rds, List<SObject> oldRds) {
        Map<Id, List<RecurringDonationSchedule__c>> schedulesByRdId = scheduleService.getAllRecurringDonationSchedules(rds, oldRds);
        for (npe03__Recurring_Donation__c rd : (List<npe03__Recurring_Donation__c>)rds) {
            rd.npe03__Next_Payment_Date__c = scheduleService.getNextDonationDate(schedulesByRdId.get(rd.Id));
        }
    }

@force2b Ready for re-review.

Testing has passed for WI: https://foundation.lightning.force.com/lightning/_classic/%2Fa2x1E000001HoN0QAK


Docker-compose rasa_core help/issue

Hello,
First of all amazing work on this UI guys ! thanks and congrats !
I am new to rasa and this might be a silly question but i have some issues with setting up properly a bot using rasa core with a docker-compose set up.
What is happening is that i am able to run all the container and i have set up correctly the Postgres server. I created a bot train my nlu model and the core model outside of container and then put it in the right folder and restarted the container. But when i try to parse an query from the aside interface, it result in a html answer basically telling me the model was not found.
So i dig a little bit into the code and i found that my request is send to rasa core (because in the log i can see a route request and then nothing, when sent to nlu the request url display, could have been good to also have that in the core_router so we know where the request is send, plus i have no error in the logs so it seems that the request went through and come back). But since the answer is model not found then i wanted to see the request url and the model that it ask for.
what i found weird is in the core_router.js the function parseRequest there is a line that replace the id and project in rasacorerequestpath but if i look at the global variable the path is just : /webhooks/rest/webhook which seems fine to me but then we are replacing nothing and are not looking for a specific project (doesn't bother me since i what to have only one core model but still). Also in the header shouldn't be something like : 'content-type': 'application/json' ?
So now i know that my request at least arrive to the core server, there is two possibility either it doesn't found the core model or when core ask the nlu server it doesn't find the nlu model (i did set up correctly the endpoint for nlu). On the core side i am not sure of how it look for a specific project and then which one ? so that might be the issue but i have the trained core files in rasa-app-data/models/current/dialogue and the docker-compose mount the volume in the server under /app/model so it seems to me that it should be fine and the request will take the only available model (no need to specify when using the rest channel ? ). Now on the nlu side if we take the command specified to the core container, the core will look on the nlu server for a project call current and a model named nlu but when i train my model in the ui it's saved under bot_id/model_name and for me it will never be in the right place on the server except if i name it current and force the model to be named nlu.
Also i want to try to train my core model outside of docker so i can just run docker-compose and everything will work fine (put the trained file in the right place on the server) (i tried to train inside the docker container but then i just had 2 container and with seemed more messy to me) not sure it is the way to go ?
I not sure i have been clear but i hope :)
to summarize : how do i set up my model correctly using docker-composes ? (step by step procedure ? )
Thanks a lot
@paschmann @pradeepmvn

@JulienKleinmann - sorry for the delayed response. Is this still relevant, we are currently looking into a new docker-compose file, so it would be helpful to know. Thanks.

@JulienKleinmann - we have added a new docker-compose file now.


Created JS code to search for dead links in the README.md and README-etc.md

Edit: removed script

@TheeDorf, thanks for your PR. I just don't know what is happening here:

If you are writing a script to find dead links, why am I seeing links that are ok? It should just be a list of links that need to be removed. E.g.
- https://api.foo.com/v4/latest/bar
- https://api.foo.com/v4/latest/baz

Thanks!

Check out #218

@jdorfman It seems the code is not reading some of the sites correctly. It should be only showing broken links that are coming back with a 404/502. I will debug this and send it back over


Checking detectron Model

Please check how we can implement this for our work.
https://www.kaggle.com/c/nfl-health-and-safety-helmet-assignment/discussion/265800
https://www.kaggle.com/mrinalmathur/how-to-use-detectron2/edit

closing this since this is not required anymore


Linux support

Thanks for the great library! I wasn't able to find any mention of Linux in README and there's no Linux build set up on CI either. Is Linux supported in any way or are there any plans to support it in your roadmap?

@MaxDesiatov Hi,
Yes, we have plans to support it and it should work straightway. I was unable to test it but I suspect it may work because we are using only stuff from Foundation.
We are open for PR if you are interested in implementing the Linux build.
Thanks for the firs issue opened. :)


replace packery in projects page with multi-col layout

This PR replaces the packery JS library in the project view with the native multi-column layout. It has multiple advantages:

does not require javascript
loads much faster
handles resizes better/faster

But also has the disadvantage that we cannot be sure about the project order anymore. I think previously the projects would show up like this:
1 2
3 4
5 6

where they might now show up like this since they are filled column by column:
1 4
2 5
3 6

I'm happy to discuss if you all think this is a good idea or not. If we agree that it is a good idea, I'll also replace all other occurrences of packery.
Reference (where I got the idea to do this): https://www.smashingmagazine.com/2019/01/css-multiple-column-layout-multicol/
new

old
new

This might also be an interesting reference: https://css-tricks.com/piecing-together-approaches-for-a-css-masonry-layout/

@jochenklar I amended my commit and force pushed. The css now includes a column-gap which is set to the the same as the margin-bottom on the project cards.


[Bug]:  Model missing with error: "FileNotFoundError: [Errno 2] No such file or directory: '/content/sd-model/sd-v1-4.ckpt"

There seems to be an issues with acquiring the model, as it's not where the script expects it to be:
**Loading model from /content/sd-model/sd-v1-4.ckpt
Traceback (most recent call last):
File "/content/stable-diffusion/scripts/webui.py", line 451, in
model,modelCS,modelFS,device, config = load_SD_model()
File "/content/stable-diffusion/scripts/webui.py", line 399, in load_SD_model
sd = load_sd_from_config(opt.ckpt)
File "/content/stable-diffusion/scripts/webui.py", line 165, in load_sd_from_config
pl_sd = torch.load(ckpt, map_location="cpu")
File "/usr/local/lib/python3.8/site-packages/torch/serialization.py", line 699, in load
with _open_file_like(f, 'rb') as opened_file:
File "/usr/local/lib/python3.8/site-packages/torch/serialization.py", line 231, in _open_file_like
return _open_file(name_or_buffer, mode)
File "/usr/local/lib/python3.8/site-packages/torch/serialization.py", line 212, in init
super(_open_file, self).init(open(name, mode))
FileNotFoundError: [Errno 2] No such file There seems to be an issues with acquiring the model:
The output stops with the error above.
It might be connected to this output that appears earlier on:
/content/sd-model
Initialized empty Git repository in /content/sd-model/.git/
Updating origin
fatal: unable to access<EMAIL_ADDRESS>Port number ended with 'h'
error: Could not fetch origin
fatal: unable to access<EMAIL_ADDRESS>Port number ended with 'h'
/content
Cloning into '/content/stable-diffusion'...
remote: Enumerating objects: 2289, done.
remote: Counting objects: 100% (95/95), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 2289 (delta 51), reused 76 (delta 45), pack-reused 2194
Receiving objects: 100% (2289/2289), 18.11 MiB | 20.68 MiB/s, done.
Resolving deltas: 100% (1313/1313), done.
/content/stable-diffusion
Assistance in resolving this would be every much appreciated.

Sorry. Now that I took a second look it seems like the "key" field was somehow overwritten.
Please ignore.


[Bug]: Create a ticket for creating a table in a logic database and an error message is reported

ODC version
odc4.3.2
OB version
no related
What happened?
Create a ticket for creating a table in a logic database and an error message is reported
CREATE TABLE "logical_QS235"."QS235.test_[00-09]" (
"a1" VARCHAR(120) NULL  DEFAULT NULL,
CONSTRAINT "a3" PRIMARY KEY ("a1")
) ;
CREATE  INDEX "a1" USING BTREE ON "logical_QS235"."QS235.test_[00-09]" () GLOBAL;

What did you expect to happen?
A table creation ticket can be created successfully, and the table can be created successfully
How can we reproduce it (as minimally and precisely as possible)?
Create a ticket for creating a table in a logic database and click Create in the ticket
Anything else we need to know?
No response

pass


Search breaks when deploying to different URL

Hi,
This is most likely my fault, not a bug in your Theme, but I don't really know so I need to ask.
I'm working on a new Documentation site (for a pretty big open-source project, SuiteCRM) and we chose Hugo and Theme Learn. Thanks!
I had the search functionality working well in my personal area in Netlify where I was developing. But now I moved into an official SuiteCRM Netlify account, and the URL changed. Now my search box doesn't have auto-complete, and doesn't really search at all. It just highlights the terms on the current page.
Since the same thing was happening in my personal area, but only for the preview deploys and branch deploys (the master deploy worked fine) I'm guessing the problem is related to deploying to a different place.
Can you help me solve this?

ideally, make it work for every deploy in every URL
if that's too complicated or impossible, then I'd be happy to have it working in the main URL.

Thanks!

Ok I fixed this, broken search was caused by a badly configured baseURL.


Set version to v0.6.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 91.858%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2121

Relevant Lines:
2309

💛  - Coveralls


Upload images in our CI pipeline to the Github image Registry

This issue is part of our larger effort to move away from microk8s to Kind or something similar.
Right now, we are forced to use Microk8s because we use its local image registry – we push our images to it to be able to have a Shipper Deployment in the Kubernetes cluster while the pipeline is running.
To be able to move away from Microk8s, we need to store our images in a repository other than the local one offered by microk8s, so that we can deploy Shipper in a local kubernetes cluster in our pipeline.
We think that the Github Image Registry is the best option here, since we don't want to pollute our public Docker Hub with random and possibly unstable images.
Once we are able to use the Github Image Registry, we should change our CI pipeline to build, tag and push images to the Github Image Registry. After that, we will need to change our Deployment object to run Shipper from that image on Kubernetes.

I'm working on this on my own fork of shipper (https://github.com/juliogreff/shipper) but have found the following issue:
rpc error: code = Unknown desc = failed to pull and unpack image \"docker.pkg.github.com/juliogreff/shipper/shipper:a3fdc171ac826d068ecf95b65b64397e9ba756c2\": failed to resolve reference \"docker.pkg.github.com/juliogreff/shipper/shipper:a3fdc171ac826d068ecf95b65b64397e9ba756c2\": unexpected status code [manifests a3fdc171ac826d068ecf95b65b64397e9ba756c2]: 401 Unauthorized

This is related to this issue: https://github.com/containerd/containerd/issues/3291 -- TL;DR: GitHub's image repo doesn't seem to follow the spec, and we're blocked from using it in kind until that's fixed.


updated version to 3.16.0

/retest

Step 1/9 : FROM quay.io/operator-framework/helm-operator@sha256:406098e6b75c6bb88ed456861ec50b4bae2814fdf058de6c1c2b764ee72e65a1
manifest for quay.io/operator-framework/helm-operator@sha256:406098e6b75c6bb88ed456861ec50b4bae2814fdf058de6c1c2b764ee72e65a1 not found
Makefile:262: recipe for target 'build-image-ppc64le' failed
make: *** [build-image-ppc64le] Error 1

@bitscuit Should we update the base image to the latest version?


Temporarily disable TensorRT PostCommit suite

A container issue for the TensorRt postcommit suite broke the python postcommit, this disables the test while the problem is investigated.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @damccorm


Swift not recognizing enum FastttCameraFlashMode

Hi - I'm trying to check the cameraFlashMode while using Swift 2.0. For some reason, I get the error
Enum case 'On' is not a member of type 'FastttCameraFlashMode?' with the following:
@IBAction func switchFlash(sender: AnyObject) {
        var flashMode: FastttCameraFlashMode
        var flashTitle: String
        switch self.camera?.cameraFlashMode {
        case FastttCameraFlashMode.On:
            flashMode = FastttCameraFlashMode.Off
            flashTitle = "Flash Off"
        default:
            flashMode = FastttCameraFlashMode.On
            flashTitle = "Flash On"
        }

        if let camera = camera {
            if camera.isFlashAvailableForCurrentDevice() {
                camera.cameraFlashMode = flashMode
                flashButton.setTitle(flashTitle, forState: UIControlState.Normal)
            }
        }
    }

The odd thing is that I can set the flashMode perfectly fine, but the switch is not working. The same happens for Off and Auto. I'm not sure if this is an iOS 9 issue or a Fasttt issue. If it's an Apple issue, then I can file a Radar.
Thanks,
Ahan

@ahanmal The problem is that you camera is an optional property. To resolve your issue you can either force unwrap the camera
self.camera!.cameraFlashMode

or optional bind like
if let camera = self.camera {
    switch camera.cameraFlashMode {
        ....
    }
}

@samurai91 Sorry, I wasn't clear on the error. The line that raises the issue is case FastttCameraFlashMode.On:.
I looked at the source declaration and do not see any issues. Any ideas?

Hmm, did you try what @samurai91 said? Because that's exactly how the error he describes manifests itself.
FastttCameraFlashMode? type is different than FastttCameraFlashMode. Try the optional bind solution and it should work.

@mnmaraes @samurai91 Ah, yes - now it works. Interesting that you have to use an optional bind for this scenario.
Thanks for everything!


Update gl_buffer_linux.cpp

Oh damn, sorry I didn't even see this PR at all. I've included the change in the updated PR I will sent shortly. Thanks.


Update Category Type

Coverage increased (+0.004%) to 77.19% when pulling 8a1b6bfd3d331d84b96e1ad45c87aac6423149d7 on jackyruslymoonlay:dev into 273de70cd0e35982c13f70fd189fe86bc8936b99 on danliris:dev.


Considering Changing the theme attribute into data-theme

Some frameworks using TSX  and JSX files might not support not data- attribute on the body element

Hi, I think I can solve this issue, can I take on this issue?

Sure


Adding mumbai Testnet

Since now it requires 0.001 eth in your wallet to get goerli_eth and still you get very low amount of goerli_eth which makes it difficult to test.
We can add Mumbai testnet  which can solve this issue.

Hey @Anurag-Raut ,
The issue you suggested is already under development in the dev branch, so I'll have to reject this PR.
Also, please follow the open source guidelines which state, you should first make the issue assigned to yourself and then should make the PR.


Show high-risk areas as a heatmap

Hi @mhejrati, we could start working on this. I have a few questions/comments about this feature:
1- First we need to save the detection location to the csv file (or other analytics storage). Have you thought about the format for this? Should we save the box coordinates or only the center for each box? (Or maybe the center of the bottom side of the box) For example it could be a stringified array of [x1, y1, x2, y2, (next box) x1, y1, x2, y2, ...] (or only x and y if we only save the center). For violations we only need to save the indexes of the violating boxes.
2- Then, the heatmap on the web side should it take into account the whole history of entries or have a parameter for how far to go backwards? Should we show two heatmaps, one for detections in general and another for violations, or just one?
3- The heatmap renders without a background from the camera, right? Or optionally if camera feed is available we could take one image from the camera feed and add it as background to the heatmap for reference.
4- If the heatmap should include detections and not only violations then we need to handle the depth perspective. Any ideas for this? Or it could be left for a second version


refactor: update clangd root detection

It'd be nice if there was a precedence associated w/ the ordering of arguments, but I don't think there is and it seems to match the most nested dir. That's not ideal for a lot of projects, like tree-sitter where compile_flags.txt is in lib/
Suggestions welcome!

If you want to have precedence, you can do something like the below:
return function(...)
  return require("lspconfig.util").root_pattern("Makefile")(...) or require("lspconfig.util").root_pattern("another pattern")(...) or --the others
end

that's smart..thanks!

updated, that should perform much better

thanks!

Now that "compile_commands.json" and "compile_flags.txt" are no longer the first default, I was surprised to see several clangd processes running in single file mode on a project with one CMakeLists.txt per folder.
It's easy enough to restore the previous behavior, but @folke, @amaanq, was the default root path search order change expected?

that's interesting, I guess there's no easy solution for this after all :sweat_smile:, for me the original behavior was usually fine for projects purely in C, but add anything else like Rust and it can get wonky.. (which I usually work with)

My concern is that projects with multiple CMakeLists.txt are common when following "modern" cmake practice. and IMO this change doesn't seem like a good default configuration for C++ development.
Also by default, browsing throw such a code base will start spawning lot of clangd processes and probably gradually increase CPU usage, which may not be noticeable at fisrt since lsp/completion work as expected.
Do you thing removing the search of CMakeLists.txt could provide better default for most C++ users without introducing issue with your way of working?

we can remove CMakeLists.txt, I don't mind that

maybe a good idea to remove indeed.
for reference, this is the default root detection in lspconfig: https://github.com/neovim/nvim-lspconfig/blob/master/lua/lspconfig/server_configurations/clangd.lua#L24


Installation results in an unbootable Windows 98 SE guest (VMware Workstation 17)

I set up a fresh Windows 98 SE (Polish) virtual machine in VMware Workstation 17.0.2. I installed VMware Tools. Then, I installed softgpu v0.4.2023.11-alpha. After rebooting, I was presented with the following error on bootup:

The English version of this specific error is:
"EMM386 - Unrecoverable privileged operation error # ?2 - Disable EMM386 and continue (K) or reboot (U)?"
Pressing K, U, Enter or other keys else doesn't do anything.
The VM settings are as follows:

Edit: for some strange reason, the key to continue is actually C. Weird. I swear I tried all the keys before. Closing this for now.

actual fix is to comment out SIMD95.COM loader from autoexec.bat


feat: cap scores to their limits

This PR caps the scores to their min/max values, to stop extreme score swings.

@noon-dawg needs another tick after merge :)


Would you like to add a podspec file for pod-install support?

Your Environment
For now, we integrate react native with a native project with pod, so the podspec file is necessary for us.
Thanks.

Podspec file would be awesome. Was gonna make one myself, but your installation steps are pretty involved.
Thanks!

@roycclu
Thanks very much, I can not wait to try.
For installation steps, just add another README-section like your "Podfile import looks like" paragraph, I think it is clear enough for pod user.

@Riant There's an "cocoa.h not found" error when performing this. Haven't had time to check why. If you get to investigate please post your result.

Refer this answer: https://stackoverflow.com/questions/6530819/cocoa-cocoa-h-not-found-error,
Add s.exclude_files    = 'ios/**/{examples,Mac}/**/*.{h,m}' after s.source_files line could resolve the "cocoa.h" error.
But my project is based on a Unity project, I got some other errors:
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RNVideoTrimmer", referenced from:
      l_OBJC_$_CATEGORY_RNVideoTrimmer_$_RCTExternModule in libRNVideoProcessing.a(RNVideoTrimmerBridge.o)
  "_OBJC_CLASS_$_RNVideoProcessingManager", referenced from:
      l_OBJC_$_CATEGORY_RNVideoProcessingManager_$_RCTExternModule in libRNVideoProcessing.a(RNVideoProcessingBridge.o)
  "_OBJC_CLASS_$_RNTrimmerViewManager", referenced from:
      l_OBJC_$_CATEGORY_RNTrimmerViewManager_$_RCTExternModule in libRNVideoProcessing.a(RNTrimmerViewBridge.o)

I guess it because we used libAVProVideoiOS.a in Unity, Any suggestion for me?

I'm having this error as well. Any solution for this?

I have make it work with latest RN.
Please kindly check my fork repo.
https://github.com/BunHouth/react-native-video-processing/blob/master/RNVideoProcessing.podspec

I have make it work with latest RN.
Please kindly check my fork repo.
https://github.com/BunHouth/react-native-video-processing/blob/master/RNVideoProcessing.podspec

It gives <Cocoa/Cocoa.h> not found error

Hi, could you please what i have to additionally with your .podspec file? I followed all steps of installing 'react-native-video-processing' in iOS. And I copied your .podspec file and pod install.
But it gives so many errors.

Hi, could you please what i have to additionally with your .podspec file? I followed all steps of installing 'react-native-video-processing' in iOS. And I copied your .podspec file and pod install.
But it gives so many errors.

Copy . podspec it won't work, as there are some changed. You need to install module from my fork repo.
Check here https://github.com/BunHouth/react-native-video-processing/tree/master/RNVideoProcessingDemo

So I need to use "https://github.com/BunHouth/react-native-video-processing.git"?

Okay, I changed "package.json" file like you.
"react-native-video-processing": "Bunhouth/react-native-video-processing"
It seems you removed "GPUImage" folder so it gives "GPUImage.h" not found error.

Okay, I changed "package.json" file like you.
"react-native-video-processing": "Bunhouth/react-native-video-processing"
It seems you removed "GPUImage" folder so it gives "GPUImage.h" not found error.

Please read here https://github.com/BunHouth/react-native-video-processing#installation

Just made BunHouth package work.
You need to change source in package.json:
"react-native-video-processing": "Bunhouth/react-native-video-processing", then yarn
And add the codec needed in Podfile:
pod 'GPUImage', git: 'https://github.com/BunHouth/GPUImage.git'
after all that a classic pod install in the ios folder and it work great (tested with RN 0.61.2)
Thank you very much @BunHouth

@BunHouth @foufrix
I added the pod, but I am getting GPUImage* unresolved.
I am using 0.61.5 and I tried with and without embedding the libGPUImage.a in the general tab framework's

to do what i said you need a fresh install, do not add manually all the file said in the current installation process. RN 0.60 + is done so that you don't need to manually add file. I See on your screenshot you still have the project RNVideoProcessing linked manually

It finally worked for me! Thanks @foufrix.
I had to delete the manually added files, but also had to include a bridging header.
In the same Folder as AppDelegate.m I added Myapp-Bridging-Header.h with:
#ifndef Myapp_Bridging_Header_h
#define Myapp_Bridging_Header_h
#import "RNVideoProcessing.h"

#endif

I am going to try it on Android now!

Good to know nice ! all the thanks goes to @BunHouth !
@lucastonon if you can share if it work for android i would really appreciate !

@foufrix it ran fine on Android! There are just a few inconsistencies such as, getPreviewForSecond returns a string no iOS and an object on Android.
But other than that it looks like it's working!
Thanks again @BunHouth

@foufrix it ran fine on Android! There are just a few inconsistencies such as, getPreviewForSecond returns a string no iOS and an object on Android.
But other than that it looks like it's working!
Thanks again @BunHouth

I'm glad to help. :)


Add 'written by' field, implement possibility for multiple authors

Currently, would use post.author for the written by field.
Written by:

Appears below issue # and date, "Written by "

Add authors to _config.yml ?
authors:
    jesse:
        name: 'Jesse Squires'
        url: 'twitter.com/jesse_squires'
   john:
        name: 'john appleseed'
        url: 'twitter.com/johnappleseed'

found solution here:
https://gist.github.com/ravasthi/1834570


Fix dashboard auth when unsecured

Description
Fixes https://github.com/dotnet/aspire/issues/5490
Fixes https://github.com/dotnet/aspire/issues/4851
Changes to auth caused the dashboard's unsecured mode to fail. I don't exactly understand what is going on, but I think that:

Request would come into ASP.NET Core and the HttpContext.User would be set with a claim <- good
The request user is set as Blazor's auth state <- good
Blazor Server circuit is created and uses SignalR user as new auth state. SignalR user is a default unauthenticated principal. I'm not sure why it's different from the HttpContext's user. <- bad
AuthorizeRouteView in dashboard sees unauthorized user and displays message in browser.

I fixed this by making an auth scheme handler just for unsecured mode and made it the default auth scheme if dashboard is configured to be unsecured. My guess is the SignalR was attempting to run the default auth scheme (cookies) when it gets its user and was failing because cookies isn't used in unsecured mode.
I'm not sure how to test this simply. It might require a playwright test 😬
Checklist

Is this feature complete?

[x] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[ ] Yes
[x] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[x] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[x] No

Does the change require an update in our Aspire docs?

[ ] Yes

Link to aspire-docs issue:

[x] No

Microsoft Reviewers: Open in CodeFlow

I'm not sure how to test this simply. It might require a playwright test 😬

Aspire.Dashboard.Tests has some playwright tests.
https://github.com/dotnet/aspire/blob/main/tests/Aspire.Dashboard.Tests/Integration/Playwright/AppBarTests.cs

/backport to release/8.2

Has this been released? I am running into this problem as well due to https needing disabled to work with a custom container component that cannot trust dotnet dev-certs.

Has this been released? I am running into this problem as well due to https needing disabled to work with a custom container component that cannot trust dotnet dev-certs.

Would like to know as well. Just started a new project yesterday with freshly updated workload and nuget packages.

@joperezr When does the 8.2 patch ship?

For consumers of docker image: The 8.2.0 version of the container that has the fix for this has shipped to the nightly registry of MCR. It can be found here:  https://mcr.microsoft.com/en-us/product/dotnet/nightly/aspire-dashboard/  and can be pulled via docker pull mcr.microsoft.com/dotnet/nightly/aspire-dashboard:8.2. It would take a couple of more weeks to also ship to the non-nightly mcr registry.
For people using .NET Aspire dashboard via the AppHost (most common case): The fix will ship in .NET Aspire 8.2.1 patch, which is scheduled to ship on 9/26.


Update functions-supported-languages.md

EOL of Python 3.11 is October, 2027.
Please update the doc.
https://devguide.python.org/versions/

@ggailey777
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Thanks @tatsuyaHello for the help with this! #sign-off


CBL-2092: Create default directory if it doesn’t exist (Apple Only)

It's possible the Application Support Directory might not exist. So attempt to create the default directory if the path doesn't exist.

This one is not the deprecated one. The other one is.


Fix 64x64 tx to copy only 32x32 coeffs to output buffer

Also fix tx domain distortion computation for tx sizes having 32
as one dimension.
Improve quantize() to use adjusted_tx_size.

Does this have an AWCY improvement?

Let me run awcy to check regression.

AWCY results for -s 4 (i.e. 64x64s), --limit=5 will come soon.

I think that tx-domain distortion for tx_size > 32x32 needs original tx coeffs, which currently wiped out by this patch. Meanwhile, @fbossen has point that he preserves those not coded coeffs (but original) so that it can be used during tx-domain distortion.

Coverage decreased (-0.09%) to 84.591% when pulling e6aa0ddaddf849798ea40c5e370c2b96ad671313 on ycho:fix_64x64tx into<PHONE_NUMBER>3f7d9f804450c50d8d3fc834e27716 on xiph:master.

Wow, my last trial (don't use tx-domain distortion if some of tx coeffs are not coded) seems working but it loses coding efficiency say 0.54% and slower by ~10%.
AWCY results
So, I don't think we can merge this PR, though nice experimentation! :)
(But I am happy that tx-domain distortion is more helping with 64x64 tx)

Or, we can use other parts except the change I did on 64x64tx.


Allow tukhs with only two shabads (words) to be searched using first-letter

Suggestions:
-extend first-letter indices for these tukhs (probably makes more sense)
-add exceptions to the min 3-char limit (i.e. when searching Dasam Bani)
https://www.sikhitothemax.org/ang?ang=16&source=D
https://www.sikhitothemax.org/ang?ang=1&source=D

My feeling on this is we can find all lines with only 2 words and then
include the first letters from the line before and the line after.. that
way a search will find them.
On Wed, Apr 5, 2017 at 2:37 PM, Irvanjit Singh<EMAIL_ADDRESS>wrote:

Suggestions:
-extend first-letter indices for these tukhs (probably makes more sense)
-add exceptions to the min 3-char limit (i.e. when searching Dasam Bani)
https://www.sikhitothemax.org/ang?ang=16&source=D
https://www.sikhitothemax.org/ang?ang=1&source=D
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/KhalisFoundation/ShabadOS-API/issues/17, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAnXFQwq6xn89-flZWePhL6DVQB81KZMks5rtAmRgaJpZM4M02HJ
.


How to retreive command line arguments

I'm working on an application right now where I'd like the user to be able to launch the application via a terminal, but also be able to specify a default file to load.  e.g. myApp image.png  I'm wondering if there is an easy way for my application to retrieve the command line argument that were passed into it at this part:
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);    // `args` comes from `Program.cs`'s `Main()`

E.g. In my App's code, I'd like to be able to retreive those args and parse them to find an initial file:
        public override void OnFrameworkInitializationCompleted()
        {
            if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
            {
                desktop.MainWindow = new MainWindow
                {
                    DataContext = new MainWindowViewModel(),
                };
                // Get those `args` somewhere around here and then pass them into a function in the `DataContext`

            }

            base.OnFrameworkInitializationCompleted();
        }

I saw that there was this entry on the wiki:
https://github.com/AvaloniaUI/Avalonia/wiki/Application-lifetimes#manual-lifetime-management
AFAICT, it seems like the only way to pass those command line args off to my app's code.  Unless there is another way?

The IClassicDesktopStyleApplicationLifetime.Startup event passes the args.

Okay, I was able to do this successfully using that event.
I think it would be beneficial to mention this somewhere in the docs.

How did you do it? @define-private-public

@Nikhilsp I put this in App.axaml.cs:
public override void OnFrameworkInitializationCompleted()
{
    var desktopLifetime = ApplicationLifetime as IClassicDesktopStyleApplicationLifetime;
    desktopLifetime!.Startup += (sender, args) =>
    {
        // Do stuff with args
        // Create your window
    };
}

@out4blood88
Your code works but the designer previewer of the .axaml files stops working. It just remains stuck on "The designer is loading".

@FaridGad you  have to put that code inside the OnFrameworkInitializationCompleted method.

for me "desktop.Args" contained the arguments passed in on the command line


clear

Environment

OS:
Node version: ($ node --version)
gtop version: ($ npm info gtop version)

Description
A description of the issue

?


Improve PactBrokerWithSelectors syntax

While updating our internal library to the latest version of pact4s, I've noticed a few things:

the syntax for building a ProviderTags is cumbersome when you have multiple tags. In our case, we read tags from configuration, so we get it as a list.
it is now much harder to configure PactBrokerWithSelectors dynamically. For example, we use configuration to dynamically enable/disable certain features like pending pacts or WIP pacts. Previously this just meant passing in an Option, but now we have to build the configuration in stages in an immutable way, which results in harder to read and maintain code (example shown below).
PublishVerificationResults expects providerTags: List[String] which means we now have to maintain two different ways of generating provider tags since ProviderTags.toList is private

Here is an example of updating our business logic for these changes. This is what we had previously:
lazy val pactSource: PactSource = PactBrokerWithSelectors(
  brokerUrl = pactVerificationSettings.brokerUrl,
  auth = Some(pactVerificationSettings.authentication),
  enablePending = pactVerificationSettings.enablePendingPacts,
  includeWipPactsSince = pactVerificationSettings.includeWorkInProgressPactsSince,
  providerTags = pactVerificationSettings.providerTags.toList,
  selectors = pactVerificationSettings.consumerVersionSelectors
)

And here's what we have now:
lazy val pactSource: PactSource = {
  val pactSource = PactBrokerWithSelectors(pactVerificationSettings.brokerUrl)
    .withAuth(pactVerificationSettings.authentication)
    .withSelectors(pactVerificationSettings.consumerVersionSelectors)

  val pactSourceMaybePending =
    if (pactVerificationSettings.enablePendingPacts)
      pactSource.withPendingPactsEnabled(pactVerificationSettings.providerTags)
    else
      pactSource.withPendingPactsDisabled

  pactVerificationSettings.includeWorkInProgressPactsSince
    .map(pactSourceMaybePending.withWipPactsSince(_, pactVerificationSettings.providerTags))
    .getOrElse(pactSourceMaybePending)
}

In addition to updating pactVerificationSettings.providerTags:
val tags = ... // reads them from configuration
ProviderTags(
  tags.headOption.getOrElse(throw new IllegalArgumentException("At least one provider tag must be set.")),
  tags.tail.toList
)

I understand these changes are to ensure the generated settings are type safe and compatible, but it makes the interface harder to use.

sure, your use cases all make sense. Working on something


Error handling of received message

Currently, the AFJ agent receives messages in the background via receiveMessage. I'm curious how we should handle errors thrown by this method.
For example, when we're making a connection from AFJ to Trinsic, Trinsic sends JSON containing error without any @type attribute, therefore it fails because AFJ tries to decrypt it as an encrypted message. We can of course fix that by checking if JSON contains JWM attributes like protected. But then what we should do with such JSON error message or any other error that is thrown.
One solution which comes to my mind is having some message queue containing errors, ideally with some context to be able to react to that. Would that make sense?
Any other ideas?

Related to #1700


QListWidget editing item border

Hi - could you let me know where this border has come from that obstructs the text when editing an item in a list widget?
Any help really appreciated

I have tried setting a lot of the borders and padding to 0 but no luck finding the right one!
Thanks

My bad - completely overlooked the padding under the QLineEdit class. Setting that to 0 sorted it.
https://github.com/mstuttgart/qdarkgraystyle/blob/ea2c0cffddfa313cd61f35ee448bee0c3fcc2173/qdarkgraystyle/style.qss#L330-L335


Strip does not always work

Error: Can't delete all CanonDR4 information from a DR4 file - -
at ChildProcess.onExit (/src/node_modules/duplex-child-process/index.js:116:12)
at Object.onceWrapper (events.js:273:13)
at ChildProcess.emit (events.js:182:13)
at ChildProcess.EventEmitter.emit (domain.js:442:20)
at maybeClose (internal/child_process.js:962:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)

Emitted 'error' event at:
at ChildProcess.onExit (/src/node_modules/duplex-child-process/index.js:120:12)
at Object.onceWrapper (events.js:273:13)
[... lines matching original stack trace ...]
at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)

I'm having trouble finding the image again, but I'll add so that we better catch errors so they don't bubble up like this.


URL query-related extensions do not behave consistently with URLQueryItem

Describe the bug

Cannot add or retrieve a query(or item of dictionary) with the empty value from queryParameters.
Unable to retrieve multiple queries(of items of dictionary) with the same key from queryParameters.

To Reproduce

Cannot add or retrieve a query(or item of dictionary) with the empty value from queryParameters.

import Foundation
import SwifterSwift

let url = URL(unsafeString: "https://example.com?first-key-with-empty-value&second-key-with-empty-value")

if let queryParameters = url.queryParameters {
    if queryParameters.isEmpty {
        print("queryParameters is empty")
    } else {
        for param in queryParameters {
            print(param)
        }
    }
} else {
    print("queryParameters is nil")
}

// Output
// > queryParameters is empty

Unable to retrieve multiple queries(of items of dictionary) with the same key from queryParameters.

import Foundation
import SwifterSwift

let url = URL(unsafeString: "https://example.com?key=value1&key=value2&key=value3")

if let queryParameters = url.queryParameters {
    if queryParameters.isEmpty {
        print("queryParameters is empty")
    } else {
        for param in queryParameters {
            print(param)
        }
    }
} else {
    print("queryParameters is nil")
}

// Output
// > (key: "key", value: "value3")

Expected behavior

Cannot add or retrieve a query(or item of dictionary) with the empty value from queryParameters.

...

let url = URL(unsafeString: "https://example.com?first-key-with-empty-value&second-key-with-empty-value")

...

// Output
// > (key: "first-key-with-empty-value", value: nil)
// > (key: "second-key-with-empty-value", value: nil)

Unable to retrieve multiple queries(of items of dictionary) with the same key from queryParameters.

...

let url = URL(unsafeString: "https://example.com?key=value1&key=value2&key=value3")

...

// Output
// > (key: "key", value: "value1")
// > (key: "key", value: "value2")
// > (key: "key", value: "value3")

Additional context
For question 1, maybe we can change like this:
public extension URL {
    /// SwifterSwift: Dictionary of the URL's query parameters.
-   var queryParameters: [String: String]? {
+   var queryParameters: [String: String?]? {
        guard let components = URLComponents(url: self, resolvingAgainstBaseURL: false),
              let queryItems = components.queryItems else { return nil }

-       var items: [String: String] = [:]
+       var items: [String: String?] = [:]

        for queryItem in queryItems {
            items[queryItem.name] = queryItem.value
        }

        return items
    }
}

public extension URL {
    /// SwifterSwift: URL with appending query parameters.
    ///
    ///		let url = URL(string: "https://google.com")!
    ///		let param = ["q": "Swifter Swift"]
    ///		url.appendingQueryParameters(params) -> "https://google.com?q=Swifter%20Swift"
    ///
    /// - Parameter parameters: parameters dictionary.
    /// - Returns: URL with appending given query parameters.
-   func appendingQueryParameters(_ parameters: [String: String]) -> URL {
+   func appendingQueryParameters(_ parameters: [String: String?]) -> URL {
        var urlComponents = URLComponents(url: self, resolvingAgainstBaseURL: true)!
        urlComponents.queryItems = (urlComponents.queryItems ?? []) + parameters
            .map { URLQueryItem(name: $0, value: $1) }
        return urlComponents.url!
    }

    /// SwifterSwift: Append query parameters to URL.
    ///
    ///		var url = URL(string: "https://google.com")!
    ///		let param = ["q": "Swifter Swift"]
    ///		url.appendQueryParameters(params)
    ///		print(url) // prints "https://google.com?q=Swifter%20Swift"
    ///
    /// - Parameter parameters: parameters dictionary.
-   mutating func appendQueryParameters(_ parameters: [String: String]) {
+   mutating func appendQueryParameters(_ parameters: [String: String?]) {
        self = appendingQueryParameters(parameters)
    }
}

But for question 2, the above code changes won't work, cause the dictionary can't deal with duplicate keys.
Maybe something like these?
public extension URL {
    var queryItems: [URLQueryItem]
    func appendingQueryItems(_ items: [URLQueryItem]) -> URL
    mutating func appendQueryItems(_ items: [URLQueryItem])
}

[x] I've read, understood, and done my best to follow the Contributing guidelines before opening this issue.

I'm not really sure what the benefit of this change would be. What functional use case are you trying to solve? Because the idea of creating the structure that we did was to get the value of the keys used in the query parameters, and so getting back that the value for a key being nil is just as good getting it from the dictionary's subscript as getting a non-nil Optional.none value.


vscode.debug.onDidReceiveDebugSessionCustomEvent() only called when the 'process' event occurs

I am trying to make a vscode extension to interact with the debugger, but I realized the onDidReceiveDebugSessionCustomEvent() method does not work properly, because it only calls the listener when the 'process' event occurs.
import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    vscode.debug.onDidReceiveDebugSessionCustomEvent(dapEvent => {
        console.log(dapEvent.event);
    });
}

// this method is called when your extension is deactivated
export function deactivate() {}

It doesn't call the listener when other events like 'stopped' occur.

VSCode Version: 1.52.1
OS Version: Windows 10

Steps to Reproduce:

Create a VSCode extension with the code provided above
Execute it
In the new VSCode window that opens, create a javascript with some code and set a breakpoint anywhere
Make sure the activate() function gets called to register the listener by triggering the extension activation event defined in package.json
Execute the code and see how the only thing printed in the debug console is 'process' when it actually should have printed some other events like 'stopped'

Does this issue occur when all extensions are disabled?: Yes

As the description says onDidReceiveDebugSessionCustomEvent fires for "custom" events. You cannot use it to intercept regular DAP events. If it fires on "process" events, then this is a bug.

As the description says onDidReceiveDebugSessionCustomEvent fires for "custom" events. You cannot use it to intercept regular DAP events. If it fires on "process" events, then this is a bug.

How do I intercept regular DAP events, then?

How do I intercept regular DAP events, then?

You can use the "DebugAdapterTracker" API.
Example: https://github.com/weinand/augmented-debug

You can use the "DebugAdapterTracker" API.
Example: https://github.com/weinand/augmented-debug

"process" event is not handled by vscode and thus it is fired as a "custom" event
I have pushed a fix for this

"process" event is not handled by vscode and thus it is fired as a "custom" event
I have pushed a fix for this


Comb through the website to find typos, inaccuracies, etc.

For example...

...we don't specify which Windows OS(s) we support for HTML5 sims.

Should we change OS X to macOS?

macOS is the second major series of Macintosh operating systems. The first is colloquially called the "classic" Mac OS, which was introduced in 1984, and the final release of which was Mac OS 9 in 1999. The first desktop version, Mac OS X 10.0, was released in March 2001, with its first update, 10.1, arriving later that year. After this, Apple began naming its releases after big cats, which lasted until OS X 10.8 Mountain Lion. Since OS X 10.9 Mavericks, releases have been named after landmarks in California.[10] Apple shortened the name to "OS X" in 2012 and then changed it to "macOS" in 2016, adopting the nomenclature that they were using for their other operating systems, iOS, watchOS, and tvOS. The latest version is macOS High Sierra, which was publicly released in September 2017.

src: https://en.wikipedia.org/wiki/MacOS

The research section has a section called Publications on PhET Simulations by other Researchers.  This section has many publications with no links.  Is this intentional (ie. there is no link to add)?

Two more broken links on that page.

In the help center under getting started the text alignment under the "How do I embed PhET simulations?" section is inconsistent with the rest of the text sections. The second paragraph does not have a space between itself and the proceeding paragraph. The screenshot I have attached shows this as well as another section with the standard formatting.

In the offline access center under the Chromebook section there is a piece of text that says "Find it on the Play Store here." where I am assuming the "here" should link to the Play Store android app download. If this is intended then disregard this but otherwise a link needs to be created.

Is sonification still called sonification or is it called sound?

On the offline access screen of the website there are a couple of issues. The first involves not having a link to google chrome, where the other browsers have links. This can be seen in the attached screenshot. The second involves the Internet Explorer link seen in the screenshot below directing to a page that can not be found. I'm testing on Mac so this might be the cause of the issue but I think that the link should work regardless.

The last issue is that when the drop down menu for "Desktop/Laptop Computer" or "Chromebook" is selected the bottom of the web page extends much further down than the regular bottom banner. To replicate this open either of these menus and scroll down to the bottom of the page. Once you scroll past the regular bottom banner the page continues with nothing but white space on it.

Regarding https://github.com/phetsims/QA/issues/175#issuecomment-415510683, I asked @jbphet and he said "sound".

Made issue in website repo, so closing this issue.


V8.6

I propose this as an alternative to #45. This is just a merge of the V8.6 branch as it was before #43 and #44.

Thanks.
Travis is unhappy:
File "./implementations/ZType_integers.v", line 4, characters 2-23:

Error:

Cannot find a physical path bound to logical path matching suffix

Bignums.SpecViaZ.

Indeed, the problem comes from #41 which switched to using the external Bignums library without updating .travis.yml. I will push a tentative fix.

OK it looks like Travis is happy now.

@Zimmi48 Thanks!

Thanks @spitters! Next step would be doing the same thing for Corn. Are you the maintainer over there as well?


Installation Best Practices

It would be good if you stated best practices for installing multiple language packs. Do one at time or can you do several at a time? Does installing multiple languages packs at one time take more or less time then doing them one at a time.

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

ID: 7c05fac2-ad44-7379-b62b-8f9021d9bb1e
Version Independent ID: f1279333-cbeb-0252-b519-849fab4548b8
Content: Enable languages for Dynamics 365 Customer Engagement
Content Source: ce/admin/enable-languages.md
Service: crm-online
Product: unspecified
GitHub Login: @Mattp123
Microsoft Alias: matp

Enabling (provisioning) language packs is considered an intensive database transaction operation that can affect the performance of the instance. As such, I've updated the topic with an Important note that includes a link to this topic where I have added some basic guidance for intensive database transaction operations: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/admin/performance-tuning-and-optimization


Remove old test ./go scripts

Before I started writing proper Bats tests, I used this script and itscommand scripts to play around with my ideas. I thought it might serve as a test driver, or a demo, but eventually I created Bats helpers to generate isolated test scripts on the fly, and the top-level ./go script began to serve as its own extensive demo.
Hence, it's time to say goodbye to these old chestnuts.

Coverage remained the same at 95.063% when pulling e17c181cb8bf16fc541b6d8acf59c6d7c19bdb63 on remove-stale-files into f9675e529c4ce5f8675274fdb40f4d408de48fcd on master.


docs(contributing): convert diagrams

Description
replace the images with mermaid diagrams so they can be edited

Additional context
fixes #15923

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[x] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines, especially the Pull Request Guidelines.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Update the corresponding documentation if needed.
[x] Ideally, include relevant tests that fail without this PR but pass with it.

Nice! Thanks a lot for taking this one so quickly 🙌🏼
Would you delete the images and the .excalidraw files as part of this PR?

removed the other source files @patak-dev  :)

Thanks a lot @Haroenv! We also have the same graphs in Vitest contributing guide https://github.com/vitest-dev/vitest/blob/main/CONTRIBUTING.md#issue-triaging-workflow. Given that you did the work already, would you like to send a PR there too? You get to be a contributor to Vitest too :)

added a PR there too @patak-dev :) https://github.com/vitest-dev/vitest/pull/5222


Co-routine support?

The croutine.c file is not included, but there is still some support in the files that are included. Is this support being dropped or was it an omission to not include this?  Just curious to know if how to handle this change.

These are included in the freertos v10 zip file and svn repo, so closing.


Post Tech + Ops Session Knowledge Capture

Following the Tech + Ops Team session on Sep. 16, this ticket will help pull out knowledge learned to be able to combine it with past and future meetings.
Acceptance Criteria

[x] Create process map from verbal information
[x] List main stages identified
[x] Track where both teams fit in process

Reference Materials:
Notes from meeting

Great work @jaimiebutton ! I really enjoyed the workshop with the Tech and Ops team - we got so much valuable information. I also really enjoyed the collaborative team afternoon drafting the CIF process map - it was both fun and insightful. When you have a moment, could you please add a link to the relevant Miro boards for the process map. Thanks!

Updated, thanks!


support for per profile credentials

thanks for the great plugin. Does this also support per endpoint credentials?

Just found out that it indeed supports per profile credentials. Just add:
[obs]
aws_access_key_id=your_key
aws_secret_access_key=your_secret

in ~/.aws/credentials

fyi, the per profile credential support is supported by standard AWS CLI. This plugin doesn't introduce new way for credential support.


Comma.ai won't turn on!

*My Comma.ai won't turn on!
I have remove my Comma.ai and connected to power cord.  I have tried repeatedly to turn on the device and there is no response.
Please advise?

from #2290 it appears to be a boot loop, contact support?

From the Wiki:

When using a wallcharger at your desk, make sure it can output 2-3A (installation draws just a little above 1.0A).

Does your power source meet that requirement?

Yes it meets that voltage requirement.  I used 60 watt usb to C laptop charger.  I used that same charger to install the software on the AON when I first got it 12 months ago.
Peter
From: Logan Lasiter<EMAIL_ADDRESS>Sent: Wednesday, October 7, 2020 12:27 PM
To: commaai/openpilot<EMAIL_ADDRESS>Cc: peterk714<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [commaai/openpilot] Comma.ai won't turn on! (#2289)
From the Wiki:
When using a wallcharger at your desk, make sure it can output 2-3A (installation draws just a little above 1.0A).
Does your power source meet that requirement?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/commaai/openpilot/issues/2289#issuecomment-705050325 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AOVNFRW4WSES576JVAIFPXLSJSJGNANCNFSM4SHJPTGQ .  https://github.com/notifications/beacon/AOVNFRVDYCFZV4RI3CUH3FLSJSJGNA5CNFSM4SHJPTG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFIDDNVI.gif

I’m going on a long trip this Friday. I would like to have my problem resolved by then.
Thanks,
Peter
From: Logan Lasiter<EMAIL_ADDRESS>Sent: Wednesday, October 7, 2020 12:27 PM
To: commaai/openpilot<EMAIL_ADDRESS>Cc: peterk714<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [commaai/openpilot] Comma.ai won't turn on! (#2289)
From the Wiki:
When using a wallcharger at your desk, make sure it can output 2-3A (installation draws just a little above 1.0A).
Does your power source meet that requirement?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/commaai/openpilot/issues/2289#issuecomment-705050325 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AOVNFRW4WSES576JVAIFPXLSJSJGNANCNFSM4SHJPTGQ .  https://github.com/notifications/beacon/AOVNFRVDYCFZV4RI3CUH3FLSJSJGNA5CNFSM4SHJPTG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFIDDNVI.gif

45 watt 2.4 amp output.  I used this same charger to configure the Eon when it first arrived

When is somebody from Comma.ai going to provide me a resolution to my problem????

Hello Peter, a response email was sent to you earlier this morning.

It said contact support

Yes, your support email was responded to earlier this morning by the support team.

I have two c connector power sources, 60 Watt Lenovo Laptop and universal 45 watt source and they are both over 2.4 amps

How do I turn this thing on????


useButton/usePress should not propagate press events when isDisabled

Provide a general summary of the issue here
When a button is disabled, it still allows click events to propagate.
This is a problem when you have a pressable element nested within another pressable element (eg a card with a button in it).
This manifests for example if you disable a button when an action is loading.
🤔 Expected Behavior?
Even if the button is disabled, it still disallows click events to propagate.
😯 Current Behavior
When the button is disabled, click events are propagated.
https://stackblitz.com/edit/vitejs-vite-nyw2s2?file=src%2FApp.tsx
💁 Possible Solution
Disallow press event propagation when disabled
🔦 Context
This makes it so users accidentally fire the container element's onPress event if they try to press a disabled button - causing for a frustrating user experience.
🖥 Steps to Reproduce

Create a container element that uses useButton
Create an inner element that uses useButton
Disable the inner element.
Watch events propagating through to the container element.

https://stackblitz.com/edit/vitejs-vite-nyw2s2?file=src%2FApp.tsx
Version
<EMAIL_ADDRESS>What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
MacOS
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

Interesting, I'm not entirely sure the direction we'll want to go here since changing this behavior could be considered a breaking change if people were relying on the current behavior. Looks like native clicks aren't propagated to the parent but pointerdown is, so there is some precedence for both propagating/stopping propagation when a disabled element is interacted with. We could potentially make this non-breaking if we make this behavior opt in and keep the current behavior as the default. I'll bring this up with the team to see if there are any additional opinions.

@LFDanLu that makes sense. would you happen to know of any workarounds? i imagine not using isDisabled and adding the condition in the onPress would work

That would probably be your best bet, but you'd need to make sure to make the button non-tabbable and have aria-disabled I imagine to mimic what a button with disabled does, otherwise it would be quite confusing to a screenreader user what that button is for.

A quick aside, but in your repro steps you have:

Create a container element that uses useButton
Create an inner element that uses useButton

this would be invalid HTML, you can't have a button inside another button. https://w3c.github.io/aria/#button

Children Presentational:	True

@snowystinger ah I see! does this also apply if i use usePress for the container? apologies for my ignorance

No worries!
usePress isn't a problem, it doesn't apply any roles.
useButton is because it applies the role="button"
That said, still be careful nesting interactive components, make sure all your users can access it and check the spec to see if the roles are applying are allowed.

Not really related to the issue, but I've found that clicking the disabled button with the MacBook built-in trackpad ('Tap to click' enabled) in the example above doesn't trigger the propagation.
Perhaps (I'm superficially speculating without a deeper dive) it's because using trackpad with 'tap to click' enabled results in state.pointerType: 'virtual' in usePress() and the following if-statement, which looks like it might set shouldStopPropagation to true while executing?
https://github.com/adobe/react-spectrum/blob/3ebcc660dd5abfae62ec9002a938916828ce05aa/packages/%40react-aria/interactions/src/usePress.ts#L314-L332


Do not fail on png warnings

I had a test failure:
Non-standard unknown exception (catch in ImageReader::load_image)
lomse_test_ldp_analyser.cpp(10204): Failure in LdpAnalyserTest / Image_Ok: errormsg.str() == expected.str()

Error-callback of pnglib was executed:
void error_callback (png_structp, png_const_charp)
{
    LOMSE_LOG_ERROR("error reading png image");
    throw "error reading png image";
}

The second parameter contained text "iCCP: known incorrect sRGB profile".
Tested with another png image and the test has passed.
It turned out the callback was executed as a warning, not as an error.
The callback was configured:
png_set_error_fn(pReadStruct, 0, error_callback, error_callback );

The last parameter is for warnings. The same function was used for both errors and warnings. The function was throwing an exception.
Since all other programs can read the test png file successfully it would be good if Lomse could read it too.
The change is to setup a separate callback for warnings, where we only log messages but don't abort loading of images.

Thank you


Foreign keys incorrectly named in Manual configuration section

In Manual configuration section (Data annotations subsection), there is a code snippet with Post and User classes. In Post class, foreign key properties for Author and Contributor navigation properties are named AuthorUserId and ContributorUserId, which is incorrect if there are no [ForeignKey] annotations with those foreign key property names included in it. If no [ForeignKey] annotations are used, those foreign key properties should be named AuthorId and ContributorId, to make sure Entity Framework Core connects them with foreign keys declared in the Model Snapshot.
I found this out by getting the SQLite Error 1: 'no such table' exception when trying to execute SaveChanges(). In one of my entity classes, I had these properties declared, which both refer to the Person entity class:
...
public int? OwnerPersonId { get; set; }
public Person Owner { get; set; }

public int? CurrentUserPersonId { get; set; }
public Person CurrentUser { get; set; }
...

I checked out the Model Snapshot class and I noticed that foreign keys were named OwnerId and CurrentUserId, thus being disconnected from my OwnerPersonId and CurrentUserPersonId properties. After I renamed those properties to OwnerId and CurrentUserId, and recreated the database, SaveChanges() executed successfully.

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

ID: 24b2b50e-35f8-9e0b-8ce5-840e1ea816e6
Version Independent ID: 9e0e6e2c-48fa-76c3-3bd9-813a6df22645
Content: Relationships - EF Core
Content Source: entity-framework/core/modeling/relationships.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @AndriySvyryd
Microsoft Alias: avickers

@kristijan-boskovic I don't think that the property names are incorrect here; EF Core recognizes <navigation><pk> as a convention for FK names, which ContributorUserId and AuthorUserId  both match. However, it does seem like the types are wrong, since the PK properties are strings, while thee FK properties that would match are ints. (@AndriySvyryd?)
Changing the FK properties to strings:
public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public string AuthorUserId { get; set; }
    public User Author { get; set; }

    public string ContributorUserId { get; set; }
    public User Contributor { get; set; }
}

public class User
{
    public string UserId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    [InverseProperty("Author")]
    public List<Post> AuthoredPosts { get; set; }

    [InverseProperty("Contributor")]
    public List<Post> ContributedToPosts { get; set; }
}

Results in the following model, which looks correct:
Model:
  EntityType: Post
    Properties:
      PostId (int) Required PK AfterSave:Throw ValueGenerated.OnAdd
      AuthorUserId (string) FK Index
      Content (string)
      ContributorUserId (string) FK Index
      Title (string)
    Navigations:
      Author (User) ToPrincipal User Inverse: AuthoredPosts
      Contributor (User) ToPrincipal User Inverse: ContributedToPosts
    Keys:
      PostId PK
    Foreign keys:
      Post {'AuthorUserId'} -> User {'UserId'} ToDependent: AuthoredPosts ToPrincipal: Author ClientSetNull
      Post {'ContributorUserId'} -> User {'UserId'} ToDependent: ContributedToPosts ToPrincipal: Contributor ClientSetNull
    Indexes:
      AuthorUserId
      ContributorUserId
  EntityType: User
    Properties:
      UserId (string) Required PK AfterSave:Throw
      FirstName (string)
      LastName (string)
    Navigations:
      AuthoredPosts (List<Post>) Collection ToDependent Post Inverse: Author
      ContributedToPosts (List<Post>) Collection ToDependent Post Inverse: Contributor
    Keys:
      UserId PK


Building animation (line graph)

Is it possible to make an animation that build up the graph from left to right, and not just the expanding default animation?
Like this. https://thumbs.gfycat.com/IncomparableSmugCollie-max-1mb.gif

looks like this is a duplicate of:  https://github.com/chartjs/Chart.js/issues/3232

Please try this code.
https://jsfiddle.net/nagix/kz1ydh5c/
var myData = [{x: 0, y: 0}, {x: 1, y: 2}, {x: 2, y: 1}, {x: 3, y: 3}];
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
    type: 'line',
    data: {
        datasets: [{
            data: [myData[0]],
            lineTension: 0
        }]
    },
    options: {
        scales: {
            xAxes: [{
                type: 'linear',
                ticks: {min: 0, max: 3}
            }],
            yAxes: [{
                ticks: {min: 0, max: 3}
            }]
         }
    }
});
var next = function() {
    var data = myChart.data.datasets[0].data;
    var count = data.length;
    data[count] = data[count - 1];
    myChart.update({duration: 0});
    data[count] = myData[count];
    myChart.update();
    if (count < myData.length) {
        setTimeout(next, 1000);
    }
}
setTimeout(next, 1000);

@FranciscoG Is this what you wanted?
https://jsfiddle.net/nagix/ryhp9qdu/
// Zero it out
LineChartDemo.data.datasets.forEach(dataset => {
    var length = dataset.data.length;
    if (dataSize > length) {
        Array.prototype.push.apply(dataset.data, Array(dataSize - length));
    }
});
LineChartDemo.update({duration: 0});

LineChartDemo.data.labels = newLabels();
LineChartDemo.data.datasets.forEach(dataset => {
    dataset.data = newData();
});
LineChartDemo.update();

I'm going to close this since @nagix's comment seems to have provided a solution
In v3 the animation system was completely rewritten. @kurkle do you think the solution for this will change in v3?

There are quite a few possibilities in v3, but I guess not exactly what is requested.
https://codepen.io/kurkle/pen/PowRRvw?editors=0010


"cannot find avstp.dll.Usage restricted to single threading" debug message in vapoursynth

I got this message from my debug console when running QTGMC in vapoursynth editor. The message goes away when I put the avstp.dll into the plugins folder, but do I really need it since I'm using vapoursynth?

No you don’t need it. Is the message annoying?

It would be better to remove it, less confusion.

Done, it will be effective in the next release.


[PR-3128] feat: extract url pattern send to gfn

[x] Extract url pattern to send to grafana

ok


Rule keys are out of date

Thanks man for this file, you saved me hours of time, greatly appreciated!
The last commit to this repo is a while back now, and ESLint rule keys have since changed. I could submit a pull request, but the updates I made are for a specific project, and I'm not sure I tripped all of out of date keys.
Thanks!!!

How do I ensure that this implementation works with the latest ESLint rules? The rules have been updated by a great extent

@prantiksen4 just replace line 175 of eslint-lint.js with var errors = (new eslint()).verify(text, config);