May 6th, 2024 Community Meeting

Please add a topic in this thread and add a link to the GitHub issue associated with the topic.
Please make sure you give folks enough time to review/discuss the topic offline on GitHub before coming into the meeting
(optional) Paste the image of an animal 😸

Follow on https://github.com/shipwright-io/build/issues/1119 . @Adarsh-jaiss I think you are on this topic as well, pls feel free to share anything you might have or bring your questions.

@karanibm6 we are wondering if you could provide a demo on your PR, for giving context to folks that are not yet familiar.

On v0.13.0 release. Current state for shipping?

Sure, I can present the demo on Monday.

Meeting minutes:

On Dependabot, should we configure indirect dependencies?

We think we have this, per previous PRs, but there are some CVEs that have not been addressed by dependabot. It seems indirect dependencies are updated when a vulnerability is found, but we don't have this enabled for version updates.
To discuss again later, no conclusion on this so far.

@karanibm6 presented a demo on Vulscan:

Introducing .spec.output.vulnerabilityScan
A first class citizen to enable/disable on demand a container image vulnerability scanning.
.spec.output.vulnerabilityScan.fail if set to true, it will not push the image to the registry(as part of the buildrun) and will switch the BR status to False. If set to false, it lists the CVEs in the status of the BR, but will push the container image. By default is set to false. Feedback: can we have a more descriptive key , instead of fail.
.spec.output.vulnerabilityScan.fail
For the severities, by default, it will find all severities, but there is a limit of the number of them that are surfaced in the BuildRun, 50max.
Do we need a global flag to disable the feature?

On v0.13.0 release. Current state for shipping?

Release Branch needed some work, @SaschaSchwarze0 took care. We can already ship for Build, after CLI repo(go.mod updates required). Blog post goes after, without the instructions for Operator(We will update it after Operator v0.13.0 release is completed)
Operator is getting closer.

On multi-arch support. @SaschaSchwarze0 and @Adarsh-jaiss would be presenting on their work on this next week. If you are interested on the topic, please take a look on where we are.

On CNCF application. The application is moving, we have been working on this, from our internal discussions with the TAG App Delivery Group to trying to figure out some of the initial feedback.


fix: always show unformatted date

No JIRA ticket avaiable

Key features

Consistent custom date range strings in tooltip

Description
Before, when setting a custom date range / defining a start and end date, after the first edit you would see a "pretty date" in the tooltip, but after each subsequent error, an unformatted date would show in that same tooltip. This PR makes the tooltip behaviour consistent by always showing an unformastted date. See this Slack thread for a full discussion.

Before fix
After fix

After first selection

After subsequent selections

Superceded


move from docker-compose to docker compose

Workaround: alias docker-compose to docker compose --compatibility "$@"

won't do :  we'll handle everything from python


WIP - Example of handling auth, supporting enable flag and test using go generated client

Example of handling auth, supporting enable flag and test using go generated client


Main dev

Update RunJobEvent.py to support new movers
Update RunJob.py to support new movers.
update movers to support stageout es to objectstore.
update movers to support stagein es from objectstore.
report external stageout time(time after athenamp terminated) in jobmetrics.
fix to report pilot substatus and fail state.

Great update thanks!


Improve build process

[x] Switch from webpack-stream to just webpack node.js API.
[x] Switch from browser-sync to webpack-dev-server for incremental builds
[x] Add HMR for CSS
[x] Add separate config for dist and dev builds with uglify js (covers #39 and helps with #33)
[x] Inject assets into index.html automatically (I'm to lazy to do this on my own hands)
[x] Add some notes into readme.
[x] Add vendor libs to separate chunk
[x] Add comments to webpack.*.config files in order to illustrate purposes of different settings.

This PR needs code review. Also will be glad to get some other suggestions.

@gdi2290 this PR need review. Could you check it?

@Hendrixer can you review

Maybe I should squash this?

LGTM


QFAPI could not load on latest Quilt

The bug report tells me to use the latest version 0.19.2, however I have updated to beta.7 XD.
https://pastebin.com/RyeRRFes

same issue here

There was an issue with the latest version of quilt_loader not appearing in launchers. It should be fixed now.


Setup of Travis CI

Child of #1
Creation of the Travis CI Project and the associated YML file.

Done. the base yml file is created and a simple push was used as a test.


is_key_down and is_key_pressed not working in 0.4.0 on macOS

With comfy 0.4.0, using the following code, nothing is printed when pressing spacebar. This bug doesn't exist in 0.3.1.
use comfy::*;

simple_game!("Bug Repro", setup, update);

fn setup(_c: &mut EngineContext) {}

pub fn update(_c: &mut EngineContext) {
    if is_key_down(KeyCode::Space) {
        println!("Space is down");
    }
    if is_key_pressed(KeyCode::Space) {
        println!("Space was pressed");
    }
}

Platform: macOS 14.5 (Sonoma)
Rust version: 1.78.0
I haven't tested other platforms.
Let me know if there's anything else I can provide.

same on arch linux


Fixed the NaturalIntSmall type to be >=0

Added a PositiveInt type
Added all combinations of (Natural|Positive, Int|Long, |Small)

:key: although I wouldn't mind a second opinion on the positive/natural naming split.

:+1:


Modifying min(dataarray) modifies dataarray

What happened:
Getting the minimum of a data array returns a reference to that minimum data point such that when modifying the minimum, the original data array is changed as well (same for max).
What you expected to happen:
Not sure if this is intended or a bug, but I expected an independent data array (the same as using dataarray.min()). This behaviour also differs from numpy (see below).
 Unfortunately, I don't think there's a way for us to fix this.
Be aware, though, that using the builtin min on both numpy.ndarray and xr.DataArray is really inefficient. Instead, please use np.min (or the min method) which is faster by several orders of magnitude and doesn't have that issue:
In [2]: n = np.random.randn(100000)
   ...: n
Out[2]:
array([-1.2070767 , -0.22600293, -0.73940662, ...,  1.46614658,
       -0.00230551,  0.38184079])

In [3]: x = xr.DataArray(n, dims="x")
   ...: x
Out[3]:
<xarray.DataArray (x: 100000)>
array([-1.2070767 , -0.22600293, -0.73940662, ...,  1.46614658,
       -0.00230551,  0.38184079])
Dimensions without coordinates: x

In [4]: %timeit min(n)
   ...: %timeit min(x)
12.6 ms ± 158 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
15.1 s ± 158 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [5]: %timeit np.min(n)
   ...: %timeit np.min(x)
46.9 µs ± 1.24 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
147 µs ± 931 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

In [6]: min_x = np.min(x)
   ...: min_x += 1000
   ...: x.min(), x.max()
Out[6]:
(<xarray.DataArray ()>
 array(-4.40926303),
 <xarray.DataArray ()>
 array(4.39461859))

@keewis do you any idea why the equivalent in numpy doesn't show the same result?
I was surprised to see this, though I guess it is somewhat of a corner case given how often stdlib functions are used.

that's because they are different functions: the builtin min function will use __iter__ while np.min is a ufunc. The implementation of __iter__ apparently returns views while np.min returns a instance of np.dtype, which we wrap in a new DataArray.


Added support for NETSTANDARD 1.0+ and PCL Profile 151

I've tested this on .NET standard profiles 1.0-1.5 as well as PCL Profile 151.
Now you can target .NET standard 1.0 and have the basic functionality but as you up your .net standard you get more functionality :)

@jchannon can you please test these changes as well :) I have this all working in our app.
@grumpydev can we get this merged in :)

@grumpydev can we get this merged :)

Do we need all that extra reflection stuff? Also, don't seem to be using the _genericMethodCache - is that intentional (because reflection is cached internally now), or an oversight?

@grumpydev yep it's a polyfil for netstandard 1.0-1.2 which doesn't have some of the types and may never but the functionality is there.
It may be nice if 3 months down the road we remove all the compiler directives except net standard: https://oren.codes/2016/06/23/portable-is-dead-long-live-netstandard/
That could be an oversight... I'm not sure I never added that or touched it.

This doesn't build for me... There's two definitions of ReverseTypeExtender that match NETSTANDARD1_6:
#if PORTABLE || NETSTANDARD1_0 || NETSTANDARD1_1 || NETSTANDARD1_2 || NETSTANDARD1_3 || NETSTANDARD1_4 || NETSTANDARD1_5 || NETSTANDARD1_6
	static class ReverseTypeExtender

...

#if (!NETFX_CORE && !PORTABLE && !NETSTANDARD1_0 && !NETSTANDARD1_1 && !NETSTANDARD1_2 && !NETSTANDARD1_3 && !NETSTANDARD1_4 && !NETSTANDARD1_5 || !NETSTANDARD1_6)
	static class ReverseTypeExtender

