More ways of structure keys

It would be nice to have a third level in the factory. For example if you have 5 different api urls with 30 endpoints underneed and not only a single one
export const cmsKeys = createQueryKeys('cms', {
  content: {
    page: (locale: string, path: string) => [{ locale, path }],
    breadcrumb: (locale: string, path: string) => [{ locale, path }],
  }
});

So i can have a query like ['cms', 'content', 'page', { locale, path }].
Basically i would have multiple swagger interfaces like this one. So in this case i would like ['bff', 'basket', 'baskets', { basketReference }]

@TommySorensen thanks for the suggestion and for sharing more information about your use cases.
FYI v1.0.0 brings support for nested keys and the new API should be available soon, probably next week if the last mile goes smoothly.

@lukemorales Sounds great 👍
One thing i was considering was to also always put the url(without query params) for the fetch function inside the key factory so the react query key, fetch function and the url always go hand in hand. Something like this will work.
export const cmsQueries = createQueryKeys('cms', {
  content: (locale: string, path: string) => ({ locale, path, url: '/some/url' }),
});

export const queries = mergeQueryKeys(cmsQueries);
export type Queries = inferQueryKeyStore<typeof queries>;

function getPage(context: QueryFunctionContext<Queries['cms']['content']>) {
  const { signal, queryKey } = context;
  const [, , { locale, path, url }] = queryKey;

  const searchParams = new URLSearchParams();
  searchParams.set('locale', locale);
  searchParams.set('path', path);

  return ky
    .get(url, { signal })
    .json<Page>();
}

@lukemorales Sounds great 👍 One thing i was considering was to also always put the url(without query params) for the fetch function inside the key factory so the react query key, fetch function and the url always go hand in hand. Something like this will work.
export const cmsQueries = createQueryKeys('cms', {
  content: (locale: string, path: string) => ({ locale, path, url: '/some/url' }),
});

export const queries = mergeQueryKeys(cmsQueries);
export type Queries = inferQueryKeyStore<typeof queries>;

function getPage(context: QueryFunctionContext<Queries['cms']['content']>) {
  const { signal, queryKey } = context;
  const [, , { locale, path, url }] = queryKey;

  const searchParams = new URLSearchParams();
  searchParams.set('locale', locale);
  searchParams.set('path', path);

  return ky
    .get(url, { signal })
    .json<Page>();
}

You should already be able to do that? Not sure you're suggesting some feature or just giving an example of an idea you're considering 😅, but I don't see why you wouldn't already be able to do

You should already be able to do that? Not sure you're suggesting some feature or just giving an example of an idea you're considering 😅, but I don't see why you wouldn't already be able to do

I. guess it was me trying to give more context to the talk 😀

@TommySorensen just letting you know, v1.0 has been released with support for nested keys: https://github.com/lukemorales/query-key-factory/releases/tag/v1.0.0

@lukemorales Yeah thx 👍 I will test it out tomorrow in my project.


RFC: New capability wdio:capabilityName that takes precedence in lib/helpers/sanitize.caps

From @spencerwilson-optimizely on October 20, 2017 22:7
Motivation
tl;dr sanitize.caps can alias several capabilities objects to the same sanitizedCapabilityName, which can cause problems downstream in a reporter like wdio-junit-reporter.
Neither the spec (admittedly, in Candidate Recommendation stage) nor BrowserStack recognize a deviceName capability, which is what webdriverio consults during sanitization. Rather, BrowserStack has an extension capability device that is semantically the same as a deviceName (the fact that it should have been called browserstack:device per the spec is another issue).
As a result, as a BrowserStack customer, different versions of mobile devices can be aliased to the same string after passing through sanitize.caps. This becomes the first segment of the classname in wdio-junit-reporter (src), and so the fact that the tests originated from different capabilities is erased.
Ideas for solution

Change references to caps.deviceName to caps.deviceName || caps.device. I think that might resolve the one failure case I've identified (mobile devices).
Support a wdio:capabilityName capability. If defined, then sanitizeString(caps['wdio:capabilityName']) (or wdio:configName, wdio:browserName, etc.) would be the return value of sanitize.caps.

If the maintainers (by the way, thank you!) agree this is a problem, I'm happy to submit a PR implementing the desired resolution. Cheers.
Copied from original issue: webdriverio/webdriverio#2360

This should be handled in the reporter. So more or less solution 1 would work.

Thanks for the reply @christian-bromann !
I'm not sure I understand why this should be resolved in reporters when the aliasing is occurring upstream. It seems like a bug that sanitize.caps can alias multiple inputs to the same output. It also seems like an oversight that the sanitization implementation refers to Appium's deviceName extension capability and not also to BrowserStack's device extension capability, when the two are semantically equal.
Would you mind saying a bit about how that reasoning isn't valid, and/or why fixing it in one place downstream in a single reporter is preferred to fixing it upstream and for all consumers of sanitize.caps?


Mention sentence embedding models developed by individuals

Basically in this article we'd like to track models developed by a certain research institute, but we also admit that we have various options of remarkable sentence embeddings models that are personal works.
As a temporary workaround, we'd just like to refer to https://github.com/oshizo/JapaneseEmbeddingEval, which collects a whole bunch of Japanese sentence embedding models

We started to provide models by individuals, so we consider this issue to be solved


Reverts

Maybe there should be a PR template that populates the description box with a commented-out section like

<!--
💡 Benchmark results in the project's readme are gathered from builds/runs peformed in a Microsoft Azure free tier VM:
Standard F4s v2 (4 vcpus, 8 GiB memory)
Your changes or new implementation may perform better in a different environment, e.g. your local machine or a different cloud provider.
To avoid having your contributions reverted because of performance regressions, consider doing a build/run in an equivalent Azure VM before submitting your PR. 🙏
-->

I'm suggesting it because reverts for perf regressions keep landing in main and contributors may appreciate a reminder to try out their changes in an equivalent environment.
For example, I was disappointed to learn a consistent 50% speedup on my local machines turns into a 200%+ slowdown in the benchmarking VM.
I now have my own Standard F4s v2 (4 vcpus, 8 GiB memory) VM and am hunting down the problem, but I might have worked with one from the start if it had been suggested in the process of submitting a PR.

The onus is on me to test on the VM before merging. I will now do that before merging PRs.
The VM costs $123/month so I don't think it's feasible to ask contributors to run tests on them.

A contributor can spin up and tear down a free tier VM w/in the free-period of signup. Most contributors will probably be done with the process in a few days, so wouldn't cost them anything.
Still, yeah, it's not a great ask, but some kind of heads-up when submitting a PR would be a good idea, I think, even if the final ""consider doing..."* sentence is left out.

That would be cool, not sure if it will happen, though.
If it does, it would be cool if there's a bot/action that does 5..20..60k runs for the new/changed implementation/s and then posts the results in a PR comment. I've seen conceptually similar actions implemented in other projects, takes a bit of work but isn't rocket science.

Sounds good but results can vary with github actions.
I made a small userscript where I can click a button to copy the docker command needed to run the benchmark on a PR branch so all I have to do is paste it in the VM and run it.

Sounds good but results can vary with github actions.

Yep, I had in mind it triggering a build/run on dedicated VM not GHA.

I made a small userscript where I can click a button to copy the docker command needed to run the benchmark on a PR branch so all I have to do is paste it in the VM and run it.

Nice!


Typst 0.11 support?

Hello,
Typst 0.11 is about to be released and I currently have an issue when rendering a graph in a figure.
Here's the reproducer: https://typst.app/project/rIJIV-G0m-Kk-izRkkmVYb
Here's the result in Typst 0.10:

Here's the result in Typst 0.11:

I'll look into it

This was due to figure applying align(center). See #18.


Merging Changes to enable Read Scale feature for Azure Sql DB

The link to the hydra-spec is here: https://github.com/Azure/hydra-specs-pr/pull/1360

Can one of the admins verify this patch?

Hi @ziwa-msft, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (ziwa). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@ziwa-msft there are merge conflicts, please update your PR

@ziwa-msft Please remove the [Merge Conflict] label in the title onse you have fixed the merge conflicts.

@ziwa-msft merge conflicts are still persisting. PR cannot be merged in this current state.

@ziwa-msft yes please close this PR if you think this is not the right PR


split out local addresses and local upload-block files from addresses.json and upload-block file

create local-addresses.json that gets merged in to addresses when SDK spins up.
.gitignore local-addresses.json
.gitignore local-upload-block....
this way only deployed testnet addresses are in addresses.json

We may be better off doing https://github.com/augurproject/augur/issues/2978 instead. Then we can get rid of addresses.json and also unblock the smoke test. That doesn't help us with upload-block-numbers.json however our local testing just uses 0 anyway so it doesn't make changed to that file.

I went ahead with this strategy instead of using CREATE2 because this can be done much faster.


[ENH] Use scanner RAS instead of surface RAS in textbox

Currently on main it looks like voxels actually aren't correct so I'm going to fix that and add to this PR before merging

Notes to self/others:
Here's the problem; if you have surgical plans according to an MRI/CT/merged MRCT, you probably have the target locations for the sEEG electrodes in voxels or scanner RAS. Currently, the voxel textbox is RAS voxels, not native voxels to the image and the RAS textbox is surface RAS. This PR:

Sets the RAS textbox to scanner RAS
Sets the voxel textbox to raw voxels
Uses surface RAS for 3D rendering and to store channel positions before applying the head->mri trans (only internal)
Otherwise uses scanner RAS as the internal coordiante system and routes everything through that for simplicity (relatively speaking)

Note also includes small fix for zoom.
Note none of previous positions are wrong, you just can't access normal voxels or scanner RAS coordinates.

Here's a MWE stretching the minimum part a bit:
import numpy as np
import mne
import mne_gui_addons as mne_gui
from mne.datasets import somato
from mne.time_frequency import csd_tfr

data_path = somato.data_path()
subject = '01'
task = 'somato'
raw_fname = (data_path / 'sub-{}'.format(subject) / 'meg' /
             'sub-{}_task-{}_meg.fif'.format(subject, task))

# crop to 5 minutes to save memory
raw = mne.io.read_raw_fif(raw_fname).crop(0, 300)
raw.load_data()

# the DICS beamformer currently only supports a single sensor type,
# we'll use the gradiometers in this example
picks = mne.pick_types(raw.info, meg='grad', eog=True, exclude='bads')

# read epochs
events = mne.find_events(raw)
epochs = mne.Epochs(raw, events, event_id=1, tmin=-1.5, tmax=2, picks=picks,
                    preload=True, decim=3)

# read forward operator and point to freesurfer subject directory
fname_fwd = (data_path / 'derivatives' / 'sub-{}'.format(subject) /
             'sub-{}_task-{}-fwd.fif'.format(subject, task))
subjects_dir = data_path / 'derivatives' / 'freesurfer' / 'subjects'

fwd = mne.read_forward_solution(fname_fwd)

rank = mne.compute_rank(epochs, tol=1e-6, tol_kind='relative')
active_win = (0.5, 1.5)
baseline_win = (-1, 0)

# compute cross-spectral density matrices
freqs = np.logspace(np.log10(12), np.log10(30), 9)

# time-frequency decomposition
epochs_tfr = mne.time_frequency.tfr_morlet(
    epochs, freqs=freqs, n_cycles=freqs / 2, return_itc=False,
    average=False, output='complex')
epochs_tfr.decimate(20)  # decimate for speed

csd = csd_tfr(epochs_tfr, tmin=-1, tmax=1.5)
baseline_csd = csd_tfr(epochs_tfr, tmin=baseline_win[0], tmax=baseline_win[1])
ers_csd = csd_tfr(epochs_tfr, tmin=active_win[0], tmax=active_win[1])

surface = subjects_dir / subject / 'bem' / 'inner_skull.surf'
vol_src = mne.setup_volume_source_space(
    subject=subject, subjects_dir=subjects_dir, surface=surface,
    pos=10, add_interpolator=False)  # just for speed!

conductivity = (0.3,)  # one layer for MEG
model = mne.make_bem_model(subject=subject, ico=3,  # just for speed
                           conductivity=conductivity,
                           subjects_dir=subjects_dir)
bem = mne.make_bem_solution(model)

trans = fwd['info']['mri_head_t']
vol_fwd = mne.make_forward_solution(
    raw.info, trans=trans, src=vol_src, bem=bem, meg=True, eeg=True,
    mindist=5.0, n_jobs=1, verbose=True)

# Compute source estimate using MNE solver
snr = 3.0
lambda2 = 1.0 / snr ** 2
method = 'MNE'  # use MNE method (could also be dSPM or sLORETA)

# make a different inverse operator for each frequency so as to properly
# whiten the sensor data
inverse_operator = list()
for freq_idx in range(epochs_tfr.freqs.size):
    # for each frequency, compute a separate covariance matrix
    baseline_cov = baseline_csd.get_data(index=freq_idx, as_cov=True)
    baseline_cov['data'] = baseline_cov['data'].real  # only normalize by real
    # then use that covariance matrix as normalization for the inverse
    # operator
    inverse_operator.append(mne.minimum_norm.make_inverse_operator(
        epochs.info, vol_fwd, baseline_cov))

# finally, compute the stcs for each epoch and frequency
stcs = mne.minimum_norm.apply_inverse_tfr_epochs(
    epochs_tfr, inverse_operator, lambda2, method=method,
    pick_ori='vector')

viewer = mne_gui.view_vol_stc(stcs, subject=subject, subjects_dir=subjects_dir,
                              src=vol_src, inst=epochs_tfr)
viewer.go_to_extreme()  # show the maximum intensity source vertex
viewer.set_cmap(vmin=0.25, vmid=0.8)
viewer.set_3d_view(azimuth=40, elevation=35, distance=300)

I did some quick testing and I think this is ready to go but it took a lot longer than I thought and got a bit late so I'll test more thoroughly later and confirm everything works as expected.

Lastly, here is that same example from above now but note that the RAS and voxels match freesurfer.

Gave it a closer look in the light of day (figuratively, it's not actually light), looks good to go by me

Thanks for merging.
Yes, in the transforms, I have xxx_ras_t to mean surface RAS. I can fix that in a followup. User-facing, the RAS in the bottom right corner is scanner RAS so I think that's okay.


Facebook POP animation

Is there a way to do an animation with the POP framework and snap like https://github.com/miklselsoe/MSSPopMasonry ?

@at--world these questions are best for Stackoverflow. It would be possible but you'd need to replicate the class categories provided by that repository.

https://github.com/wxxsw/POP-Snap

@wxxsw Thanks!


Multiple Subscriptions on UI Refresh?

Problem
There are signs that subscriptions might be doubled-up when the UI refreshes versus stopping and then starting:

After a dozen or so refreshes, warnings appear concerning too many listeners.
One computations downloaded notification appears for each time the app has refreshed.

Solution
Investigate cause for above oddities.

Likely cause that ipcRenderer listeners not being removed.


Fix bug in #1634 ,replace the current datetime with a fixed time

What is the purpose of the pull request
Fix bug in #1634 ,replace the current datetime with a fixed time
Brief change log

Edit ParamUtilsTest.java

Verify this pull request
This change added tests and can be verified as follows:

ParamUtilsTest to verify the change.

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@b471119). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             dev    #1665   +/-   ##
======================================
  Coverage       ?   14.92%
======================================
  Files          ?      284
  Lines          ?    13960
  Branches       ?     2270
======================================
  Hits           ?     2083
  Misses         ?    11655
  Partials       ?      222

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b471119...7a289c9. Read the comment docs.


improvement remove pick rowset skip window strategy to reduce compaction score

romove the stategy that will not pick rowset generated in 530 seconds.
intruduced in pr #3270, but we now reserve compacted rowset for 30
minutes, so this logic is useless but will lead to a high compaction
score when load frequency is high.
Proposed changes
Issue Number: close #xxx
Problem Summary:
Describe the overview of changes.
Checklist(Required)

Does it affect the original behavior: (Yes/No/I Don't know)
Has unit tests been added: (Yes/No/No Need)
Has document been added or modified: (Yes/No/No Need)
Does it need to update dependencies: (Yes/No)
Are there any changes that cannot be rolled back: (Yes/No)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

This commit should be merged after https://github.com/apache/incubator-doris/pull/10043.


Optimize CSE + Debug option for run in background

What this PR does / why we need it: Improves sanity enforcement in CSE:

wait for files before sourceing them
increase retries/timeouts everywhere to accommodate transient cloud-ness and fulfill "eventual success" strategy
move outbound access test to main CSE invocation, so that we can re-use main provision scripts in blocking (masters) and non-blocking (nodes) contexts
add a bunch of resilience around GPU drivers installation/configuration

Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #4126
Special notes for your reviewer:
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

Optimize CSE: don't block on node provisioning

/lgtm

/lgtm
That's quite the one-liner!

FeatureFlags works for me.
/lgtm


Server rendering with dynamic imports and CSS

So I've got loadable-components working wonderfully with almost everything - Webpack 4 is happy, HMR (for dev) is happy, tests where dynamic imports need to resolve first are happy, etc.
But the part I'm a bit stuck on is server-side rendering with dynamic imports and per-module CSS files. I'm using MiniCssExtractPlugin, as ExtractTextPlugin is now deprecated. The CSS is splitting just fine. As an example, if I log the Webpack assets that are generated, I can see things like:
Descriptions:
   { css: 'Descriptions.efb10258987bd945.css',
     js: 'Descriptions.46113354beab1663.js' },

...but this is a problem, as whilst loadable-components does a brilliant job of splitting the JS and then recombining it server-side, the split CSS (and I presume other assets such as images?) isn't coming along for the ride. As a result, only the "non-dynamic" CSS is delivered with a pure SSR render (client-side JS disabled to test, as the client will insert the CSS once it starts up).
I've tried as a hacky solution getting MiniCssExtractPlugin to combine all the CSS into one file, avoiding the issue entirely, but when I do that it breaks JS entry points and all SPA functionality is lost.
Is there a recommended or known way to deal with this issue, where non-JS assets aren't brought along for SSR? I can write some super-hacky code to parse the script tag string and then match chunk names against Webpack's assets, and that'll probably work temporarily. But if there's a better way to handle this, it'd be great to know.

I have same problem and can't figure out solution. Scss-files imported at component with 'import (./style.scss)' won't get dragged along for SSR. I don't want to import every single style into main css-file...
Using Parcel instead of Webpack which works fine for client side and css-chunks get inserted to DOM.

I suggest you to use CSS in JS library like Styled Components or Emotion in order to solve this problem. Loadable Components is focused on JS only and will not provide a solution for CSS.

@niin4 Struggling with the same problem here. Have you figured out a solution? 😃

@dmitru As neoziro commented above, different approach should be used for loadable components. I ended up importing all CSS to the main style file that is imported by main application. Until the project gets refactored to use CSS in JS, the size of CSS won't hinder load times too much.

I suggest you to use CSS in JS library like Styled Components or Emotion in order to solve this problem. Loadable Components is focused on JS only and will not provide a solution for CSS.

@neoziro That's a little disappointing to hear. I understand why some devs like CSS in JS but there are still many devs who prefer using a SCSS/CSS build system. While many features of SCSS can be replicated in CSS in JS with some work, it's also a pain and often produces mark up which is ugly and not aligned with the original design spec of CSS.

Let's reopen this issue, and figure out what out problem actually is

(as long as I am a CSS lover, and CSS-in-JS hater).

Q: What do we want?
A: We want to use CSS in CSS
Q: Does loadable support it?
A: Yes, it does. If chunk used - it would be reported as JS and CSS, see chunkExtractor.getLinkTags, including styles included in the main entry file.
Q: client will insert the CSS once it starts up?
A: That's MiniCssExtractPlugin is working. JS is importing style.js and a tiny js logic is loading corresponding style.
Q: Is it possible to "help" it?
A: Just include all link tags on the Server Side, and MiniCssExtractPlugin will detect that you did all the job and do nothing by itself.
https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/src/index.js#L387-L394
Q: What's the problem then?
A: Style ordering. I might be not preserved.
A: What else? Honestly? I don't known - it should work out of the box.
Q: Other ideas for SSR?
A: used-styles to extract critical CSS, but you still have to load the "full" versions, ideally backed by SSR discovery to get better Lighthouse score, and there is nothing preventing you from doing it.
So, @jcklpe, @mikehdt - could you clarify that is not working for you?

@thekashey I have to admit I'm not directly using loadable. I'm using a project called frontity which uses it and I was told in their project forum that the inability to use scss or css in that framework was a hard limitation of ssr react and then I was linked this thread.
I'll check back in with the frontity devs and maybe they will have some thoughts.

I am having this issue, and from @theKashey comment above, the issue is with the style ordering.  I am using Gatsby for SSR.

"correct" style ordering is something we could not guarantee right now. Unfortunately, you have to write more or less order-independent rules by your own.
The only theoretically possible way to solve the problem

remove all imports (using babel)
compile one-big-bundle
get the correct order of styles(rules)
compile split version
detect the "right" sequence of styles
and load styles in that order, this includes some reordering of the already loaded ones on a new chunk load.
And that's not quite in loadable responsibility.

However - please double check the size of resulting CSS, and if it's quite small (and it could be really small) - consider reconfiguration of your MiniCssPlugin(or other) to emit one big chunk if it is not really big. That would solve many problems out of the box.

Isn't the style ordering js logic exactly what libraries like emotion covering? I'd agree this isn't something loadable would be doing. We are using emotion in our ssr applications and the style ordering is handled by using the css in js. When we've identified global styles that need to be included in the ssr critical css it's separately compiled and included in the code that organizes the html string:

The isolation provided by CSS-in-JS pattern just makes it super easy to handle style ordering, as well as Emotion just inlines all styles in the HTML.
But broadly speaking correct CSS ordering might be VERY complicated.

I agree. That's why the SEPARATELY_DEPLOYED_STATIC_CSS_FOR_GLOBAL_STYLING is meant to handle it as a separate concern.


Add more basic assertions for Local(Date|Time)

Summary
It would be nice if AbstractLocal(Date|Time)Assert has basic assertions for field values of actual.
LocalDate

[x] hasYear - #2555
[ ] hasMonth / hasMonthValue - @jessicant @nith2001
[ ] hasDayOfMonth

LocalTime

[ ] hasHour
[ ] hasMinute
[ ] hasSecond
[ ] hasNano

LocalDateTime

[ ] hasYear
[ ] hasMonth / hasMonthValue
[ ] hasDayOfMonth
[ ] hasHour
[ ] hasMinute
[ ] hasSecond
[ ] hasNano

Examples
  final LocalDate actual = LocalDate.now();
  assertThat(actual).hasYear(actual.getYear());
  assertThat(actual).hasMonth(actual.getMonth());
  assertThat(actual).hasMonthValue(actual.getMonthValue());
  assertThat(actual).hasDayOfMonth(actual.getDayOfMonth());

  final LocalTime actual = LocalTime.now();
  assertThat(actual).hasHour(actual.getHour());
  assertThat(actual).hasMinute(actual.getMinute());
  assertThat(actual).hasSecond(actual.getSecond());
  assertThat(actual).hasNano(actual.getNano());

HI. I would like to work on this. Please assign me.

@jessicant thanks!
Can you start with hasYear and raise a PR?
The idea is that we review it so that the other assertions are going to be easy to do ;-)
You can also only do hasYear if you feel that issue is too much work.