I assume || !NETSTANDARD1_6 is supposed to be && !NETSTANDARD1_6 on the last one.
Even after fixing that, there's still several build errors:
Severity	Code	Description	Project	File	Line	Suppression State
Error	CS0029	Cannot implicitly convert type 'TSource' to 'System.Reflection.MethodInfo'	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	611	Active
Error	CS1061	'Type' does not contain a definition for 'GetConstructors' and no extension method 'GetConstructors' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3525	Active
Error	CS1061	'Type' does not contain a definition for 'GetConstructors' and no extension method 'GetConstructors' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3979	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3695	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3703	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3703	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3841	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3887	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3887	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3917	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	4005	Active
Error	CS1061	'Type' does not contain a definition for 'GetGenericArguments' and no extension method 'GetGenericArguments' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	4008	Active
Error	CS1061	'Type' does not contain a definition for 'GetInterfaces' and no extension method 'GetInterfaces' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	4160	Active
Error	CS1061	'Type' does not contain a definition for 'GetMethod' and no extension method 'GetMethod' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3852	Active
Error	CS1061	'Type' does not contain a definition for 'GetMethod' and no extension method 'GetMethod' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3871	Active
Error	CS1061	'Type' does not contain a definition for 'GetMethod' and no extension method 'GetMethod' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3898	Active
Error	CS1061	'Type' does not contain a definition for 'GetMethods' and no extension method 'GetMethods' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	588	Active
Error	CS1061	'Type' does not contain a definition for 'GetProperties' and no extension method 'GetProperties' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	4107	Active
Error	CS1061	'Type' does not contain a definition for 'IsAssignableFrom' and no extension method 'IsAssignableFrom' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	1743	Active
Error	CS1061	'Type' does not contain a definition for 'IsAssignableFrom' and no extension method 'IsAssignableFrom' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	3456	Active
Error	CS1061	'Type' does not contain a definition for 'IsAssignableFrom' and no extension method 'IsAssignableFrom' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	4152	Active
Error	CS1579	foreach statement cannot operate on variables of type '?' because '?' does not contain a public definition for 'GetEnumerator'	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	4112	Active
Error	CS0103	The name 'AppDomain' does not exist in the current context	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	1355	Active
Error	CS0103	The name 'AppDomain' does not exist in the current context	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	1372	Active
Error	CS0103	The name 'AppDomain' does not exist in the current context	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	1386	Active
Error	CS0103	The name 'AppDomain' does not exist in the current context	ClassLibrary5..NETStandard,Version=v1.6	c:\temp\ClassLibrary5\TinyIoC.cs	1402	Active

Do I need to add any additional references to get it working on .NET Standard 1.6?

Yeah, that should probably be changed to just !NETSTANDARD

The type extensions are only for 1.3 and above. That's why those were on there.


logdirector's "Dirty Trick" just bit me.

I was struggling to configure logging for my library that uses Thespian, until I found it was because of this function, I believe:
https://github.com/thespianpy/Thespian/blob/4a7b5222764ec7a77c0ca6517edfeb973a154fad/thespian/system/logdirector.py#L46
logging.basicConfig(...) fails (for instance, you can't change format=...) unless you use the new force=True, but I'm not convinced that doesn't break something Thespian depends on, and I don't exactly understand what this hack is doing, nor why it's necessary.
I just wanted to bubble this up to your awareness.

For future reference, here is prior art within this library. I never stumbled across documentation on logging, but here are some references:
https://github.com/thespianpy/Thespian/issues/43
https://github.com/thespianpy/Thespian/blob/master/examples/hellogoodbye.py  (NOTE: logsetup.logcfg)
Here's how I solved it for my use case, of customizing the logging formatter:

logging.basicConfig(
    stream=sys.stdout,
    level=logging.DEBUG,  # Globally allow any level. Other loggers can narrow.
)
# Quiet the lib a little
logging.getLogger('Thespian').setLevel(logging.WARN)

def mk_logger(name, level):
    ''' A logger builder helper. The Thespian '''
    logger = logging.getLogger(name)
    handler = logging.StreamHandler()
    handler.setLevel(level)
    formatter = logging.Formatter('%(asctime)s %(levelname)s:%(name)s => %(message)s [%(pathname)s:%(lineno)d]')
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    return logger

# Tune this libs loggers as needed
my_logger = mk_logger('actor', logging.INFO)


Tests for time-source failing

Hi, when building spring-cloud-stream-modules the build fails (occasionally) at time-source.
The failed test shows:
Failed tests:
  TimeSourceIntegrationTests$TimeUnitPropertiesTests.test:65
Expected: a value equal to or greater than <500>
     but: <327> was less than <500>

Sometimes it is 323 instead of 327. I already got the build once to run through this module (but failed at another one...). I tried also building time-souce separately, same issue.

This issue was moved to spring-cloud/spring-cloud-stream-app-starters#81


Minor fixes and be session backend agnostic

Add the service parameter to retrieve_pt (bug indtroduced during code refactoring on commit 13dad5085a513fbc68f118b03e9423266ed82bd2)
Allow the CAS3 client to process Single Sign Out request
Make the SessionTicket and ProxyGrantingTicket classes independant from the session backend (until now the backend was supposed to be the database).

This merge request should fix issue #49

Thank you!


Adding support for temp input as kelvin

Modified print_usage() to reflect support
But no change to error messages
Resolves #12

This is awesome, thank you!!!! I'll incorporate this into an upcoming release with several other improvements, and I'll be sure to give you credit in the release notes. TY! 🙌


Updated README.md for v0.2 release

This PR includes:

Planned development activities
Features being considered for development.

[APPROVALNOTIFIER] This PR is APPROVED
Approval requirements bypassed by manually added approval.
This pull-request has been approved by:
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
Approval requirements bypassed by manually added approval.
This pull-request has been approved by:
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Is Better Respawn already online?

Building Better Respawn from scratch is cumbersome. I found there is a pre-built .jar mod file already in this link: https://www.curseforge.com/minecraft/mc-mods/better-respawn/files?version=1.19. Can I use it?

I found the pre-build jar file can make the game crash. I followed this comment (https://github.com/MineDojo/Voyager/issues/10#issuecomment-1565482721) to build the jar file.


Updated documentation for types/Union

Description
It looks like a copy / paste error, but I think the type of latest_media should be MediaItem, not AudioVideoImage from the previous example.
Types of Changes

[ ] Core
[ ] Bugfix
[ ] New feature
[ ] Enhancement/optimization
[x] Documentation

Issues Fixed or Closed by This PR
No issue opened
Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Thanks for contributing to Strawberry! 🎉 You've been invited to join
the Strawberry GraphQL organisation 😊
You can also request a free sticker by filling this form: https://forms.gle/dmnfQUPoY5gZbVT67
And don't forget to join our discord server: https://strawberry.rocks/discord 🔥


Repository Is Missing IPBOFileEntry

Was gonna make a fork and change the library for paramfiles to DZConfigTools to support the parsing of unbinarized config files, but when I opened the repository I happened to notice that BIS.PBO.IPBOFileEntry is not included in the repo. I would move that to the PboExplorer namespace if its not included by default in BisFileFormats.

I'm using my own fork as Braini01 seems not active/not accepting pull requests. I have a pending PR for 9 months, so I've give up.
https://github.com/jetelain/bis-file-formats

Just saw this now, cheers!


Update striped-categories.css

stripe subcategories too

Note: I use a dark mode with different colors, but I didn't change the colors in this code.

Fix applied


Drag and drop file

Description
Implement methods for NSOutlineViewDelegate to allow for file drag and drop. Also added alerts for replacing files/folders of the same name and when something throws an error like when dragging a folder and trying to drop it into one of it's own descendants
Related Issue

#1018

Checklist

[x] I read and understood the contributing guide as well as the code of conduct
[x] My changes generate no new warnings
[x] My code builds and runs on my machine
[x] I documented my code
[x] Review requested

Screenshots

https://user-images.githubusercontent.com/46465568/215415796-6e41afdb-77c4-4e22-8cde-3519ac6f3876.mov
https://user-images.githubusercontent.com/46465568/215415863-08fd8748-a8fa-4c27-9dfb-4a3f5559d893.mov

Looks good man! I am however not sure about replacing the whole folder when a duplicate is found. Maybe it's better to just forbid that action. @CodeEditApp/maintainers opinions?

Looks good man! I am however not sure about replacing the whole folder when a duplicate is found. Maybe it's better to just forbid that action. @CodeEditApp/maintainers opinions?

This is something that VSCode and Finder allows you to do

Agreed, that is the expected behavior. What usually happens is the error is recognized and the user can choose to either: cancel the move, keep both files and rename the incoming one, or replace the original one. I'm okay with opening another PR to handle that error.

This is something that VSCode and Finder allows you to do

Oh really? I've never used that action. Anyway, I think @thecoolwinter 's idea is good then. The replacing option is already implemented in this PR, so we only need an issue to add the "keep both files and rename the incoming one" option.

@matthijseikelenboom do you think we should implement it in this PR or add a new issue for that?

@matthijseikelenboom do you think we should implement it in this PR or add a new issue for that?

It’s really up to you. If you choose to do this work in a different PR to keep this one small, you might write an issue up to track it.

@austincondiff I'll create another issue and we can merge this one

@allcontributors add @neilZon for code


Use NodePool status conditions to capture failure scenarios

Description
What problem are you trying to solve?
Currently, there's ways in the provisioning loop that it's possible for a NodePool to not be eligible for scheduling with it. Right now, we either capture this through the GetInstanceTypes() call receiving a non-nil error or it not returning back any instance types from the call.
It's possible for the errors from the GetInstanceTypes() call to be transient and shouldn't be strictly the reason that we should ignore a Provisioner from scheduling. In cases where the error is transient, we should fall out of the provisioning loop and try the whole thing over again.
We should have first-class status conditions in the Provisioner for capturing dependent statuses that need to be fulfilled before the Provisioner can be considered "ready". Some examples of this are:

NodeClassReady
InstanceTypesFound

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Duplicate of #493, closing


Add support for other horizon functions e.g. evenly spaced in time

fibonacci
tribnoannci
factorial
evenly spaced


Leading space in generic parameter ignored by autoformat

Hi,
Version: VS2015/TS 1.5
In the code below,
interface Foo<T> {
}

let foo: Foo<  { bar: string }> = undefined

Autoformat (Cntrl+K, Cntrl+D) does not remove the space between Foo< and { bar. (It does remove any trailing spaces e.g. bar: string } __ >.)

Here's a slightly different case, where extra trailing spaces are not removed:
let publisher: {};

(<any>      publisher).subscribe(item => {

    console.log(item);
});

The spaces after <any> are not affected by autoformat, but any extra spaces before <any> are removed correctly.

//CC: @SaschaNaz, you might find this interesting.

Hmm, I'll take a look.

thanks @SaschaNaz!


[WIP] Integration test ManagedResource

How to categorize this PR?

/area dev-productivity
/kind enhancement
What this PR does / why we need it:
Which issue(s) this PR fixes:
Part for #4805
Special notes for your reviewer:
Release note:

NONE

/test pull-gardener-integration

/lgtm


Add datasetLabel to elements for tooltip templates

Example usage - for multitooltips in chart options:
{
  multiTooltipTemplate: "<%= datasetLabel %>: <%= value %>"
}

Resolves #408

Thanks for this. +1 vote for adding to the docs. This is just what I wanted to add the dataset label to the tooltip.

+1 on adding this to the docs -- it's still not there and I spent a ton of time looking for it. Thanks for a great tool otherwise!

{
multiTooltipTemplate: "<%= datasetLabel %>: <%= value %>"
}
This won´t work if your js code is for some reason inside a XSL file.
Because you have to substitute < for < and > for >

This should be in a docs


Migrate to JUnit 5

Changes proposed in this pull request:

Migrate all classes to JUnit 5
Remove JUnit 4 dependencies
Remove mockito-all-1.10.19 in favor of that is provided by Spring Boot (version 3)

Coverage remained the same at 95.814% when pulling 0e26ac14aac32ab8ad05dde348a15937925cd1e5 on vasilaio:upgrade-to-junit5 into c12fefc164c948ccb4a89d88c94d0f71bbeeeb23 on marcosbarbero:master.


pip module installs for OS X

As we discussed on Tuesday:
OS X comes with an older version of python installed, so when you install modules via PIP, you'll need to specify a particular version of python.  This seemed to finally work for me.
python3.6 -m pip install pyperclip
I also used "sudo -H" to install it as an admin in the home directory.  That was encouraged by a message spit out by python, but I see others discourage the use of sudo pip as a potentially unsafe security practice (sudo pip might allow malicious code to execute as a super-user).   Pyperclip is probably fine, but something to keep in mind with modules you cannot verify.

/close


Error in test_state when checking with free-flyer.

In GitLab by @proyan on Mar 8, 2019, 14:19
I added the following test in test_state to check for the cases where there is a freeflyer in the state.
`class StatePinocchioFFTest(StateTestCase):
from crocoddyl import loadTalosLegs
rmodel = loadTalosLegs().model
StateTestCase.NX = rmodel.nq + rmodel.nv
StateTestCase.STATE = StatePinocchio(rmodel)  `
I get errors.
I'm investigating why this happens.
======================================================================
FAIL: test_velocity_from_Jintegrate_Jdiff (main.StatePinocchioFFTest)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 126, in test_velocity_from_Jintegrate_Jdiff
"Velocity computed from Jdiff is wrong.")
AssertionError: Velocity computed from Jdiff is wrong.
======================================================================
FAIL: test_integrate_against_difference (main.StatePinocchioTest)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 36, in test_integrate_against_difference
"Integrate function doesn't agree with difference rule.")
AssertionError: Integrate function doesn't agree with difference rule.
======================================================================
FAIL: test_velocity_from_Jintegrate_Jdiff (main.StatePinocchioTest)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 126, in test_velocity_from_Jintegrate_Jdiff
"Velocity computed from Jdiff is wrong.")
AssertionError: Velocity computed from Jdiff is wrong.
======================================================================
FAIL: test_velocity_from_Jintegrate_Jdiff (main.StateTestCase)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 126, in test_velocity_from_Jintegrate_Jdiff
"Velocity computed from Jdiff is wrong.")
AssertionError: Velocity computed from Jdiff is wrong.
======================================================================
FAIL: test_integrate_against_difference (main.StateUnicycleTest)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 36, in test_integrate_against_difference
"Integrate function doesn't agree with difference rule.")
AssertionError: Integrate function doesn't agree with difference rule.
======================================================================
FAIL: test_velocity_from_Jintegrate_Jdiff (main.StateUnicycleTest)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 126, in test_velocity_from_Jintegrate_Jdiff
"Velocity computed from Jdiff is wrong.")
AssertionError: Velocity computed from Jdiff is wrong.
======================================================================
FAIL: test_integrate_against_difference (main.StateVectorTest)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 36, in test_integrate_against_difference
"Integrate function doesn't agree with difference rule.")
AssertionError: Integrate function doesn't agree with difference rule.
======================================================================
FAIL: test_velocity_from_Jintegrate_Jdiff (main.StateVectorTest)
Traceback (most recent call last):
File "/home/rbudhira/devel/src/loco3d/crocoddyl/unittest/test_state.py", line 126, in test_velocity_from_Jintegrate_Jdiff
"Velocity computed from Jdiff is wrong.")
AssertionError: Velocity computed from Jdiff is wrong.