Hi, my friend @nith2001 will comment on this issue soon. Will you please make him an assignee as well? We would like to work on it together :)

Hello! Verifying what Jess said!

@joel-costigliola was there a reason we were unassigned? We would still like to work on this issue, but we can pick another if need be

@jessicant I assume @joel-costigliola unassigned you only because hasYear was merged. Would you mind announcing here what you will choose next so that we can avoid overlap with other contributors?

@scordio thank you for assigning us. We will work on LocalDate hasMonth/hasMonthValue next.

thanks @jessicant, this issue being big I split it into tasks so that multiple contributors can work on it, they should as you did indicate which assertions they want to work on.
the integrated commit can be used as a reference for implementing the other assertions: https://github.com/assertj/assertj-core/commit/9dc086d82aa58a755f36cf88449b0ca74288bb63is

Dope. Jessica and I will be working on it fully this Tuesday and we should be able to get a good chunk done then.

Hi @onacit, the example is a little ambiguous. For hasMonth() do you want it to work with int values and/or Month objects? We can write both, but wanted to check before we start adding features ;)

@jessicant this why @onacit has suggested having two assertions for month that matches the LocalDate API

https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#getMonthValue--
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#getMonth--
Use int for hasMonth and Month for hasMonthValue.

@onacit correct me if I'm wrong ;-)

Awesome, I have it set up that way where one function takes Month enum and the other takes the month value.

Hello, I'm interested in this issue. Could you assign me the functions hasHour and hasMinute in LocalDateTime?

Hi, actually SariaCxs is my friend and I want to work on  the assertion of hassecond and hasNano in LocalTime, can I work on these two sub-tasks?

We'll take hasDayOfMonth() to finish off the LocalDate asserts.

Topics assigned as requested. Thank you all for your interest!

I am interested in hasSecond of Local date time. Could you assign me to this feature?

I am interested in hasSecond of LocalDateTime. Could you assign me to this feature?

Could you assign LocalDateTime's hasYear, hasMonth / hasMonthValue and hasDayOfMonth to me?

Actually, @Zhou-Yicheng is my friend. I am interested in hasSecond of LocalDateTime. Could you assign me to this feature? @scordio

@Zhou-Yicheng I have assigned you hasMonth / hasMonthValue that should be enough for a start, please look at https://github.com/assertj/assertj-core/pull/2566 for reference when that PR is merged.

May I take 'hasNano' of 'LocalDateTime' next please?

Hello, I'm interested in this issue, could you assign LocalDateTime's hasYear  and hasDayOfMonth to me?

@scordio @joel-costigliola Hello, I'm interested in this issue, could you assign LocalDateTime's hasYear and hasDayOfMonth to me?

Done, @MatthewLENG2002. Thanks for your help!

@Leo0506 are you tackling the last assertion of this issue? We are almost done!

Oh yeah. Sorry to be a little bit late.


WebApp - Error page in case Import by Json on firefox

Describe the bug
Error page in case import from Polkadot.{js}
To reproduce the bug
Steps:

Go to Welcome to Subwallet screen
Click on Import a account
Select Import from Polkadot.{js} and observe the displayed screen

Actual:

Do not reproduce this issue => Close issue


Document the reference for https://github.com/Microsoft/azure-pipelines-task-lib/blob/master/tasks.schema.json

There are a lot of unknowns in https://github.com/Microsoft/azure-pipelines-task-lib/blob/master/tasks.schema.json
E.g what is the minimumAgentVersion ?
I also know that you can use dotnet as an execution stategy but it is not documented anywhere.
It's super difficult already to develop and test custom tasks, poor docs makes it no easier.

Another point is the $(currentDirectory) variable. Where does it come from ? And can you use other variables ?


fix(message-parser): Link are not clickable if local environment

Proposed changes (including videos or screenshots)
Before

Now

Issue(s)
closes https://github.com/RocketChat/Rocket.Chat/issues/28427
Further comments

I have utilized an array to store approved local URL suffixes that may facilitate any future extensions.
Thanks for @dudanogueira 's help lol

Hey @IllTamer! This looks good to me, can you also add some tests?
Hint - Check file message-parser/tests/link.test.ts
Thanks for the contribution.

Hey @IllTamer! This looks good to me, can you also add some tests?
Hint - Check file message-parser/tests/link.test.ts
Thanks for the contribution.

Of course : )

Sorry @IllTamer but this cannot be done statically like that, since it's an internal host... I'm trying to find a way to add this dynamically with parser options.
My idea is: to add a new setting to Rocket.Chat with acceptable hosts and dynamically send to the message parser to add to the function. You are welcome to help if possible

FYI: I got to make it work, I'll open a PR soon! 🥳 🚀


Local release image build with Packer

OK I streamlied the packer image build on my decidated Laptop running a Debian LIVE image.
Most things work, but some details to discuss with @openoms
A) arm64-fatpack does not run thru
Not with the script I was building - but just by calling the make command the build of the arm64-fatpack fails with:
==> arm.raspiblitz-arm64-rpi: https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2023-12-06/2023-12-05-raspios-bookworm-arm64.img.xz?archive=false&checksum=sha256%3A5c54f0572d61e443a32dfa80aa8d918049814bfc70ab977f2d545eef45f1658e => /home/user/.cache/packer/6754bd243accdb4ae9941ce7d93be7d8d7963068.xz
    arm.raspiblitz-arm64-rpi: unpacking /home/user/.cache/packer/6754bd243accdb4ae9941ce7d93be7d8d7963068.xz to raspiblitz-arm64-rpi-lean.img
    arm.raspiblitz-arm64-rpi: unpacking with custom command: [xz --decompress /tmp/image971241824/6754bd243accdb4ae9941ce7d93be7d8d7963068.xz]
    arm.raspiblitz-arm64-rpi: resizing the image file raspiblitz-arm64-rpi-lean.img to 28G
    arm.raspiblitz-arm64-rpi: expanding partition no. 2 on the image raspiblitz-arm64-rpi-lean.img
==> arm.raspiblitz-arm64-rpi: error while expanding partition exec: "parted": executable file not found in $PATH:
Build 'arm.raspiblitz-arm64-rpi' errored after 6 minutes 27 seconds: build was halted

B) sudo debian user warings
When running the the build for arm64-lean I get a lot of those warinigs .. is that sane? Can it be prevented?
sudo: unable to resolve host debian: Name or service not known
C) amd64-lean: qcow2 zipping?
When build an image for x86 .. why not as part of the packer process convert the qcow2 to img? I build a part in my packer.sh script where I take the qcow2.gz - unzip it, convert it to img and zip it again. It works, but feels that this would make more sense of having it as part of the packer make process - or is there a speiacl reason to keep it with qcow2?

A) arm64-fatpack does not run thru

tested to run the
# make arm64-rpi-fatpack-image

from root (after sudo su).
The build goes through ok, but there is a problem with the file naming I need to fix:
...
Build 'arm.raspiblitz-arm64-rpi' finished after 34 minutes 26 seconds.

==> Wait completed after 34 minutes 26 seconds

==> Builds finished. The artifacts of successful builds are:
--> arm.raspiblitz-arm64-rpi: raspiblitz-arm64-rpi-lean.img
# Compute the checksum of the raw image
cd ci/arm64-rpi/packer-builder-arm  && \
sha256sum raspiblitz-arm64-rpi-fatpack.img > raspiblitz-arm64-rpi-fatpack.img.sha256
sha256sum: raspiblitz-arm64-rpi-fatpack.img: No such file or directory
make: *** [Makefile:110: arm64-rpi-fatpack-image] Error 1

ls -la ci/arm64-rpi/packer-builder-arm/raspiblitz*
-rw-r--r-- 1 root root           0 Dec 22 17:28 ci/arm64-rpi/packer-builder-arm/raspiblitz-arm64-rpi-fatpack.img.sha256
-rw-r--r-- 1 root root<PHONE_NUMBER>2 Dec 22 17:28 ci/arm64-rpi/packer-builder-arm/raspiblitz-arm64-rpi-lean.img

Aiming to open a PR with fix to this branch of yours.

B) sudo debian user warings
When running the the build for arm64-lean I get a lot of those warinigs .. is that sane? Can it be prevented?
sudo: unable to resolve host debian: Name or service not known

Was aware of these as they present in the github actions logs as well, but couldn't find the stop all of them apart from stop using sudo.
The errors don't seem to cause any issues so ignored so far.

C) amd64-lean: qcow2 zipping?

I think the qcow2 was the smallest size so kept that way as it is very important to be able to fit into the github artifact limits. For the local build there is no such limit so would be good to have an .img outcome. Some who use the image in a VM might find .qcow2 useful so this can be up for discussion.

Rebasing on the latest state of dev

Will run a test build with the new script


Cannot compile with clang-cl when using #include <experimental/coroutine>

Our project or a dependency as folly might #include <experimental/coroutine>
We can't compile the program anymore due to redefinition of 'coroutine_handle<void>'

Repro:

Create 'Windows Console Application (C++/WinRT)' in VS 2019
Change Platform Toolset to 'LLVM (clang-cl)'
Either change 'C++ Language Standard' to 'Preview - Features from the Latest C++ Working Draft (/std:c++latest)' OR
Keep 'C++ Language Standard' to 'ISO C++17 Standard (/std:c++17)'' and add -Xclang -fcoroutines-ts to Additional Options in C++ \ All Options

-> Compile and run the program: Observe that it works

Now add #include <experimental/coroutine> to main.cpp

-> Doesn't compile anymore

The trouble is that the coroutine ABI is different between Visual C++ and Clang. As a consequence, the <experimental/coroutine> header from Visual C++ is not compatible with Clang. That's why C++/WinRT attempts to smooth things over by providing an implementation that is compatible with Clang in such cases.

Okay.
I have diffed C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\include\experimental\resumable with the bash.h generated from cppwinrt.exe and it seems they are indeed different.
However, I don't have the technical expertise to spot the specific details ;-)
They are also different in 14.24.28314
It seems this problem is related to https://github.com/microsoft/STL/issues/100 and it seems it won't be solved as C++20 has #include <coroutine>
Two entities carrying a different implementation can't bear the same name.
I am using a preprocessor statement now to fix that in our code base:
#pragma push_macro("experimental_compat")
#define experimental experimental_compat
// Include C++/WinRT headers, e.g.:
// #include <Windows.UI.Xaml.Hosting.DesktopWindowXamlSource.h>
// #include <winrt/Windows.UI.Xaml.Hosting.h>
#undef experimental
#pragma pop_macro("experimental_compat")

Now the program links correctly
-> Would this be something we should integrate into this project?

Given that  is coming and will hopefully have compatibility with both compilers, I should probably remove the Clang version from the base header to make it easier for projects to include the support they need.

This issue was only apparent when also including folly and got eventually fixed upstream > https://github.com/facebook/folly/commit/cbdf3df78086c1aef2b9d74e826f960824c043b6#diff-4fc4184ad9f9ddf4ceb5e792384c7a4d
As my particular scenario was to use react-native-windows https://github.com/microsoft/react-native-windows with Clang I still need to provide an experimental awaitable future support so I am adding my fix just for reference > https://gist.github.com/christophpurrer/442614beda29b46b9761b57326927a60


[Feat]: sync only specified architecture / operating system images

Is your feature request related to a problem? Please describe.
Would it be possible to synchronize only a subset OS/architecture images?
Describe the solution you'd like
Support configuration of synchronized architectures / OS, e.g.:
  extensions:
    sync:
      enable: true
      registries:
        - urls:
            - https://registry.k8s.io
           architecture:
             - amd64
            os:
             - linux

Describe alternatives you've considered
It might be possible to filter out architecture based on tags, if the upstream repo uses consistent tags.
Additional context
Currently all architectures/OSes are synchronized.

One of the goals of sync feature was to make a content-preserving copy (similar to git clone).
If this is not done, then quite a few things will be broken such as signatures etc.

Right, for the whole signature it makes sense. But each OS has independent set of layers and its own digest, right? It doesn't make sense to put linux layer on top of windows. In this example the linux build has 308kB (because it's dummy image) while windows build totals to 852MB. It terms of network bandwidth and storage it might make quite a difference.

Each OS/Arch combination has its own manifest json which references the layers specific for that architecture.
All of these manifests are referenced by digest in the same index json file. The index has its own digest.
The index is the one tagged with k8s.io/pause:3.8 in your example.
Most client tools know what OS/Arch they are running locally when they do the download, they read the tagged index json, and and only download that manifest and layers for the layers they are interested in. That specific logic for picking one manifest over the others or the entire index and all manifests as a whole is on client side.
Zot itself is acting as a client in case of sync, but unlike the clients which are concerned with running a container locally, zot needs to accommodate any OS/Arch combinations may be needed in future, also if multiple architectures need to be downloaded it can't have multiple manifests with the same k8s.io/pause:3.8 tag. The tag needs to be on an index.
But if only certain OS/Arch combinations are downloaded on zot, then the index would be different compared to the original upstream one (and implicitly have different digests), which would break any app relying on the old index digest.

Closing this issue until we revisit.


Update README with correct installation instructions

Description of your changes
Partially addresses #233
I have:

[X] Read and followed Crossplane's contribution process.
[x] Run make reviewable test to ensure this PR is ready for review.