In GitLab by @proyan on Mar 8, 2019, 15:19
mentioned in merge request !136

In GitLab by @proyan on Mar 8, 2019, 15:19
!136 deals with this issue.

In GitLab by @proyan on Mar 8, 2019, 15:19
closed


Terratest failing in modernisation-platform-terraform-lambda-function.

Expected Behavior
Terratest should run without errors.
Actual Behavior
Link to the error in question - https://github.com/ministryofjustice/modernisation-platform-terraform-lambda-function/actions/runs/11146181204/job/30979083841?pr=102#step:6:1058
Steps to Reproduce the Problem

Run the terratest workflow by creating a new PR for an unrelated change.
Test should fail with a similar error

Version
No response
Modules
modernisation-platform-terraform-lambda-function
Account
No response

We think issue has been resolved - @ASTRobinson ; can you confirm?

yes this issue is resolved, the docker image which the test uses has been fixed in the below PR:
https://github.com/ministryofjustice/modernisation-platform-instance-scheduler/pull/1246


Unable to execute script at line 224. undefined is not an object

Hello,
This extension is awesome by the way. Going to save me a lot of time.
When trying to render this current test animation, I am receiving the following error. Any idea what is causing this?
Thanks

@kaulandb hi
I don't see anything strange there.
could you send me the .ae file so I can take a look?

@bodymovin just emailed you the file. Thanks for your help and quick response!

i got this problem too, may i ask why= =
无标题项目.aep.zip


[Feature Request] az role assignment list/delete: Support --assignee-object-id