Well, I did - but I got make: *** No rule to make target `reviewable'.  Stop.. Similar error for just make reviewable.

How has this code been tested
Confirmed that the new instructions installed a Provider which did not error-out.

Thanks for the help :)


Massive Refactor for jest testing

This modifies all the tests to run under jest. There are a lot of broken tests still.
Ref:
#1136 #1137

wow, this looks awesome!
Curious if you were in touch with @hansal7014 (from #1136) to avoid duplicate work?

wow, this looks awesome!
Curious if you were in touch with @hansal7014 (from #1136) to avoid duplicate work?

Did not, i must have started before those comments came in. It took me a few days of messing around to get everything working well enough

Ok, cool, good to know, I pinged the other thread to avoid doing the same stuff twice in the future, for now let's merge this in

Ok, cool, good to know, I pinged the other thread to avoid doing the same stuff twice in the future, for now let's merge this in

I'm pulled the travis changes because there are still a ton of broken tests.

Just wanted to send a friendly ping to understand the state of this and make sure it's not blocked from our side.

Hey @NothingEverHappens this was not blocked just haven't had a time to get back to the enormity of this. This in and of itself should be ok if we wanted to take a small chunk out of the project

Cool, would you have some time to address the feedback? (I think it's mostly dropping unused code bytes, and other small things)?
I think this is a big step forward compered to what we have now and would be awesome to get merged.

Hey @Mutmatt, are you planning to look into merging this in?
Or alternatively I can work on doing this.


[now-cli] trips on dangling symlinks, even when ignored

now version 16.6.0
Here's an example:
✸ ln -s foo bar
✸ now
> Deploying ~/src/ss/arongriffis.com under scampersand
> Using project arongriffis
> Error! ENOENT: no such file or directory, stat '/home/aron/src/ss/arongriffis.com/bar'

Adding the symlink to .nowignore doesn't help.
You might wonder why a dangling symlink. Because my site builds in a container where the symlink is valid, but deploys from outside the container. (The actual symlinks are more complicated than the foo bar example above.)
This used to work in some older version, probably 15.x. It just broke for me today when I upgraded to 16.6.0
Working around the bug is not easy.

Thanks for reporting this bug, great description!

We'll take a look at this very soon! Internally, it's being tracked here.

We'll publish an update for this today.

We'll be taking a look at this very soon. We'll keep you updated in this thread!
Internal Link

I'm experiencing the exact same problems.  These kinds of known, low-level bugs lurking around for a year without being addressed are unacceptable considering that many developers like me are considering becoming paying customers.


Ensure that times from other time zones than UTC are converted to UTC and formatted correctly.

@caseyamcl I hope you are doing well. Do you have a roadmap for future work on phpoaipmh?

Thanks for this @rudolfbyker . I've merged your fix and will be releasing a patch version today.


Fix pca9685 set_pre_scale when not in restart mode

The pca9685 driver assumes the chip will be in "restart" mode after putting it to sleep. This is not necessarily the case, which causes setting the prescaler to fail. This fix allows the precaler to always be set and only restart the pwm's when the chip was actually in restart mode after being put to sleep.

@henrikbrixandersen Let me know if you need anything for the review.


Add getter for defs element in Chart Layout

Resolves #191

@tunerscafe as you requested this feature, can you confirm that this PR meets your needs? Thanks

Looks good, but agree on the suggested changes above.

@jleft - thanks for responding to my comments. Can you please do a little bit of tidyup (as per your response to my suggestion), then feel free to just merge this in.

@jleft - thanks for responding to my comments. Can you please do a little bit of tidyup (as per your response to my suggestion), then feel free to just merge this in.

No problem :-). Sure, will do.


Web UI 2.2 bugfixes

Web UI 2.2 bugfixes

I am also getting on linux:
local variable 'init_img_path' referenced before assignment
Traceback (most recent call last):
File "/InvokeAI/backend/invoke_ai_web_server.py", line 574, in generate_images
original_image = Image.open(init_img_path)
UnboundLocalError: local variable 'init_img_path' referenced before assignment

Is this only for bugfixes, or you could add batch size too?

@psychedelicious
just a random bug, I cant seem to find the steps that cause it as it so random.
but moving and zooming canvas, resizing the bounding box with mouse randomly stops working.
after this happens I can click to brush tool and and back to move tool and it all works again

@AshtakaOOf

Is this only for bugfixes, or you could add batch size too?

We will add bug fixes only on this PR.

@mickr777
I've noticed this occasionally also. Will investigate.

Looks like the brush will become invisible inside the selection bounds if "darken outside selection" is enabled.

@psychedelicious
FYI from commit 7c658c6 in development this is happing the model list
(Thought I would mention here since it effects the webui)


Timesheet - 24/04/2021 - Mr. K

Task 1
Landing page - HiFi Design - Responsive Design
Worked on Handoff file Specs and fixed spacing, padding and margins in responsive designs viewport 1366/992/768/414 to make the design pixel perfect according to 8px grid.
Proof of Work

https://www.figma.com/file/JCGeIX9fFrrpZiqE0XzH9s/Homepage?node-id=3%3A0

Time Spent
4.0 hours

Task 2
Worked on FAQ page changes according to the feedback, like sidebar menu, search box, and layout of the FAQ page.
Proof of Work

https://www.figma.com/file/C22D4Et2I0AIE0n8QwBDMm/FAQ?node-id=1%3A10

Time Spent
4.0 hours

Total Time Spent
8.0 hours
Account Number
c93ee24b89991a1438b45444cf06e5bb167ed1796d54a800174def4480f98ed0

Approved

Approved


Flag accredited bodies not on Apply when opening courses

Context
Some accredited bodies are responsible for sifting, making offers etc for applications to courses they ratify. During a meeting about access controls, it was pointed out that it would be bad if we opened courses for a provider but the accredited body responsible for some of those courses was locked out. We should help ourselves not to make this mistake.
Changes proposed in this pull request

Guidance to review

I used the presence of a ProviderAgreement as a proxy for the provider being onboarded. I think this is probably good enough? It ought to also cover providers who are set up as clients of the API (it doesn't yet, but https://trello.com/c/qerAetcs/1855-api-access-should-depend-on-the-presence-of-a-dsa)
No tests 🤠. We don't really have a place for this simple logic to live. Maybe it's simple enough?

Things to check

[X] This code doesn't rely on migrations in the same Pull Request
[X] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[X] API release notes have been updated if necessary
[X] New environment variables have been added to the Azure config

Thanks @tijmenb!

@tijmenb should be fixed up now. Let me know if there's any more to do on the link


Special handling of RDF term types in used software library (e.g. from RDFJS, JENA, etc)?

e.g. what if a function returns an RDF literal with language tag?

do we have an associated use case for this?

It's an issue that came from @pmaria at https://kg-construct.slack.com/archives/C01QFSW77QF/p1616769440004400?thread_ts=1616768778.002200&cid=C01QFSW77QF , Pano, do you know whether there's an existing use case for this?

As in a described use case somewhere? No, not yet.

The use case here would be that RDF value types (IRI, datatyped literal, langstring, etc) of values resulting from functions could be used as is, without having to specify termtype or datatype/language.


Are there five or six Service Health varieties?

Quote:
"Service Health events come in five varieties: Action Required, Assisted Recovery, Incident, Maintenance, Information, or Security"
the sentence lists six varieties:
(1) Action Required (2) Assisted Recovery (3) Incident (4) Maintenance (5) Information (6) Security
This sentence also appears here:
https://docs.microsoft.com/en-us/azure/azure-monitor/platform/activity-log-schema

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

ID: 0ada336b-a759-5a30-919c-9473ce0840e3
Version Independent ID: 5551959e-b7dc-2f45-4bb3-1212bae8e921
Content: Overview of the Azure Activity Log
Content Source: articles/azure-monitor/platform/activity-logs-overview.md
Service: azure-monitor
Sub-service: logs
GitHub Login: @bwren
Microsoft Alias: bwren

Thanks for catching this. A PR has been successfully initiated to resolve the typo. this will be live shortly.


Add details about loopback cni plugin

This change provide a href to users, so that users knowns where to
download this loopback cin plugin. And a more accurate link about
cni configuration file is provided.

This change is

I signed it!

I signed it

I signed it

I signed it


Updating to sinon ^3.2.0

npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
Is there any plan to update that peer dependency?

Any chance of seeing this soon? Is there more to it then updating the package.json? I could create a PR for that, but I'm not sure if there is more to do.

Sinon 4 is out now

This should no longer be an issue.

I just removed the upper limit for peer dependencies with 2.0.1.


Managed Linkerd

Current customers know w/o ambiguity they can use a Managed Linkerd from us. Those who want to use get the support they need in order to start using it.

[ ] Responsible person create separate issue
[ ] Ping every SE re: interested customers
[ ] Work w them and customer to use

Prepare Linkerd for 'productive use'

[ ] Discuss and link what goes here
[ ] Docs about mTLS https://github.com/giantswarm/giantswarm/issues/16741

Sales enablement.

[ ] Responsible person create separate issue
[ ] Talk to Franz if doing the same as Loki would be valuable, how to adjust

Partnership

[x] @cokiengchiara reach out to Linkerd for technical partnership. Outcome: Linkerd doc. tl;dr Just join Linkerd Slack - they are happy to answer our questions and requests with priority
[x] Julia reach out to Linkerd for business partnership (Catherine Paganini) - notes in same doc.

This is an iteration of https://github.com/giantswarm/roadmap/issues/271

Released: https://github.com/giantswarm/linkerd2-app/#linkerd2-app-chart

Will be announced on Friday announcement this week.


Support snapshot archetype testing

We need some mechanism to make it easy to test against snapshot archetypes. Some options to create a local directory that can be pointed to via the --url option in the CLI:

leverage the StagerMojo
write a script to convert the local archetypes dir
make the MetadataTestServer smarter so it can serve from the local maven repo

Fixed in https://github.com/oracle/helidon/pull/2137


Don't fail list-images entirely if any one image lookup fails

list-images would be much more useful if it didn't treat a failure to fetch one repo as fatal, I reckon.
There are a few reasons that image lookups can fail, not all exceptional:

the image might not be there any more
the image repo has had its permissions changed
the user has not supplied credentials that can access every single repo

and so on.
Instead of failing the whole thing, we could just display an error in place of the available images for a container.

(this is now how it behaves)


feat: DappsStaking V3 graphql endpoints

Two new endpoints based on SubSuid graphql

/api/v3/:network/dapps-staking/stats/dapp/:contractAddress with query params of startDate, endDate and optionally a limit and offset
/api/v3/:network/dapps-staking/stats/aggregated/:period

For example:

/api/v3/astar/dapps-staking/stats/dapp/0x48f292e9fdce07ba34217b0aa62e08b62376df3e?startDate=2023-10-10&endDate=2023-10-11&limit=20&offset=30
/api/v3/astar/dapps-staking/stats/aggregated/90%20days

Endpoint to fetch contract events doesn't work for me

Endpoint to fetch contract events doesn't work for me

I apologize. This works. My mistake

@bobo-k2 The address format changes were done upstream, see https://github.com/AstarNetwork/dapps-staking-indexer-v3/commit/a1c2d67c037551f1c103df9ca4bf49b332d8c114


Error while authenticating against OAuth provider

Component
server
Describe the bug
I am aware that I run both Gitea and Woodpecker at the edge by using nightly and next versions and that this can cause issues.
When trying to access Woodpecker I am send to the login page.
After trying to login I get the following error message: "Error while authenticating against OAuth provider"
I think this has to do with a recent PR being merged in Gitea about granular scopes.
The error messages Woodpecker returns are about a token not having at least one required scope.
In a attempt to fix the issue I had revoked Woodpecker as an "Authorized OAuth2 Application" in Gitea.
Re-adding does not fix the issue.
Steps to reproduce

Set up Woodpecker server with MariaDB server as database and Gitea as a forge.
Run docker compose.
Try to get Woodpecker to connect to Gitea.

Expected behavior
No response
System Info
next-05e355915b

Additional context
Woodpecker logs:
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:26:17Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:27:03Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:31:20Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:33:18Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:40:31Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:40:32Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:40:34Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:40:36Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:41:09Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:41:09Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:41:53Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:42:35Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:repository]","time":"2024-11-24T15:45:07Z","message":"failed to load branches"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:repository]","time":"2024-11-24T15:45:09Z","message":"get repo 'dionycodes/woodpecker-lftp' from forge"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:repository]","time":"2024-11-24T15:45:11Z","message":"failed to load branches"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:48:40Z","message":"cannot authenticate user"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T15:48:42Z","message":"cannot authenticate user"}

Validations

[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Checked that the bug isn't fixed in the next version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]

I tested exactly this version yesterday and didn't have that error.
What is your Gitea version? What's your configs? Could you add Gitea and Woodpecker logs at debug level?

I tested exactly this version yesterday and didn't have that error. What is your Gitea version? What's your configs? Could you add Gitea and Woodpecker logs at debug level?

Which configs do you need for Gitea?
Gitea version: 1.23.0+dev-704-g633785a5f3
Gitea logs:
2024/11/25 00:48:04 ...eb/routing/logger.go:102:func1() [I] router: completed GET /login/oauth/authorize?client_id=2271a6c1-6c20-4b19-b78b-1be991f0f76c&redirect_uri=https%3A%2F%2Fci.example.com%2Fauthorize&response_type=code&state=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzI0OTIzODQsImZvcmdlLWlkIjoiMSIsInR5cGUiOiJvYXV0aC1zdGF0ZSJ9.RKNscpD9S0wP3qqNJDDTMcIVe18uTSSAaGBRQmv1ctA for <IP_ADDRESS>:46748, 303 See Other in 11.6ms @ auth/oauth2_provider.go:185(auth.AuthorizeOAuth)
2024/11/25 00:48:05 ...eb/routing/logger.go:102:func1() [I] router: completed POST /login/oauth/access_token for <IP_ADDRESS>:46748, 200 OK in 170.2ms @ auth/oauth2_provider.go:462(auth.AccessTokenOAuth)
2024/11/25 00:48:05 ...eb/routing/logger.go:102:func1() [I] router: completed GET /api/v1/version for <IP_ADDRESS>:46748, 200 OK in 3.1ms @ misc/version.go:15(misc.Version)
2024/11/25 00:48:05 ...eb/routing/logger.go:102:func1() [I] router: completed GET /api/v1/user for <IP_ADDRESS>:46748, 403 Forbidden in 6.3ms @ v1/api.go:297(v1.Routes.func2.tokenRequiresScopes.22)

Woodpecker logs::
{"level":"debug","time":"2024-11-24T23:48:01Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/api/stream.go:70","message":"user feed: connection opened"}
{"level":"debug","ip":"","latency":1.812529,"method":"GET","path":"/api/forges","status":200,"time":"2024-11-24T23:48:01Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:01Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}
{"level":"debug","ip":"","latency":0.849317,"method":"GET","path":"/authorize","status":303,"time":"2024-11-24T23:48:04Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:04Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}
{"level":"error","error":"token does not have at least one of required scope(s): [read:user]","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/api/login.go:123","message":"cannot authenticate user"}
{"level":"debug","ip":"","latency":365.068008,"method":"GET","path":"/authorize","status":303,"time":"2024-11-24T23:48:05Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}
{"level":"debug","ip":"","latency":0.02655,"method":"GET","path":"/login","status":200,"time":"2024-11-24T23:48:05Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}
{"level":"debug","ip":"","latency":0.125656,"method":"GET","path":"/web-config.js","status":200,"time":"2024-11-24T23:48:05Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}
{"level":"debug","ip":"","latency":0.02638,"method":"GET","path":"/assets/custom.css","status":200,"time":"2024-11-24T23:48:05Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}
{"level":"debug","ip":"","latency":0.023514,"method":"GET","path":"/assets/custom.js","status":200,"time":"2024-11-24T23:48:05Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}
{"level":"debug","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/api/stream.go:70","message":"user feed: connection opened"}
{"level":"debug","ip":"","latency":1.283995,"method":"GET","path":"/api/forges","status":200,"time":"2024-11-24T23:48:05Z","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36","time":"2024-11-24T23:48:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:59"}

Woodpecker environment variables:
      - WOODPECKER_OPEN=true
      - WOODPECKER_HOST=https://ci.example.com
      - WOODPECKER_GITEA=true
      - WOODPECKER_GITEA_URL=https://git.example.com
      - WOODPECKER_GITEA_CLIENT=client_id
      - WOODPECKER_GITEA_SECRET=secret
      - WOODPECKER_ADMIN=dionysussg
      - WOODPECKER_AUTHENTICATE_PUBLIC_REPOS=true
      - WOODPECKER_PLUGINS_PRIVILEGED=woodpeckerci/plugin-docker-buildx
      - WOODPECKER_DATABASE_DRIVER=mysql
      - WOODPECKER_DATABASE_DATASOURCE=woodpecker:password@tcp(database_mariadb:3306)/woodpecker?parseTime=true
      - WOODPECKER_LOG_LEVEL=debug

Gitea version: 1.23.0+dev-704-g633785a5f3

Did it work on 1.22? I have 1.22.

Gitea version: 1.23.0+dev-704-g633785a5f3

Did it work on 1.22? I have 1.22.

Yes. It has been working until yesterday.
Unfortunately I dont think I can actually check and verify by going back go 1.22.
Additionally Gitea doesn't create Docker images per git commit so I cant go back to a version from a few days ago to check.
Below a screenshot with the screen I get when I want to authorize Woodpecker. It does not contain a list with scopes.

Gitea version: 1.23.0+dev-704-g633785a5f3

Did it work on 1.22? I have 1.22.

Alright. I have found a way to check if a previous nightly works.
I can confirm that version 1.23.0+dev-694-ga175f9805c is working and has no problems authorizing Woodpecker to Gitea.
It can now also access all the repo's and build stuff using repo's stored in Gitea.
This version is based on this commit https://github.com/go-gitea/gitea/commit/a175f9805c565aa22b1b5ead8cc15a127343819d which is the last commit before the PR I think is the issue.
Hope this helps.

I am also using woodpecker, and I also encountered the problem.
Will be fixed by  Improve oauth2 scope token handling https://github.com/go-gitea/gitea/pull/32633
Feel free to try my fix.

I am also using woodpecker, and I also encountered the problem.
Will be fixed by Improve oauth2 scope token handling go-gitea/gitea#32633
Feel free to try my fix.

I just tried your fix and it works.

With https://github.com/go-gitea/gitea/pull/32633 being merged this issue is now resolved I think.
Thank you @wxiaoguang and @zc-devs for the help.


feature Support recycling data stored in different version path formats across different types of storage vaults

Proposed changes
Support recycling data stored in different version path formats across different types of storage vaults

run buildall

run buildall

run buildall


Read from src, utilise workspaces, update packages

fixes #602
fixes #603
fixes #497
Let's try out the new Yarn workspace workflow for real.
Like the notes mention here: https://github.com/govau/design-system-components/pull/603
We will need to publish ( thanks to new autoprefixer details ):
- cta-link
- direction-links
- header
- main-nav
- side-nav
- skip-link
- accordion
- body

@sukhrajghuman Packages have been updated in package.json, CHANGELOG.md and README.md - Ready for another pass

here goes :pray:


Determine if a bib is suppressed in ALMA

Write a boolean method to determine if a bib is suppressed in ALMA.
We can work with @mzelesky to find an example in the sandbox.

suppressed mms_id:<PHONE_NUMBER>6421 <suppress_from_publishing>true</suppress_from_publishing>

For the indexing, we need to check the 950 $a (per @mzelesky ), to determine whether or not to index the bib.

For indexing the associated holdings of a bib we need to check  the 952 $e to determine whether or not to index the holding.

Do we want suppressed bibs to be returned by Bibdata (https://bibdata.princeton.edu/bibliographic/11548314)? How will this impact other services (e.g . figgy @kelynch  @tpendragon @hackmastera  )

It won't hurt Figgy for suppressed bibs to be returned by bibdata, but bibdata has no auth mechanism - so I think if we're suppressing them for some reason they shouldn't be generally available?


undefined extends all types when accessing a generic in a mapped typed

TypeScript Version: 3.2.0-dev.20180929 (First noticed in 3.1.1)
strictNullChecks must be on otherwise this is expected behaviour.
It seems that an issue has been introduced when accessing attributes of a mapped type in a conditional type.
Search Terms:
conditional type undefined extends
mapped type undefined extends
conditional type in mapped type access
Code
type UndefinedKeys<T extends Record<string, any>> = {
  [K in keyof T]: undefined extends T[K] ? K : never
};

type MyType = {a: string, b: string | undefined}

type Result1 = UndefinedKeys<MyType>;

const a1: Result1['a'] = 'a'; // $ExpectError
      ~~  There should be an error here
const b1: Result1['b'] = 'b';

// manually mapping the type, error is show as expected
type Result2 = {
  a: undefined extends MyType['a'] ? 'a' : never;
  b: undefined extends MyType['b'] ? 'b' : never;
};

const a2: Result2['a'] = 'a'; // $ExpectError
const b2: Result2['b'] = 'b';

To simplify this even more line 5 can be changed to
type MyType = { a: string, b: undefined };

Expected behavior:

The type Result1 should be {a: never; b: 'b'}.
Line 9 should have an error: Type '"a"' is not assignable to type 'never'.

Actual behavior:

The type Result1 is {a: 'a'; b: 'b'}.
Line 9 has no error.

Playground Link:

TypeScript Version
Playground Link

2.8.1
Playground

3.0.3
Playground

3.1.1
Playground <---- ENABLE strictNullChecks IN OPTIONS

3.2.0-dev.20180929
Same error as 3.1.1

Related Issues:
Potentially: https://github.com/Microsoft/TypeScript/issues/26942
Initially thought it was an issue with Distributive conditional types but the Generic type is in the assignable to position.

The issue seems to be the constraint on T. The following has the intended behavior:
type UndefinedKeys<T> = {
  [K in keyof T]: undefined extends T[K] ? K : never
};

The index access expressions T[K] seems to be pulling in the constraint where all property types extend any,  and therefore undefined is related.
I think this is a minimal repro (using arrays).
type X<T extends any> = undefined extends T ? true : false;
type Y<T extends any[]> = undefined extends T[number] ? true : false;

type A = X<number>; // ignores the `any` constraint and returns false
type B = Y<number[]>; // returns true;

This one is rather involved. We currently have the following rule:

A type S is related to a type T[K] if S is related to C, where C is the base constraint of T[K].

This rule is unsound because T[K] may be a subtype of C upon instantiation, but we nonetheless need it for several of reasons. One key reason is the fact that we don't use higher order types for property accesses through type variables. For example, for a property access this.xxx in a method of a class, we resolve to the declared type of xxx, not type this["xxx"], even though the latter is more precise. Effectively, we resolve to the constraint of this["xxx"]. We do this for reasons of backwards compatibility and also to avoid drowning in generic types. But it would be odd indeed if the expression this.xxx was not assignable to the type this["xxx"]--hence the rule that allows the assignment if it matches the constraint.
Now, in 3.1 we fixed several issues relating to us not examining all constraints of a type. Because of those fixes we now drill all the way down and find the any constraint for T[K] in your example above. And since anything is assignable to any we effectively turn off type checking. To wit, none of the following assignments generate errors:
function test<T extends Record<string, any>, K extends keyof T>(t: T, k: K) {
    t[k] = 42;
    t[k] = "hello";
    t[k] = undefined;
}

That's not good. But the question is how to fix this without breaking the this.xxx scenario I mentioned above (and other similar ones).
So far I think the best contender is to modify the rule above as follows:

A type S is related to a type T[K], where T and K aren't both type variables, if S is related to C, where C is the base constraint of T[K].

In other words, we should limit the unsoundness to situations where one or the other part of the indexed access is an actual zero-order type, but forbid it when both are higher order (since at that point it becomes too unsound).
I ran the experiment on our test suites and there just a few changes, all of which are reasonable. Even better, the RWC suites show no baseline changes at all. I will put this up in a PR.

And since anything is assignable to any we effectively turn off type checking. To wit, none of the following assignments generate errors

FWIW I don't think it is because type-checking is turned off, but because any is a top type (I don't know if you consider this a distinction). You get the same behavior with unknown.
type UndefinedKeys<T extends Record<string, unknown>> = {
  [K in keyof T]: undefined extends T[K] ? K : never
};
type MyType = {a: string, b: string | undefined}
type Result1 = UndefinedKeys<MyType>;
const a1: Result1['a'] = 'a'; // no error

The conditional type is essentially a type-level version of this:

const x: {a: string} = { a: "a" };
const baseConstraint: Record<string, unknown> = x;
baseConstraint.a = undefined; // unsound

A type S is related to a type T[K], where T and K aren't both type variables, if S is related to C, where C is the base constraint of T[K].

Am I right in say that this would not address:
type Y<T extends any[]> = undefined extends T[number] ? true : false;?
(This isn't a complaint, just wanting to know if I read the rule ok).

That's not good. But the question is how to fix this without breaking the this.xxx scenario I mentioned above (and other similar ones).

From an uniformed/outside perspective it seems like the problem trying to be solved in the initial post is to constrain T to some shape (a record, but it could be an array). The programmer only really cares about the outermost data constructor and the any is just there because it causes little friction. Though when you pull down the constraints the any starts causing problems and you can't control the variance.
I wonder whether it would be possible to have a special way of marking shapes for types where you really don't care about, or particularly, want their constituent constraints. Something like:
type UndefinedKeys<T extends Record<string, *>> = {
  [K in keyof T]: undefined extends T[K] ? K : never
};

T extends Record<string, *> can be read as: T should be some record but other than that we don't care about the type of the value, please don't pull the constraint down because I'm going to use T[K] in a contravariant way! * is basically an alias for any that doesn't get pulled out from constraints, or an inference where we discard the result.

FWIW I don't think it is because type-checking is turned off, but because any is a top type (I don't know if you consider this a distinction). You get the same behavior with unknown.

That is indeed what I meant.

I wonder whether it would be possible to have a special way of marking shapes for types where you really don't care about, or particularly, want their constituent constraints.

I would be more inclined to introduce a new type relationship (e.g. "soundly assignable") that excludes the unsound rule and then use that relationship when checking the extends clause of a conditional type. But we really try hard not to have too many type relationships because we end up consuming more time and memory resources.

@aleclarson Yes this seems to be related. The fix made only works for index accesses of the form T[K], where both T and K are parameters; your code uses T['a'].

Using "brackets on a mapped type" inside an "extends" clause lets false extends true evaluate to true.

This isn't 100% true in the sense that what is going on is that the condition false extends T['a'] is being eagerly reduced using the constraint Foo. So the condition is being evaluated as false extends boolean, which correctly selects the true branch. The conditional type is being resolved before the function ever gets called.


new solver has problems with generic typing

this code raises 2 errors:
local function lerp<T>(a: T, b: T, t: number): T
	if type(a) ~= type(b) or (type(a) ~= "number" and type(a) ~= "vector") then
		warn(`Unable to cast {typeof(a)} to number or vector`)
		return a
	end
	return a + (b - a) * t
end

Error 1:
line 2 gives the error: Type function instance union<*blocked-203614*, nil> is uninhabited
entire line was highlighted, except if and then
Error 2:
normally, line 6 should detect that generic type T should either be number, Vector3 or Vector2 (because of the ifs at line 2-5)
however, that doesn't happen. Instead, I get an error at line 6: Type function instance intersect<T, number> is uninhabited

Moreover, it seems like typechecking has problems with for i, v in table do, where pairs, ipairs or next is omitted
Error message: Cannot iterate over a table without indexer
the table:
type RigAnimationAxisTable<T> = {
	RootJoint: T,
	Neck: T,
	["Right Shoulder"]: T,
	["Left Shoulder"]: T,
	["Right Hip"]: T,
	["Left Hip"]: T,
}

local joint_names: RigAnimationAxisTable<true> = {
	RootJoint = true,
	Neck = true,
	["Right Shoulder"] = true,
	["Left Shoulder"] = true,
	["Right Hip"] = true,
	["Left Hip"] = true,
}

all of these use strict typechecking
after a bit of checking, issue 1 seems to apply anytime i use a generic type in a similar way, and then try to check the type of said parameter

I've found a similar issue with generics... intersections?...
local function foo<T>(bar: number & T)
	assert(typeof(bar) == "number")

	typeof(bar) -- TypeError: Type function instance intersect<T & number, number> is uninhabited
end

after the assertion bar turns into intersect<T & number, number> which causes the type error


[Question] is it valid lanelet direction?

Hi. I'm making a lanelet map. but I confuse lanelet direction 2, 3 case.
Are case 2, 3 valid lanelet?
"A lanelet consists of exactly one left and exactly one right linestring. Together they form the drivable area of the lanelet. It is required that the linestrings point into the same direction. That can mean that for two neighbouring, opposing lanelets one of them has to hold an inverted linestring as its border. When loading map data from osm, the library will do the alignment for you. "

The answer differs a bit depending on if you are referring to the representation within the library or the representation within the osm file. Within the library, all your examples are not correct:

In 1, you would have to split the linestring in the middle into pieces so that only the part that is directly adjacent to the lane is part of the lanelet.
In 2, you would have to invert the linestrings at 2
In 3 and 4: one of the two lanelets would hold the inverted version (linestring.invert()) of the shared linestring in the middle.

In the osm file, the representation is different, because there is no good way of storing the orientation of a linestring within a lanelet. For that, the parser will automatically invert linestrings as appropriate in order to form valid lanelets. So the examples 2, 3 and 4 would be corrected automatically when loading the map.


ZeroCopy: All of zero_copy::text

Here is a quick rundown of the changes:

Additions:

zero_copy::text::whitespace
zero_copy::text::newline
zero_copy::text::digits
zero_copy::text::int
zero_copy::text::ident
zero_copy::text::keyword
zero_copy::Parser::repeated_slice
zero_copy::Parser::then_slice
zero_copy::sliced
zero_copy::sliced::RepeatedSlice
zero_copy::sliced::ThenSlice
zero_copy::text::Char::is_valid_ident_start
zero_copy::text::Char::is_valid_ident_continue
zero_copy::text::Char::is_digit
zero_copy::text::Char::is_zero

Here are some notes that I took while going through this:

All of the parsers should have the same parsing capability as on the master branch, with slightly more return value flexibility.
I wasn't really sure if the _slice methods that I added to Parser should be part of another trait or not.
The user still has the same amount of flexibility with digits and int, though they may have to use an extra map. They both still work with Parser::from_str as they did on master!

If there is anything you find odd, or that looks like it could use improvement, please do let me know! Thanks in advance!

This is just a bump, and something to let you know that I have done some cleanup of the branch since your last comment, and unless I find another bug, or you have any requests regarding this branch, I am done making commits to it :D

Hey, I think it's safe to say that this pull request can be closed, as it appears like most (if not all) the important changes have been made to zero_copy. If there's something in here that you'd like me to salvage I would be happy to try, otherwise feel free to close the PR :)


[UI][RulePad] Update the UI for selecting directories.

Change the UI for selecting directories of files the design rule is applied on.

The current design is not standard.
In the current design, it is not clear that the save button should be clicked on.

Duplicate of issue #33
Change of design is not for Milestone v0.0.2


Add a map showing all the countries that fellows are located in

Underneath projects and fellows, have an interactive map that displays where everyone is located.

[ ] When you click on the pin location for that fellow, it gives you a card with information about the fellow (similar to the fellow section

You can chose to have pins or use circular profile pictures to show where everyone is on the map. You could remove the fellows section and replace it with the map.

I'd like to try this issue. I don't have any experience with ruby, but this seems fun!

I'd like to work on this issue as well!

Hi! My discord is Abirami#4073


Certificate Manager Integration Test

Overview
This PR connects to https://github.com/ministryofjustice/cloud-platform/issues/1109 and relates to the integration test story on the Cloud Platform. Merging this PR to master will add an test to our suite of integration tests to be run on live-1. Unfortunately, due to the certificate limitation of 50 per week from Lets Encrypt, it is unwise to run this as part of the integration test pipeline that runs against live-1 every hour.  Upon finding this limitation we decided to mark the test as pending, allowing an engineer to run it on their local machine for assurance of a working cert-manager component.
Things to know

This test will only run on a live cluster.
This test must not be triggered as part of a pipeline.

What has changed

Added a cert_manager_spec.rb containing the relevant rspec test and methods. I decided against having a separate helper file as there are only two methods to add.
Changed the helloworld deployment used in the ingress spec. This allows us to re-use it for other tests including our cert-manager spec.
Amended the Dockerfile used to perform testing to include the openssl binary. This allows us to perform openssl calls in other tests, including our cert-manager spec.

Blocked, waiting on a method from @mtrbls to delete A records.


Serialization error when item contains timezone-aware datetime object

When using dateparser>=0.6, the parser produces timezone-aware datetime objects if there's a timezone in the input string.
Example spider:
# -*- coding: utf-8 -*-
from datetime import datetime

import scrapy
import dateparser

class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ['example.com']
    start_urls = ['http://example.com/']

    def parse(self, response):
        return {'url': response.url,
                'ts': dateparser.parse(
                        datetime.utcnow().isoformat()+'Z')}

Error seen on Scrapy Cloud:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
    result = f(*args, **kw)
  File "/usr/local/lib/python3.6/site-packages/pydispatch/robustapply.py", line 55, in robustApply
    return receiver(*arguments, **named)
  File "/usr/local/lib/python3.6/site-packages/sh_scrapy/extension.py", line 47, in item_scraped
    self._write_item(item)
  File "/usr/local/lib/python3.6/site-packages/sh_scrapy/writer.py", line 78, in write_item
    self._write('ITM', item)
  File "/usr/local/lib/python3.6/site-packages/sh_scrapy/writer.py", line 46, in _write
    default=jsondefault
  File "/usr/local/lib/python3.6/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/local/lib/python3.6/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/local/lib/python3.6/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/lib/python3.6/site-packages/scrapinghub/hubstorage/serialization.py", line 43, in jsondefault
    delta = o - EPOCH
TypeError: can't subtract offset-naive and offset-aware datetimes

fixed by #82


PathFollow2D: rotation isn't consistent

Operating system or device, Godot version, GPU Model and driver (if graphics related):
3.0beta d2e05b6
Issue description:
Moving on a looped path doesn't result in the same rotation each time.
In addition, no rotation occurs when completing the loop, resulting in a different initial rotation every time through the loop.

Worse still, when running the attached project, I get a different result each time I run the project. Sometimes the angle strays quite far from orthogonal in the first couple of loops, sometimes it takes several.
This makes it impossible to keep the orientation of a sprite consistent when looping around a path. It also breaks the "Dodge the Creeps" 3.0 tutorial game, where we have a path wrapped around the edge of the screen and use set_offset( randi() ) to pick a random location along it to spawn a mob. Now the orientation of the PathFollow2D is completely unpredictable.
Steps to reproduce:
See attached project for example.
path_test.zip
Link to minimal example project:

On the win32 beta1 release, the PathFollow2D behaves even more erratically.  Here is the result of running path_test:

On the gif may look like if the issue starts after first loop but can happen on any point changing offset or unit_offset.
Something else I have noticed is that the transition between last end first point does not trigger the first point "look ahead" rotation.

CC @tagcup (#13406), who might potentially know more about this problem.

There are problems I can see: next tangent look up doesn't take loop into account, rotation angle direction need to be calculated. I'll give it a check in the weekend.
But after completing an exact cycle, the object will never be force to it's original orientation, so you'll have "different rotations", that's not a bug, that's the entire point of doing parallel transport. Unless you gain an exact multiple of 2pi by doing parallel transport (you can read about it here if you're not familiar with the concept), you will always get a different angle.

Looks like a combination of a couple of issues.
First a case of difference in expected behaviour. My understanding from the tutorial example was that the PathFollow2D should have it's direction set to the direction of the followed path. The implementation is trying to do something different. I'm not sure which of these behaviours is desired.
Second the implementation assumes a low offset delta and it's used to define near points to take the previous and current angles on the path from.

First a case of difference in expected behaviour.

That is one of the compatibility-breaking changes in 3.0. Not sure if it was documented. Like I said, that *is *the expected behavior in 3.0.

Second the implementation assumes a low offset delta

No, it doesn't assume anything. It used to work like that in 2.0, that it asked the user to assume some offset, but now it calculates the exact offset change without relying on any assumptions.
BTW using current master, I couldn't reproduce any of the issues @cbscribe mentioned in the issue description, except for the missing rotation at the end of the loop which is easy to fix, using the attached project. I don't see anything that resembles to the gif you uploaded when I run it.

And I'm reiterating this probably for the 4th time on the issue tracker, and I hope it will stick this time curves with sharp turns won't work properly with the current implementation of curves.
If you use curves with high-torsion, there will always be issues, with or without parallel transport (see #3713 for example). The difference with parallel transport is that, this issue will not apparent at single point but it will affect all the motion once you passed that "bad" point, so it's a lot more difficult to miss this problem. But this is a problem with the Curve, not PathFollow. Interpolation will help you avoid such sharp turns, and I do think curve should offer different polynomials to do that.

In PathFollow2D::_update_transform
Vector2 t_prev = (pos - c->interpolate_baked(o - delta_offset, cubic)).normalized();
Vector2 t_next = (c->interpolate_baked(o + delta_offset, cubic) - pos).normalized();
float angle = t_prev.angle_to(t_next);

The two vectors here are not tangents to the curve, they are straight lines between the current position and positions delta_offset along the curve in either direction. If delta_offset is low, this is close to a tangent, in cases where delta_offset is higher it will be inaccurate to irrelevant.
This project demonstrates:
path_test.zip
The blue one starts from zero. The green one has a couple of initial offset sets to invoke the problem, giving it a jaunt. The purple one is regularly set to random offsets. All are on the same path.
And the same with a curved path:
path_test.zip

That is tangent. The thing you call "straight line" is the first-order forward finite-element expression for the gradient operator. delta_offset is low if you are traversing the path properly. Use interpolation or increase the resolution and rebake it if needed.
Or better yet, read my previous reply above.
Anyway, I really don't like dealing with all this noise, and I certainly don't want to waste any more time by explaining what's going on or explaining elementary math. Feel free to revert the commits I made in PathFollow2D. I'm done.

I also don't see anything that resembles to the gif you uploaded when I run it.

I just ran it again and I didn't see the erroneous rotation until the 6th time I re-ran it. It's inconsistent.

3rd party tutorials aren't the same as the official documentation

This is the official doc tutorial, which is why I'm so concerned about figuring this out.
So I changed the code to this instead:
extends Path2D

var step = 0.5
var offset = 0.0

func _input(event):
	if event.is_action_pressed("ui_select"):
		offset += step
		$PathFollow2D.set_unit_offset(offset)
		print("%5.1f : %5.1f" % [offset, $PathFollow2D.rotation_degrees])

So each step we move halfway around the loop. I would expect to have the same rotation at offset 0.5 as I would at 1.5 or 5.5. However, here's what I get:

offset
degrees

0.0
0.0

0.5
180.0

1.0
180.0

1.5
360.0

3.5
319.1

5.5
-81.2

Note that if I start with an initial offset of 5.5, the rotation is 180 at that point.
So here's the question then: what is Path2D/PathFollow2D for if I can't use it to move a sprite along a loop? It worked this way in 2.1, but the 3.0 behavior is different.  That's fine, but what is the "correct" way to use this? We have a lot of people starting to use beta now, so I need to fix the tutorial.

Given the vastly different behavior, from warping along the path resulting in a different rotation to the start of the curve not setting any rotation, I would say that this would be better off as either a toggle or just reverted back to how it was before, since I think that the old way this worked was completely fine for the majority of people using the node.

I haven't have time to pay much attention to whathever is going with Path and PathFollow, but if the behavior on 2.1 was good, I don't see the problem with reverting.

@reduz 2.1 had a problem in the interpolation of the rotation between last and first point (basically, no interpolation) making the transition look really bad.

I think the smooth rotation on sharp corners may be an artifact rather than intentional, as it comes from the resolution the path is sampled at. A sharp corner between the end and start of a looped path stays sharp because there will always be two samples at that point. You can force a smooth corner by moving the start and end apart a little, rejoining the path to get a diagonal line and then adding a curve with the control points. This is also worth doing this on other corners where you want a smooth rotation, to let you tweak how 'wide' you want the turn to be.

I was half right. It's partly due to the sample at that corner being in the perfect position and partly a result of not looping the lookahead. Here's V2.1 with looped lookahead for looping closed paths.

The end/start transition is still sharper than other corners, but less noticeably so. Possibly good enough?

So, basically, either this is fixed or we revert to 2.1 behavior? Not sure what to do here.

Does anyone have a usecase/example for what the new version needed to do, that I can take a look at?

Here is the detail of what the new version added to the 3D path https://github.com/godotengine/godot/pull/8870

Is it only the preserving initial rotation bit that applies to the 2D follower?

Sorry to react here, but I don't know where to see this issue.
I think it was fixed in 3.x at some point, but now that my project have been moved to the newer 4.x version of godot, somewhere I thinks there's a regression on the behavior.
has it been reworked inbetween 3.x and 4.x ?
I can put my finger on the specific issue, but in one of my projects, the pathfollow2D was consistent, and then in 4.x the path follow seems to create weird rotations on the path itself, or on the sprite follow this path.

has it been reworked inbetween 3.x and 4.x ?

Yes there have been extensive reworks between 3.x and 4.x, if you have an issue I'd open a new issue

OK I need to work on that to isolate the issue but I don't know exactly we're the issue is. I just have a weird behavior on my project, but can't create exactly the same issue on a new project. I'll try to do something, thanks for the answer


Missing setup detail for feature taghelper

To make the <feature> tag helper work you need to add the following to _ViewImports.cshtml
@addTagHelper *, Microsoft.FeatureManagement.AspNetCore
This was on a .NET Core 3.1 project.

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

ID: fa18f095-325a-628d-9c05-551c09f7392e
Version Independent ID: 5db3af04-a314-24fd-6202-772aaa62a28d
Content: Tutorial for using feature flags in a .NET Core app
Content Source: articles/azure-app-configuration/use-feature-flags-dotnet-core.md
Service: azure-app-configuration
GitHub Login: @lisaguthrie
Microsoft Alias: lcozzens

@NogginBox Thanks for the feedback! We're investigating this and will get back to you shortly.

@NogginBox Thanks for bringing this to our attention. I have submitted a PR to fix the issue that's in review. The changes should reflect post the merge.
We will now proceed to close this thread as resolved, but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Let prelude import all expression functions

Which issue does this PR close?

Closes #3068
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

@sadilet I was wondering if you will have a chance to complete this PR? It looks like it has a failing clippy CI run and an outstanding suggestion from @andygrove

Thank you for this PR 🙇

@alamb Sorry, was busy last days. Could you please check it out? Sorry if I understand incorrectly @andygrove review notes

@andygrove Happy to help. What's the policy of merge? Is there anything I can do? You gonna merge on your own, is it correct?

I plan to merge this tomorrow if there is no other feedback on this PR.


Package request: quickemu

Project description
Quickly create and run optimised Windows, macOS and Linux virtual machines

Metadata

homepage URL: https://github.com/quickemu-project/quickemu
source URL: https://github.com/quickemu-project/quickemu
license: MIT
platforms: unix, linux, darwin

Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

It's been in the repos since 2021


safetensors_rust.SafetensorError: Error while deserializing header: HeaderTooSmall.

aingdiffusion_v12.safetensors has been already in models/stable_diffusion.
mm_sd_v15_v2.ckpt has been already in models/AnimateDiff.
control_v11p_sd15_lineart.pth has been already in models/ControlNet.
sk_model.pth has been already in models/Annotators.
sk_model2.pth has been already in models/Annotators.
control_v11f1e_sd15_tile.pth has been already in models/ControlNet.
verybadimagenegative_v1.3.pt has been already in models/textual_inversion.
Traceback (most recent call last):
File "D:\Python39\lib\site-packages\IPython\core\interactiveshell.py", line 3369, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 1, in <cell line: 1>
runfile('D:/DiffSynth-Studio/examples/Diffutoon/diffutoon_toon_shading.py', wdir='D:/DiffSynth-Studio/examples/Diffutoon')
File "D:\PyCharm 2021.3.3\plugins\python\helpers\pydev_pydev_bundle\pydev_umd.py", line 198, in runfile
pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
File "D:\PyCharm 2021.3.3\plugins\python\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "D:/DiffSynth-Studio/examples/Diffutoon/diffutoon_toon_shading.py", line 100, in
runner.run(config)
File "d:\diffsynth-studio\diffsynth\pipelines\stable_diffusion_video.py", line 340, in run
model_manager, pipe = self.load_pipeline(**config["models"])
File "d:\diffsynth-studio\diffsynth\pipelines\stable_diffusion_video.py", line 272, in load_pipeline
model_manager.load_models(model_list, lora_alphas=lora_alphas)
File "d:\diffsynth-studio\diffsynth\models_init_.py", line 593, in load_models
self.load_model(file_path, lora_alphas=lora_alphas)
File "d:\diffsynth-studio\diffsynth\models_init_.py", line 551, in load_model
state_dict = load_state_dict(file_path, torch_dtype=self.torch_dtype)
File "d:\diffsynth-studio\diffsynth\models_init_.py", line 624, in load_state_dict
return load_state_dict_from_safetensors(file_path, torch_dtype=torch_dtype)
File "d:\diffsynth-studio\diffsynth\models_init_.py", line 631, in load_state_dict_from_safetensors
with safe_open(file_path, framework="pt", device="cpu") as f:
safetensors_rust.SafetensorError: Error while deserializing header: HeaderTooSmall

Maybe two reasons:

Something wrong in your safetensors file. Please delete it and download it again.
The LoRA format is not supported in our project.


Psf4compute bias

(GA) PSF for computeBias, gain optimization option, gain range and params file reading

Hi @guidoagapito ,
FYI, you can push new commits to a branch and it will update the PR, no need to close and open a new PR.

Thanks, I will do like this next time! :-)


Fix options name to match what is checked in template

Template checks for layout not layout_options

Hey, thank you very much but I fixed it already.. ;-)

Oh.. and blame GitHub for delayed notifications.. Sorry about that.