Related command
az role assignment list
az role assignment delete
Is your feature request related to a problem? Please describe.
https://github.com/Azure/azure-cli/pull/5273 added --assignee-object-id to az role assignment create to bypass the Microsoft Graph query, but --assignee-object-id is not added to az role assignment list and az role assignment delete. These commands still require resolving --assignee via Microsoft Graph.
If the logged-in account does not have permission to query Microsoft Graph, CLI can still recover and treat the provided ID as object ID: https://github.com/Azure/azure-cli/blob/f76cfd25180e32724976a9a6b579470b6df729c9/src/azure-cli/azure/cli/command_modules/role/custom.py#L1569-L1576
But, if CLI has no network connection to Microsoft Graph endpoint or fails to get an access token for Microsoft Graph (https://github.com/Azure/azure-cli/issues/30428), it has no way to recover.
Describe the solution you'd like
az role assignment list and az role assignment delete should support --assignee-object-id like az role assignment create, in order to fully bypass Microsoft Graph query.
Describe alternatives you've considered

Additional context

Thank you for opening this issue, we will look into it.


Changed example git clone URLs to use HTTPS.

Cloning with HTTPS is recommended compared to SSH as per github.
https://help.github.com/en/articles/which-remote-url-should-i-use
Cloning with SSH URL requires generating an SSH key and adding it to the GitHub account.
I believe using HTTPS URL consistently across the docs is much easier for beginners to follow along.

Thanks @carltongibson


Corrupted Unjoint Arabic Font Rendering

[X] You are using the latest [version]
[X] You are testing using the non-minified version of html2canvas and checked any potential issues reported in the console

Bug reports:
Arabic text is rendered bad. All letters are not joint and misplaced.
The bug -->

The correct -->

Specifications:

html2canvas version tested with: 1.0.0-alpha.10
Browser & version: Chrome Version 63.0.3239.132 (Official Build) (64-bit)
Operating system: Windows 10 64-bit

Hello
I'm facing the same issue
Did you find a workaround?
Many thanks
Regards

Not yet.

Hello @niklasvh
Can you please advise what is the status of this bug?
Many thanks
Kind regards

Hello @niklasvh , any updates regarding this issue?

any updates ?

Hi @niklasvh
It would be very nice from you to update the people facing this issue if there is a bug
This bug was already solved in a previous release but showed-up again the latest versions
It is a bit disappointing as html2canvas is a great tool and would be even greater when it is used in a wider scale
Thank you in advance for your feedback
Regards

I'm also facing the same issue. Somebody, please provide a solution. Thank you.

@tarekeldeeb are you using html2canvas along with jsPDF?

@yassM No, I am not using jsPDF.

@yassM No, I'm not using js PDF.

Actually the version (1.0.0-rc.1) is rendering Arabic normally in my case, the only issue was when using it alongside jsPDF.

I tried v0.5.0-beta4, v1.0.0-alpha.10(reported) and  v1.0.0-rc.1, they all have the same issue with my arabic app.
Can ionic framework be the root cause?

It can be, but it's probably the CSS, the library is really fragile when handling Arabic letters, any small thing can break the rendering like in your case, can you share a jsfiddle?

After many searches and trials. I concluded that v 0.4.1 is ok with arabic under the condition that:

All Divs with arabic text must have the style: text-align:right; (This is not intuitive)
This does not even work with v 1.x
http://jsfiddle.net/8ypxW/2022/

Can there be a fix for this?
[1] Implicit assumption of text right alignment when RTL is defined?
[2] Regression from 0.x to 1.x
Regards,

I find the same behavior with the latest release 1.3.2

@tarekeldeeb I had the same issue but if you remove the jsPDF library, the font will work fine. it's just the combination that is creating the problem.

I faced the same issue in version 1.4.1 and fixed it by using
letter-spacing: normal;

in the wrapping element


Remove version: Twinkstar.TwinkstarBrowser version 8.12.1000.2402

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://d1.twinkstar.com/win/Twinkstar_v8.12.1000.2402_ReleaseF32.exe
Response status code does not indicate success: 404 (Not Found).
(Automated message - build 896)


Fix Deprecated functions on SHVDN

Scaleform objects are now created by the string name
EnableControl was marked as obsolete and it was replaced by EnableControlThisFrame that does the same

Please note that I did not tested the commits in-game.

Yeah looks good, thanks for contributing!


gRPC on network manager

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #(issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Test A
[ ] Test B

/ok-to-test


Branch rename does not update the tracked branch in pull requests

Description
If you rename a remote branch through the Gitea UI, a pull request of this branch does not have its "pull from" branch renamed automatically. As a result, the PR becomes stale and no loger receives updates.
Maually altering the pull_request table record of this PR in the Gitea DB  is the current workaround to revive the stale pull request.
Gitea Version
1.22.1
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
Direct installation, not containerized
Database
PostgreSQL

I tested on my local and I see that If you change the name of a branch through Gitea UI that has a pull request, the pull request is getting broken. But I am not sure it is intended situation or not 🤔
@lunny I wonder if this is intended?


Use the latest dmutils.

Updated to the new dmutils and fixed the calls to .get_error_messages() that would have otherwise been broken.

:+1:


Add a option to skip the command if the file list is empty

:zap: Summary
Sometimes is very annoying compile the project just because you change the Dockerfile or a README.
Now the Command is only skipped if the {files} template is used, but sometimes is not possible to use it on the run configurations.
Behavior and configuration changes
Add a configuration to skip the command if the list of files is empty. Example:
pre-commit:
  parallel: true
  commands:
    compile_1st_suggestion:
      glob: "*.{ex,exs}"
      run: mix compile
      skip_empty: {staged_files}
      env:
        MIX_ENV: prod
    compile_2nd_suggestion:
      glob: "*.{ex,exs}"
      run: mix compile
      skip:
        - is_empty: {staged_files}
      env:
        MIX_ENV: prod

Hey @robsonpeixoto , I'm thinking of this for quite a long time. It feels like if you've specified the glob or exclude you definitely want to skip command if files are missing. For pre-commit hook it is {staged_files}, for pre-push it is {push_files}. What do you think if this happens implicitly? I think that's what many people expect as a default behavior without explicit skip option. :thinking:

Please, check it in a new release v1.3.6


Remove Auth and Data references

@elamalani : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

Merged in private fork.


Enable deferSurfaceCreation for ELEX

Elex crashes when creating some particles e.g. when using the Jetpack.
This problem only seems to affect nvidia.
deferSurfaceCreation fixes this behavior.

This is a known issue, see https://github.com/doitsujin/dxvk/issues/816.
deferSurfaceCreation only affects the creation of a Vulkan surface for the application window when starting the game, and should only be used when the game creates swap chains for different APIs on the same window. This is not the case for ELEX.

I don't know why deferSurfaceCreation helps but it does make the game playable.

This doesn't fix the root cause of the problem however.


[stdout] return exit code for stdout mode subcommands

Fixes #259

When runner reports "failed", sys.exit(1)
tests to support

Related: #291


Make classproperty decorator typed (mypy typing return annotations)

When using mypy over code that includes the classproperty decorator, an error will be shown that Untyped decorator makes function "..." untyped  [misc]. To fix this, every instance of the decorator should be associated with a specific type that it will return (i.e. the type of object that the function, that it wraps, will return). This makes use of the class-generics system of type annotations.

Hi thanks for this!  I still get a couple of errors when running this
through mypy - looks like some imports are missing and maybe a couple of
declarations need tweaking.  Would you have a moment to take a look so that
those are all fixed too?
classproperties/init.py:4: error: Cannot declare the type of a TypeVar
or similar construct  [misc]
classproperties/init.py:7: error: Free type variable expected in
Generic[...]  [misc]
classproperties/init.py:14: error: Name "Callable" is not defined
[name-defined]
classproperties/init.py:14: note: Did you forget to import it from
"typing"? (Suggestion: "from typing import Callable")
classproperties/init.py:14: error: Name "Any" is not defined
[name-defined]
classproperties/init.py:14: note: Did you forget to import it from
"typing"? (Suggestion: "from typing import Any")
classproperties/init.py:17: error: Signature of "get" incompatible
with supertype "property"  [override]
classproperties/init.py:17: note:      Superclass:
classproperties/init.py:17: note:          def get(self, Any, type
| None = ..., /) -> Any
classproperties/init.py:17: note:      Subclass:
classproperties/init.py:17: note:          def get(self,
owner_self: Any | None, owner_cls: type[Any]) -> T?
classproperties/init.py:17: error: Name "Any" is not defined
[name-defined]
classproperties/init.py:17: note: Did you forget to import it from
"typing"? (Suggestion: "from typing import Any")
classproperties/init.py:17: error: Variable "classproperties.T" is not
valid as a type  [valid-type]
classproperties/init.py:17: note: See
https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
classproperties/init.py:18: error: "None" not callable  [misc]
Thanks!
On Wed, 27 Dec 2023 at 01:52, CarrotManMatt @.***>
wrote:

When using mypy https://mypy-lang.org/ over code that includes the
classproperty decorator, an error will be shown that Untyped decorator
makes function "..." untyped [misc]. To fix this, every instance of the
decorator should be associated with a specific type that it will return
(i.e. the type of object that the function, that it wraps, will return).
This makes use of the class-generics system of type annotations
https://mypy.readthedocs.io/en/stable/generics.html.
You can view, comment on, or merge this pull request online at:
https://github.com/hottwaj/classproperties/pull/2
Commit Summary

bbc44fe
https://github.com/hottwaj/classproperties/pull/2/commits/bbc44fec920c74fba231abd98f9b8fe915dac1c3
Add type annotations for classproperty return type
a900139
https://github.com/hottwaj/classproperties/pull/2/commits/a90013934566973c8c04e4e558510ba71c353fa5
Fix incorrect method parameter names

File Changes
(1 file https://github.com/hottwaj/classproperties/pull/2/files)

M classproperties/init.py
https://github.com/hottwaj/classproperties/pull/2/files#diff-fe2294a7cafd91297c980fdb967234bb86d1758123c11945943273077fa69acf
(12)

Patch Links:

https://github.com/hottwaj/classproperties/pull/2.patch
https://github.com/hottwaj/classproperties/pull/2.diff

—
Reply to this email directly, view it on GitHub
https://github.com/hottwaj/classproperties/pull/2, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABK6JBJMP2JJFEQ6MCKZTQTYLN5OXAVCNFSM6AAAAABBDZXNV2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGA2TMOBSGMYTKNY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Whoops! I would normally have made the changes in Pycharm & run mypy over it myself, but since it was only a small change I used GitHubs web editor which lead me to forget some bits. That'll teach me to try to take shortcuts!
Should be all fixed now!

NP thanks!  I also needed to make the following change (sorry I would
commit myself but am having issues with github MFA at the moment), because
at least with the versions of python/mypy I am using self.fget has type None
--- a/classproperties/init.py
+++ b/classproperties/init.py
@@ -10,8 +10,9 @@ class classproperty(property, Generic[T]):
 Credit to Denis Rhyzhkov on Stackoverflow:

https://stackoverflow.com/a/13624858/1280629
"""

fget: Callable[[type | None], T]

def init(self, func: Callable[[type], T]) -> None:

def init(self, func: Callable[[type | None], T]) -> None:
super().init(func)

On Wed, 27 Dec 2023 at 13:01, CarrotManMatt @.***>
wrote:

Whoops! I would normally have made the changes in Pycharm & run mypy over
it myself, but since it was only a small change I used GitHubs web editor
which lead me to forget some bits. That'll teach me to try to take
shortcuts!
Should be all fixed now!
—
Reply to this email directly, view it on GitHub
https://github.com/hottwaj/classproperties/pull/2#issuecomment-1870286540,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABK6JBII5GZXRCPSFTZNEZTYLQLZXAVCNFSM6AAAAABBDZXNV2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZQGI4DMNJUGA
.
You are receiving this because you commented.Message ID:
@.***>

Oh yup, missed that one too, cheers! Any other issues or is it ready to merge now?

I think it is ready to merge, thanks!  I just need to sort my MFA issues so
I can log in and approve - should have time to do that tomorrow.  Cheers!
On Wed, 27 Dec 2023 at 16:37, CarrotManMatt @.***>
wrote:

Oh yup, missed that one too, cheers! Any other issues or is it ready to
merge now?
—
Reply to this email directly, view it on GitHub
https://github.com/hottwaj/classproperties/pull/2#issuecomment-1870461243,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABK6JBODACYCDZWMSPSVXDTYLRFEZAVCNFSM6AAAAABBDZXNV2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZQGQ3DCMRUGM
.
You are receiving this because you commented.Message ID:
@.***>

@hottwaj Any update on when you'll be able to merge this?

Done now, thanks for the reminder!


updated for Swift 2.0

Ok, ignore this one. Didn't see the other pull request which already fixes everything for Swift 2.


🐞 Opening a text file with non standard encoding appears empty

Description
I tried opening a file which somehow had scrambled encoding (Japanese Shift JIS displayed on macOS) and special characters like Ü and °.
Opening the file with CodeEdit results in an empty editor. Opening the file with any other App (XCode, CotEdit, ...) shows the file contents, but with a question mark symbol where the special characters like Ü should be.
I would expect CodeEdit to at least show the contents that are readable, and also show a question mark for unknown symbols. A completely empty file seems not right.
A bit to the background of the file: I'm not really sure how this encoding happened, since I'm not Japanese. The file originated from Windows, where all special characters (Ü, °) showed normally. The encoding displayed on Windows was either ANSI (which I think is an error) or, inside Eclipse IDE, ISO-81... I believe (I don't remember anymore and cant reproduce it). I then transferred it to my Mac, where the encoding displayed in XCode was Japanese Shift JIS with all special characters showing as question marks.
File download
Bug.cpp.zip
To Reproduce

Open the attached file

Expected Behavior
File should show content with some unknown symbols.
Version Information
CodeEdit: 0.0.3 alpha (32)
macOS: 13.3.1(a)
Xcode: 14.3
Additional Context
No response
Screenshots
No response

This is more of a feature that isn't implemented yet, see #1202.


Add CASTNET data

Add CASTNET site data into MELODIES MONET. These sites are selected to represent more regional scale ozone and as such are useful for making certain that model biases are not due to biases in the sampling site location.

I guess this is part of MONETIO AQS support


Browser Engine monitors causes out of memory over time.

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
When I configure the montor types to be Browser engine (Chrome/Chromium), after some time I get a lot of chromium processes in the container. After a few days this causes out of memory condition. In my opinion for some reason the chromium processes are not cleaned up after a check is being done.  I have 4 monitors using Browser Engine and after a few hours there are like 100s of chromium processes running.
👟 Reproduction steps
Normal installation with some monitors using Browser Engine monitor type.
👀 Expected behavior
Cleanup of (stalled?) chromium processes after a check is executed.
😓 Actual Behavior
A lot of chromium processes pile up after a few hours.
🐻 Uptime-Kuma Version
1.23.10, but was the same on 1.23.9
💻 Operating System and Arch
Docker on Debian 12.4
🌐 Browser
N/A
🐋 Docker Version
20.10.24+dfsg1, build 297e128
🟩 NodeJS Version
v18.18.2
📝 Relevant log output
No response

Duplicate of #3788


fix(plugin-chart-echarts): normalize temporal string groupbys

SUMMARY
#23339 introduced the possibility of normalizing non-UTC timestamps so that they produced correctly formatted timestamps. However, the normalizer wasn't being used in the ECharts plugin, causing string based non-timezone timestamps to display incorrectly when used as a groupby.
This adds a call to the normalizeTimestamp util in formatSeriesName to ensure that string based timestamps are normalized prior to being fed to the timestamp formatter.
AFTER
Now the timestamp is formatted correctly:

BEFORE
Previously the timestamp was assumed to be in local timezone, causing the formatted timestamp to be offset by the UTC offset (this was run in UTC+0200):

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Removing this PR from 2.1 since normalize non-iso timestamps is  is not in 2.1.0


About / further resources page

A little info page about the project, maybe linking to data and kindred projects, e.g.:

http://realerthinks.com/a-searchable-teeline-dictionary
https://github.com/adxsoft/TeelineMate

Plus open source commitment, always free, blah blah blah.

Done with 614ba53874cfd08b97a2fe468efe31be5883a65f, links to kindred sites are in the README


⚠ File access has degraded performance

In 51595bd, File access (https://fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 5740 ms

Resolved: File access performance has improved in 2c02896 after 8 minutes.


Cohere Chat API Integration

Problem
This PR is intended to add full support for Cohere to Canopy.
Solution
I have created Cohere specific classes, that work with the Cohere Python SDK. I have provided a Cohere specific configuration file, which can be used to load the Cohere classes and pass model parameters to them.
This is a work in progress PR, which I am opening now to start a discussion about how we can work around certain assumptions in the codebase, that seem to be OpenAI specific. The codebase is clearly intended to be very configurable and able to work with different LLMs, but I found it challenging to map some of the abstractions to work with the Cohere SDK.
Here are some issues that I have noticed:

The default integration with OpenAI makes a request to the chat completion API to request search queries that can be used to query Pinecone. It uses a prompt to do this. With the Cohere Chat API, there is a search_queries_only flag, which I believe is the preferred way to get the relevant search queries with Cohere. In order to be able to get the search queries the Cohere specific way, rather than with a prompt asking the LLM to return search queries, I created a ClientQueryGenerator class, which requests the search queries from the LLM class, rather than using the OpenAI specific function calling feature with FunctionCallingQueryGenerator. In order to keep it somewhat generic I called it ClientQueryGenerator, in the sense that the LLM client will get the queries.

The Cohere Chat API has roles USER and CHATBOT. There is not a system role, but the concept of a system prompt definitely exists in classes that are not OpenAI specific. In order for this to work Cohere Chat API, I am changing the system roles to USER.

The Canopy codebase has context related abstractions, but they are built around the assumption that the context will be appended as text at the end of the prompt. This may be the way OpenAI does it, but with the Cohere Chat API, it is possible to pass a documents parameter, which could contain the results from the Pinecode search. At the time of opening this PR, I do not have a clean solution for passing the snippets as documents to the Cohere Chat API. It effectively still works with the default behaviour of appending Context:  and then the JSON from StuffingContextContent.to_text(), but ideally we'd have a way to pass the JSON through to CohereLLM class, so it it could be passed to the API via the documents parameter. But I don't see a clean way to do that, since the context builder classes are set up to return text, and the context itself is not passed to the LLM class as an object, but rather text already appended to the system prompt. So there is not a clean way to be able to take JSON from the context class and pass it to the self._client.chat call.

At the time of opening the draft PR, it is still using OpenAITokenizer in the cohere.yaml file. I will work on adding a Cohere tokenizer class.

In this PR I have pulled in the changes from PR #194. I assume that PR will get merged first and then I will rebase when done with the draft PR.
Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Infrastructure change (CI configs, etc)
[ ] Non-code change (docs, etc)
[ ] None of the above: (explain here)

Test Plan
Describe specific steps for validating this change.

@scottmx81 You are raising a very good point about the current interface of BaseLLM. It was originally designed around the chat completion API of OpenAI, which was the first LLM we've implemented.
In the coming week, we will do a refactor of BaseLLM and change the chat() interface to take messages(), system_prompt and context arguments separately. The PromptBuilder logic that currently happens at the ChatEngine will move into OpenAILLM, and will be just one private case of how to send these 3 separate inputs to the LLM. This will allow you to utilize Cohere's API much more natively.
As for the QueryGenerator - feel free to just call it CohereQueryGenerator. We're considering another, separate refactor in which we'll incorporate the Query generation capabilities into the LLM classes themselves.

Hi @scottmx81,
Thanks again for raising our awareness to the incompatibility of the current BaseLLM interface with LLMs other than OpenAI's.
In the coming few days we will refactor BaseLLM's chat() interface, so it will take separate messages, system_prompt, and context arguments. The PromptBuilder logic which is now part of ChatEngine would move into OpenAILLM. This way each LLM derived class would define its own way for using these inputs, namely you could full utilize Cohere's chat() API.
As for QueryGenerator - feel free to just call it CohereQueryGenerator. We're considering to also move this functionality into the individual LLM class (though that will probably be a separate refactor).
On that note - we're deliberating whether all classes that derive from BaseLLM should implement enforce_function_call() (not just for query generation, but also for other general purpose functions).
Does Cohere have a similar concept?

@igiloh-pinecone Thank you for considering our PR and being open to refactoring.
As far as I am aware, Cohere does not have any sort of functional calling feature. With Cohere, it is possible to call custom connectors for RAG which can be configured through the Cohere website, but there is no function calling feature as currently exists with OpenAI, where you can provide a JSON schema for function calls and have the LLM request one of those functions be called. Therefore I don't think the enforce_function_call() method can be implemented for search or general purpose functions with Cohere.
I have rebased the branch as requested.
Regarding the CohereTokenizer class, Cohere is recommending that we use the Cohere API for tokenization. This is different from the Open AI code, which is using a Python library to do the tokenization. There are Python files on Hugging Face which will do tokenization for specific Cohere models, but for a low-maintenance solution it is being recommended that we use the API, which is kept up to date and should work for all Cohere models.
As a result of that, I have added tests for CohereTokenizer under system tests, instead of unit tests, since it depends on the API and having valid API credentials. The tests that I added are largely copy/pasted from the Open AI and base tokenizer tests. I don't love copy/pasting but I don't know that it is appropriate for the "system" tests to be dependent on the unit test files. Please let me know if what I did is ok or if you think TestCohereTokenizer in the system tests should be inheriting from BaseTestTokenizer in the unit tests.

Hi @scottmx81 thanks for your contributions! see PR #231 which separates the params for the LLM chat completion call. It will probably merge in the coming days, but you already can go ahead and adjust your PR with it

I have begun updating the PR to work with the system_prompt and context arguments that are being passed to the LLM class now. Changing it to use the system_prompt was pretty straight forward, and I have it being passed as preamble_override to the Cohere Chat API.
I have found that working with the context argument is still less than ideal, and I don't love the solution that I currently have to read from it and pass as documents.  I was trying to explain to @giannis2two today the problem I am currently facing, and will describe it here for the benefit of others.
The issue right now is that the Context model only has a Context.to_text method, and there is no other common interface to pull out the documents or snippets. The code as I have it right now does get the snippets and pass them as documents, but it does so in a way that is not very clean. Because there is no interface to get the snippets, I have it attempting to parse the JSON from the to_text() method, and if it is successful, it loops over the items in the context, and if it sees a snippet key, it appends that snippet object to the documents list. This works but it is not a clean solution.
The reason is because the context engine can be configured, and there is no common interface that the different engines must implement to return the snippets. The only method to get at them from context is to_text(), or going through context.content, and pulling out snippets. But because there is no common interface, and the context engine is configurable, it's not a great idea to be looking for snippets this way. I think it would be nice if there was a way to get those snippet objects through a common interface.
For the benefit of @giannis2two and anyone else interested in this issue but has less familiarity with the codebase, I'll show an example of what could be returned from context.to_text():
(Pdb) context.to_text()
'[{"query": "Python function result caching based on arguments", "snippets": [{"source": "https://docs.python.org/3/library/statistics.html", "text": "

\\n
\\n
The final prediction goes to the largest posterior. This is known as the\\nmaximum a posteriori or MAP:
"}, {"source": "https://docs.python.org/3/library/zoneinfo.html", "text": "Configuring the data sources.
\\n

"}, {"source": "https://docs.python.org/3/library/sysconfig.html", "text": "Current installation scheme: \\"posix_prefix\\""}, {"source": "https://docs.python.org/3/library/pickle.html", "text": "
Changed in version 3.8: The default protocol is 4.
\\n
\\n

"}, {"source": "https://docs.python.org/3/library/graphlib.html", "text": "prepare() previously.
\\n

"}]}]'

What it is doing in the current version of this PR is parsing this JSON, then looking for the snippet array, and then including those as the documents. It works OK. But this is tying the llm/cohere.py module to internal details of StuffingContextContent class. In theory, users are not required to use StuffingContextBuilder, since it can be configured to something else in the YAML config file, although currently StuffingContextBuilder is the only context builder class that exists. But since it is set up in a way to be configurable by the user to something else, it's not right for the llm/cohere.py code to be assuming that StuffingContextBuilder is being used. In my opinion it would be ideal for there to be another way to get at the snippets. For example, if there were a snippets property on the canopy.models.data_models.Context model itself.
When I go through context.content, instead of parsing the JSON from .to_text(), I can see the models ContextQueryResult and ContextSnippet. At first glance it would appear that these define a common interface, but upon further investigation I see these are specific to canopy.context_engine.context_engine.stuffing, as such they aren't really common models/interfaces that other (future) context engines would use, and therefore it's not really appropriate for code in llm/cohere.py to be specifically looking for them. I was thinking that it might be appropriate for those to be in canopy.context_engine.context_engine.base or canopy.models.data_models, so it wouldn't be as "wrong" for the CohereLLM class to be looking for them (such as with an isinstance check).
(Pdb) context
Context(content=StuffingContextContent(__root__=[ContextQueryResult(query='Python function result caching based on arguments', snippets=[ContextSnippet(source='https://docs.python.org/3/library/statistics.html', text='

\n
\n
The final prediction goes to the largest posterior. This is known as the\nmaximum a posteriori or MAP:
'), ContextSnippet(source='https://docs.python.org/3/library/zoneinfo.html', text='Configuring the data sources.
\n

'), ContextSnippet(source='https://docs.python.org/3/library/sysconfig.html', text='Current installation scheme: "posix_prefix"'), ContextSnippet(source='https://docs.python.org/3/library/pickle.html', text='
Changed in version 3.8: The default protocol is 4.
\n
\n

'), ContextSnippet(source='https://docs.python.org/3/library/graphlib.html', text='prepare() previously.
\n

')])]), num_tokens=384, debug_info={'num_docs': 5})

In other words, it seems like I could just loop over context.content.__root__ and get the snippets from the ContextQueryResult objects, but the point I'm trying to explain is that there's no guarantee that will work with other context builders, since the context class is configurable in the YAML config file, and it might not be StuffingContextBuilder. So it would be nice if there was a common interface to get them instead of accessing "private" data in the stuffing context classes.
I'd appreciate any direction from the Canopy team about whether it's OK to get the snippets the way I have it, or if you would agree that a common interface to get snippets would be a good idea.

I have found that working with the context argument is still less than ideal, and I don't love the solution that I currently have to read from it and pass as documents. I was trying to explain to @giannis2two today the problem I am currently facing, and will describe it here for the benefit of others.

Hi @scottmx81, thank you very much for your feedback!!
You are absolutely correct that at the time being, the only "guaranteed" interface for Context is its .to_text() method. This was by design - under the assumption that all LLMs eventually represent the context as a single contiguous array of tokens. I'm guessing Cohere's LLM implementation eventually does the same - it simply happens on the server side, using dedicated document delimiters etc.
It might very well be that in the future once we start incorporating more advanced ContextBuilders, we would need to better define the interface of Context. But at this current point in time this is still undecided.
For the time being, I think we are perfectly happy with a solution that does something like
if isinstance(context.content, StuffingContextContent):
    # Use the structure of StuffingContextContent to build documents
    documents = ...
else:
    # Assume unknown JSON structure
    documents = json.loads(...)

Or even a more extreme
if isinstance(context.content, StuffingContextContent):
    # Use the structure of StuffingContextContent to build documents
    documents = ...
else:
    raise NotImplementedError("Cohere LLM is currently supported only with....")

Does that unblock you? Would you like to further discuss together?

@igiloh-pinecone Yes, this works. I will update the PR today. Thanks.

@scottmx81 thank you again for all of your efforts and dedication on this PR!!!
Your continuing effort hasn't gone unnoticed, and we truly appreciate your contribution.
While giving the PR one last glance before approving it, I noticed some possible improvement for Tokenizer testing. To avoid another round if reviews and fixes - I simply opened a change suggestion. Let me know what you think.
Looking forward already for merging this PR!

@scottmx81 @giannis2two
I just tested this branch manually, and I believe there is a bug in CohereQueryGenerator.
It seems that when search_queries_only=True, the model completely ignore the message= argument, and only looks in the chat_history. So the for first message in every new chat conversation - no queries are generated (an empty list is returned).
I have re-tested this several times, and it seems to be a consistent behavior. Can you please check before we merge?

@scottmx81 @giannis2two I just tested this branch manually, and I believe there is a bug in CohereQueryGenerator. It seems that when search_queries_only=True, the model completely ignore the message= argument, and only looks in the chat_history. So the for first message in every new chat conversation - no queries are generated (an empty list is returned).
I have re-tested this several times, and it seems to be a consistent behavior. Can you please check before we merge?

Ack. Haven't observed this behavior personally, can be due to a recent update. Will look into it with Scott.

@scottmx81 @giannis2two I just tested this branch manually, and I believe there is a bug in CohereQueryGenerator. It seems that when search_queries_only=True, the model completely ignore the message= argument, and only looks in the chat_history. So the for first message in every new chat conversation - no queries are generated (an empty list is returned).
I have re-tested this several times, and it seems to be a consistent behavior. Can you please check before we merge?

Ack. Haven't observed this behavior personally, can be due to a recent update. Will look into it with Scott.

@giannis2two, sorry, never mind.
The result I got does seem to be some sporadic behavior, which depends more on the context of my message, not a consistent behavior. My bad...
So everything SGTM. Merging!
Thank you @scottmx81 and @giannis2two for this elaborate effort!

Thank you for the help everyone. This was a loaded effort! Looking forward to working more together.

@igiloh-pinecone I see the failure. I think it's because there is no __init__.py file in tests/system/tokenizer/. I will resolve the issue.

@igiloh-pinecone I pushed a fix. I confirm that I can run pytest tests/system/tokenizer/test_cohere_api_tokenizer.py successfully in my local environment, so I think we should be good to try the merge again.


Control TextField invalid state and helpText

What RMWC Version are you using [major.minor.patch]:
5.5.1

Name your build system [Webpack, Rollup...]:
Webpack

Describe the bug with as much detail as possible:
Inability to control invalid state and/or helperText to show/not show when I want to,
specifically based on Formik error state or related logic.

What happened, and what was supposed to happen:
If I'm reading right there seems to be a way to override deferring to native validation state:
useNativeValidation(false) in mdc-web? Though... i do like using the native validation
popover and having that just work (would calling this method turn that off?).

Maybe something related to this discussion?
https://github.com/material-components/material-components-web/issues/4574
Mainly I don't like the UI showing red while the user is typing and therefore already having their input in a valid state. Causes cognitive dissonance with them thinking something is wrong.. not changing state till they blur the field.
Demo in code sandbox:
https://codesandbox.io/s/dark-firefly-zfcvz
See last example on this page:
https://material-components-web.appspot.com/text-field.html

I haven't really gotten very much into the built in validation. Based on the thread you sent, you can probably get a reference to the RMWC input using inputRef and controlling the validity manually.

@cdock1029 I'm clearing out some old issues and took another look at this one. I guess I don't understand the exact case. When I went to the sandbox it worked like I would expect it to, a little more clarity would help.

2 scenarios, different effects:

Click into the text field to focus it. Then, without typing, click out of it.
The field shows red outline & invalid message ("Message text required").
This is expected.
Now click back in, and start typing. The invalid message goes away (because this field is controlled.)
But the outline is still red. So the user is doing what they should, but is still seeing error outline.

Type text into the field, then click off. Red outline goes away, and invalid message is not present.
Works as expected.
Click back into field. Erase all of the text. Red outline appears, as well as invalid message. Type again, outline disappears and message. This is how I would expect it to always work. When the invalid state no longer applies, message AND outline both go away.

It seems the outline is somewhat controlled internally by mdc? Basically UX seems ideal if scenario 2 always applied and both error signals (color & message) are synced.
Perhaps I am using this library & Formik incorrectly, so let me know if you have any thoughts.


Add: update the bookings data when create, edit and delete appointments  from calendar

Update the appointments data that  CalendarContainer provide to the Calendart using the onBookingsDataChange inside the calendar grid.

Completed in #111


Add extension setting field for indicating it may be influenced by a deprecated/renamed setting

We'd like to rename some settings in our extension, without having to rewrite users settings files.  We'd like to use deprecationMessage, and would like to fall back to the old setting if the new setting is not set (by using WorkspaceConfiguration.inspect()).  I believe we would need a minor addition in order to make the settings UI more user-friendly when renaming settings and falling back to old settings when not present.
Could we get an additional field in package.json for settings (configuration.properties), with which we can specify a deprecated setting that may influence the (new) setting if unset/default?  In settings UI, display an additional message for the new setting indicating its effective value may be influenced by a deprecated setting (and perhaps a link to the deprecated setting, and a button to remove the deprecated setting value).  For example, in the case below the effective value of the setting will be "Enabled" because the old setting is set to "Enabled", and the new setting is unset (It's default is "EnabledIfIncludesResolve", which is displayed also when the setting is unset, but is not the setting we would use).

Showing this message is a simple solution.  A more complicated solution might be to somehow reflect in the new setting what the effective value is when unset.  But, it's  conceivable that a newer setting does not map directly to a deprecated setting, or perhaps multiple deprecated settings may influence the behavior of a new setting, or there is otherwise not a clear relationship between old and new settings.
You might also consider not showing a deprecated setting in settings UI when there is an associated newer setting (and it is set to something).  And, perhaps store the default value (instead of clearing out the value, which is the current behavior) if a newer setting (with associated deprecated setting(s)) becomes set to its default value via the UI.
I might be over thinking this, but I've tried a number of approaches.  If there is a proper way to deprecate settings and fall back to them when new settings are not present, that does not break the setting UI experience, please let me know.

You could add that message to the normal setting description, right? Or do you want it to only show up when the deprecated setting is set?
What I would do here is set the new setting to have the value that does whatever the deprecated setting does, then remove the deprecated setting. This would let you make a clean break and get the user onto the right setting. But I think we have used a variety of strategies in vscode, including getting rid of the deprecated setting with no automatic migration to a new setting (especially when behavior has changed and it's hard to know what the user will now want) and doing the same as what you want to do except with no message pointing from the new setting to the old setting.

You could add that message to the normal setting description, right? Or do you want it to only show up when the deprecated setting is set?

Yes to both.  We could explain in the description of the new setting that a deprecated setting may actually be used despite the new setting being displayed as set to default value in settings UI.  But, it would distract from the setting description, and it would seem better if a message to that effect were only displayed when it's an issue that should be addressed, and highlighted as such.  (Difficulty with configuration is our top user-reported issue).

What I would do here is set the new setting to have the value that does whatever the deprecated setting does, then remove the deprecated setting.

We were trying to go the deprecationMessage route, but may need to go the rewrite-settings route to avoid confusion in settings UI.  There were also concerns about what happens if reverting to a prior version of our extension, or users sharing or checking in settings files and not all users using the same version.  If something like this suggestion were available, we'd prefer to allow the user to own modification of their own settings.

a deprecated setting may actually be used despite the new setting being displayed as set to default value in settings UI

Keep in mind, there are other cases where the value displayed may not be the one that is used right now, it can be overridden by workspace or folder settings, or language-specific setting overrides. So in theory, users should be used to thinking of the settings UI that way, but the info we want to convey is complicated.

Planning to do for this month:

Adding a link to another setting in the deprecation message
Fix some minor issues around clicking those links

Verify

markdownDeprecationMessage exists, and when set, will appear rendered as markdown in the settings UI but as plaintext elsewhere
deprecationMessage can also be set at the same time, and will be used in hover/problems view while the markdown version is used in the settings UI
clicking setting links in deprecationMessages works

@roblourens The recent changes do not address the issue this was opened to track.  Could you please re-open?
We'd like to be able to rename some settings and provide backwards compatibility for the old settings names for some time.  Doing this would seem to involve using the old setting if explicitly set when the new setting is not explicitly set (is undefined).
In a nutshell, the issue is apparent in the following scenario:
        "test-old": {
          "type": "boolean",
          "default": false,
          "description": "The old setting",
          "deprecationMessage": "This setting is deprecated",
          "scope": "resource"
        },
        "test-new": {
          "type": "boolean",
          "default": false,
          "description": "The new setting",
          "scope": "resource"
        }

When settings are set like so:
    "test-old": true

The effective setting in the above case is: true
However, in settings UI, the following is displayed to the user: (apparent false)

The issue is that the new setting appears to be disabled.  The old setting (in this case the equivalent setting, just renamed) is still present, so takes precedence over the non-existing new setting.  UI for the old setting may not be displayed anywhere near the new setting in the UI.  This is further complicated by the fact that the settings UI will undefine a setting when the user sets it to its default value.
The ask here is for a message on the new setting indicating that an old setting may actually be taking precedence, and link to that old setting.  It wouldn't be necessary to display that message all the time.  Rather, it could be only displayed when there is a value for the old setting, and the new setting is not defined.
i.e.:
        "test-old": {
          "type": "boolean",
          "default": false,
          "description": "The old setting",
          "deprecationMessage": "This setting is deprecated",
          "scope": "resource"
        },
        "test-new": {
          "type": "boolean",
          "default": false,
          "description": "The new setting",
          "deprecates": [ "test-old" ],
          "scope": "resource"
        }

Note: The reason it's not ideal to put a "markdownDeprecationMessage" on the new setting is that it marks the new setting as deprecated as well.  So, the settings UI does not display an entry for it if not already explicitly set.

I understand what you were asking for, but I don't think it makes sense for us to support that use case. I'm hoping that https://github.com/microsoft/vscode/issues/91618#issuecomment-615895993 will help a bit, sorry that I can't do more.


Function name as part of errors

What would people think about including (the name of) the called function in error values?
E.g. most error values could include a field of type cryptoki::context::Function. The error message could then look like Function::Login failed: RvError::PinIncorrect: The specified PIN is ....
Without the function name, error messages are less useful and callers of the library can't simply propagate errors. Instead they will likely create their own error types that include the function name in some way or another.

Hey,
Sorry for the awful delay in replying. Yes, that sounds quite useful, though I'm not sure I fully understand what you'd like tracked. The issue is mostly that the native API of cryptoki does not necessarily correspond 1-to-1 to PKCS11 operations, so we wouldn't be able to assign a Function::... to every public operation in cryptoki (and we sometimes have multiple methods calling the same PKCS11 operation, which would also confuse things). But what we could do is for every failure coming from the actual PKCS11 backend, we could also pass along the Function::... which generated it (and add that to the Display of Error). Would that be enough to cover your use-cases?

Hmm, looking through the variants, I think Function would also make sense on NullFunctionPointer - the other seem to be fairly operation-agnostic.

Done in https://github.com/parallaxsecond/rust-cryptoki/pull/147 as requested. Thanks @ionut-arm , you're the best!


Upgraded automerge-rs and my old data does work anymore

I upgraded from 14d92e513c1d7f9a66cdce7b6894b5bb17df32d6 to cf2a5125a198653b83490b2c996e4f6982f98e57 and now my data does not work anymore. I thought the data format is stable now.
I attached my binary here automerge-binary.txt

I can't seem to get that to load with 14d92e5. I also can't get it to load with the javascript implementation. Any chance you've attached the wrong file?

Did you copy the byte-Array content from within the txt file to create a document or just load the file?

I just assumed it was a binary automerge file that happened to be named .txt :slightly_smiling_face: . Can you post a raw binary to avoid any ambiguity.

Ok, Here is a file directly from disk containing all change. I just renamed the suffix to txt.
Places.txt

What's the error you're getting when loading?

I don't get any error because I use the C API.

I think what you are running into is a result of the fix for #240. This is a backwards incompatible change and any documents generated with the old version of automerge will not decode with either the fixed version or the javascript version. Fixing old documents is going to be tough if you're using the C backend. If you're using the automerge backend you could use the load_document_without_hash_verification to load the old document and then save to save it as a new document in the correct format.

Ok. Thanks for clarification.


Glitch with tokens

javax.security.auth.login.LoginException: The provided token is invalid!
at net.dv8tion.jda.core.entities.impl.JDAImpl.verifyToken(JDAImpl.java:244)
at net.dv8tion.jda.core.entities.impl.JDAImpl.login(JDAImpl.java:134)
at net.dv8tion.jda.core.JDABuilder.buildAsync(JDABuilder.java:541)
at net.dv8tion.jda.core.JDABuilder.buildBlocking(JDABuilder.java:582)
at net.dv8tion.jda.core.JDABuilder.buildBlocking(JDABuilder.java:613)
at net.loreofcrafters.cloud.Cloud.main(Cloud.java:16)
That is the error I keep getting, however, the token is correct. My code:
package net.loreofcrafters.cloud;
import javax.security.auth.login.LoginException;
import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.exceptions.RateLimitedException;
import net.loreofcrafters.cloud.events.HelpCommand;
public class Cloud {
public static JDA api;

public static void main(String[] args) {
	try {
		api = new JDABuilder(AccountType.BOT).setToken("REMOVED FOR SECURITY").buildBlocking();
		api.addEventListener(new HelpCommand());
	} catch (LoginException | IllegalArgumentException | InterruptedException | RateLimitedException e) {
		e.printStackTrace();
	}
}

}

Why did you even create this Issue?

I had an issue?

Well if you had an issue that was resolved prior to you creating a issue on GH (this issue was instantly closed), then just don't post it at all

This is not a support forum.  This is meant for bugs, feature requests and at least more complicated questions

It wasn't instantly closed and maybe you don't need to be rude when responding.


Feature Proposal: Orderability of Routes

Hi,
laravel is great and the package system also allows to develop good modular applications, super!
But currently the package system has one big deficiency that routes (added by a Package's ServiceProvider) can not be "positioned" in the list of routes. What would be required for a lot of packages (like cms'es) and use cases. For example having a "Catch All Route" is a must in lots of applications and the current system does not allow to have a working "Catch All Route" defined (either by the application itself or by a package).. And in general, orderability or routes is a must for any real plattform/framework.
Someone having the problem too (I am not the only one): https://laracasts.com/discuss/channels/laravel/cms-catch-all-route-conflicting-with-serviceprovider-routes
Proposal:
Adding a further optional parmater like "order" into the route methods parameter array like:
Route::get('foo/{slug}', ['order'=>100, 'uses=>''PostController@show');
To avoid any performance hit for sorting, when the parameter array is parsed and a order parameter is found, then set an internal flag, that ordering is enabled/required. So only if one uses the features (by setting at least one 'order'=>) theres the performance penality of sorting.
(Or as fallback, at least allow to specify some positions like "top" or "bottom" (on the route list). It at least allows for one package to deterministically put a rule at top or bottom, what will most likely be the most important use-case. However ordering would be much more versatile und usefull).
I think this would add great benefit to laravel as a plattform (even wordpress has this, although WP does not have a public router like laravel)...
Thanks!

This will cause a complete mess in developer's routes files (consider working in a non-perfect team or with some novice who didn't understand original routes logic). And at some time in a big project (200+ routes) it will cause a great headache to find some route that is blocking other.
The reason that WP has this is that there may be a lot of modules installed which route ordering cannot be controlled (because people who use it sometimes even don't know how it works).

thanks for your comment. Yes this is in important aspect but can be very simply resovled by effectively only sorting those, that have a number. Everything else is kept in the order it was added (this is indeed an important requirement.)
I was really like the packages architecture and started to "Modularize" my whole application. I think this is a very good practice for Laravel too. And would very much improve the eco-system with more modules (I built a cms and every feature will now be a module.  I plan to release them also as standalone OSS package. So I think more development in laravel should be made in packages not monolithic big apps). And in this regard WP and laravel will then be the same, having lots of packages and this logic is quite important then.

Sorry, not planned atm.


[proposed spec change] subscribe to whole subtree of container

no need to review this now, just documenting that this is something we're experimenting with in https://github.com/inrupt/websockets-pubsub

See also #180

Do not merge unless NSS also implements this.

Thanks for clarifying the recursive part, @michielbdejong.
At this point, I want to express my concern regarding the number of notifications that will nee to be generated by the server, and processed by the receiver.
If we want recursive notifications, we might want to make such recursive subscriptions a) explicitly opt-in (so non-recursive is also still possible) and/or b) optional for the server.

Yes, I see your point. But note that notifications will only be sent for resources that the app has read access to.
And even without that change, it's not safe to assume that the number notifications to be sent will not be prohibitive, so this will generally increases the number in practice, but the worst-case number (number of resources in a single folder that the client is subscribed to) was already huge.

But note that notifications will only be sent for resources that the app has read access to.

That doesn't necessarily make it better for the server though, because now every change within a subscribed subfolder should be ran through the ACL process.

the number notifications to be sent (number of resources in a single container that the client is subscribed to) might be prohibitive, so this will generally increases the number in practice, but the worst-case number was already huge.

Yes, but it used to be the case that you needed to do a lot of actions to get a large volume; now a single action can get you a large volume. That works both ways.
This reinforces my belief that we should design an update subscription mechanism instead of extending a quick hack that happened to be built at some point (https://github.com/solid/solid-spec/pull/179#issuecomment-497297385).

every change within a subscribed subfolder should be ran through the ACL process.

that's already the case right? also if container subscription is not recursive?

design a proper notification mechanism from scratch

Sure, go ahead and propose something! Let me know if you want input. This PR just documents what inrupt/pod-server currently does.


Question about upload dir

Hello
As mentioned here in documentation about uploadDir:
Sets the directory for placing file uploads in. You can move them later on using fs.rename(). The default is os.tmpDir()
The question is : is possible or correct to get uploadDir as part of request and set form.uploadDir  during field processing ? Or the only way is to rename later as mentioned above .
Thanks in advance

If you want custom folders for each file, you can replace path of file in form.on('fileBegin'),
and make sure the parent folder exists. Here is a raw example:
    form.on('fileBegin', function (name, file) {
      let folderPath = "yourTargetPath";
      fse.ensureDirSync(form.uploadDir);
      file.path = path.join(folderPath, "yourTargetFileName");
    }

Where that fse is the fs-extra package.


Stop watch example not clearing the handle of setInterval

It could be a detail but, I just tried this example:
https://beta.reactjs.org/learn/referencing-values-with-refs#example-building-a-stopwatch
import { useState } from 'react';

export default function Stopwatch() {
  const [startTime, setStartTime] = useState(null);
  const [now, setNow] = useState(null);

  function handleStart() {
    // Start counting.
    setStartTime(Date.now());
    setNow(Date.now());

    setInterval(() => {
      // Update the current time every 10ms.
      setNow(Date.now());
    }, 10);
  }

  let secondsPassed = 0;
  if (startTime != null && now != null) {
    secondsPassed = (now - startTime) / 1000;
  }

  return (
    <>

Time passed: {secondsPassed.toFixed(3)}

      <button onClick={handleStart}>
        Start
      </button>
    </>
  );
}

And realized there is no clear interval, this means that every time you click on start, you add a new interval (= memory leak)
the code should be something like:
import { useState, useRef} from 'react';

export default function Stopwatch() {
  const [startTime, setStartTime] = useState(null);
  const [now, setNow] = useState(null);
  const handle = useRef(undefined);

  function handleStart() {
    // Start counting.
    setStartTime(Date.now());
    setNow(Date.now());
    clearInterval(handle.current);
    handle.current = setInterval(() => {
      // Update the current time every 10ms.
      setNow(Date.now());
    }, 1000);
  }

  let secondsPassed = 0;
  if (startTime != null && now != null) {
    secondsPassed = (now - startTime) / 1000;
  }

  return (
    <>

Time passed: {secondsPassed.toFixed(3)}

      <button onClick={handleStart}>
        Start
      </button>
    </>
  );
}

But then you introduce the useRef which is probably not what you want at this stage of the docs.

Sorry, I must be tired…
https://beta.reactjs.org/learn/referencing-values-with-refs#example-building-a-stopwatch:~:text=returned by the-,setInterval,-call when the


Interplay between Brain Behavior & Cognition

Title
What do we really know about the interplay between brain, behavior, and cognition from childhood to early adulthood? Playing with existing shared simulated datasets
Short description and the goals for the OHBM BrainHack
As a part of a study to examine the interplay between brain, behavior, and cognition, seven sites internationally have simulated longitudinal datasets of how they envision these interactions to occur. Each site generated three sets of of data, each with 10,000 participants over seven waves, ranging from 7 to 20 years of age. Each site generated these datasets independently and our keeping the key to what they embedded into the data secret. The goal of this brainhack project is to try and determine the hidden developmental treasures hidden within each dataset.
Link to the Project
https://socoden.github.io/Simulation/
Image/Logo for the OHBM brainhack website
https://github.com/tjhwhite/tjhwhite/blob/main/Brainhack_Longitudinal_Logo.png
Project lead
Tonya White
GitHub Account: tjhwhite
Discord Acct: tjhwhite
Main Hub
Seoul
Link to the Project pitch
No response
Other hubs covered by the leaders

[X] Seoul
[ ] Hybrid (Asia / Pacific)
[ ] Hybrid (Europe / Middle East / Africa)
[ ] Hybrid (Americas)

Skills
Knowledge of either R or python and some background and knowledge into longitudinal statistical models are welcome.
Recommended tutorials for new contributors
No response
Good first issues
No response
Twitter summary
Extracting the interplay between brain and behavior in simulated longitudinal datasets of development... A Brainhack adventure!
Short name for the Discord chat channel (~15 chars)
DevTrajectories
Please read and follow the OHBM Code of Conduct

[X] I agree to follow the OHBM Code of Conduct during the hackathon

Considering the proposed title is long, we will use the issue title instead (Interplay between Brain Behavior & Cognition). Please ping us if you like to change this tile.

@tjhwhite Many thanks for submitting your Hacktrack project for Brainhack 2024! Other than the change of title, the project is good to go and will soon appear on the website. Looking forward to seeing you in Seoul.


Move hackathon_manager to a standalone app

hackathon_manager is moving away from being a mountable Ruby on Rails gem and instead to a standalone Ruby on Rails app.
This means running hackathon_manager will no longer require a "host" app -- running it is as simple as deploying this repo to any server.
This locks in several pieces that were previously easy to customize (e.g. templates, sass variables, email services, etc), but long-term should make maintenance easier and getting started super simple.
This also sets up hackathon_manager as a relatively new Rails app -- complete with turbolinks for faster page loads and better scaffolding

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Linux Encode: Only sync on CPU when neccessary

@andy-d1969 Can you please test this with AMF?

No issues here.

I'll probably test it around 10 working extra late today.

Tested on VAAPI works fine, I'm assuming you've done software?

Yes, I tested with all encoders except AMF and NVENC (but nothing to test here).

ok merging


angular.module is not a function after updating to 0.2.4

After updating till the version 0.2.4 I got the following error:
angular.module is not a function
I use browserify, here is how it looks in my file
require('angularjs'); require('angular-local-storage');   // other code
The error occurs only on version 0.2.4, if I fix version to 0.2.3 everything works properly.
Actually I install you library via bower.

Issue occurs for the same reason as #288 and #289. I will revert this changes and soon.

This should be fixed with PR #291. I will wait for some feedback to see if it's possible to close this issue.

I got the same issue upgrading to 0.2.4. Should 0.2.5 fix it?

I suppose that after 0.2.5 this problem will disappear.

I suppose that after 0.2.5 this problem will disappear.

Confirmed. Thanks!