[CLOSED] Refactor selection of repository/observer based on argument

 Issue by kalleth
Tuesday 26 August 2014 at 15:03 GMT
Originally opened as https://github.com/alphagov/specialist-publisher/pull/241

Move the complex logic used to choose the document type to be
republished, and obtain its observers and registries down into a
testable class and away from the (untested) republish_documents script.

kalleth included the following code: https://github.com/alphagov/specialist-publisher/pull/241/commits

 Comment by evilstreak
Thursday 28 August 2014 at 12:30 GMT

Yep, that's better. I'd still prefer us to be using structs though.

 Comment by kalleth
Wednesday 27 August 2014 at 10:33 GMT

@evilstreak I'll rebase the two commits together into a single commit once you've had a chance to see wether you prefer the simpler new approach that @bestie suggested :)

 Comment by kalleth
Thursday 28 August 2014 at 12:50 GMT

First two commits combined, 922a540 contains an implementation using structs rather than arrays for each Repository/Observer tuple.


FCB support for non-0xFF flash erase values

Is your enhancement proposal related to a problem? Please describe.
Currently FCB is able to work with flash devices that erase to 0xFF values.
Since it's implementation new devices have appeared that use non-0xFF erase values (0x00), which is not supported
by the FCB as it relies on 0xFF as an erased/empty value in some cases.
Describe the solution you'd like
Make FCB flash erase value independent.
Describe alternatives you've considered
There is none as long as FCB is to be used.
Additional context
The flash API now supports  flash_get_parameters that returns flash_parameters structure that has erase_value member, which is initialized by driver with the erase value.

Also newly proposed flash_area_ersed_val() might be usefull.

Also we should consider importing fcb2 from Mynewt, it was huge improvement over fcb.

Also we should consider importing fcb2 from Mynewt, it was huge improvement over fcb.

Does the fcb2 support the original fcb or this is parallel?

Also we should consider importing fcb2 from Mynewt, it was huge improvement over fcb.

Does the fcb2 support the original fcb or this is parallel?

fcb2 originated from refactoring fcb but it ended up with a slightly different metadata formats AFAIR, so not compatible, you have to use one or the other from the beginning.

fcb2 originated from refactoring fcb but it ended up with a slightly different metadata formats AFAIR, so not compatible, you have to use one or the other from the beginning.

OK then, we will have to add it as an alternative. Do you want me to create enhancement request for importing fcb2 or do you want to post the request  yourself?

fcb2 originated from refactoring fcb but it ended up with a slightly different metadata formats AFAIR, so not compatible, you have to use one or the other from the beginning.

OK then, we will have to add it as an alternative. Do you want me to create enhancement request for importing fcb2 or do you want to post the request yourself?

Please go ahead and do it! :-)

^^ Please count benefits of having fcb2 in compassion to FCB and NVS.


docs: remove CodeFund sponsor

CodeFund is not allowed to place ads on README's anymore according to GitHub.
Please reach out to our team if you have any questions :slightly_smiling_face:

Published in v8.3.2.


Ability to parse multiple Lumen maintenance windows

Environment

circuit_maintenance_parser version: v2.2.2
Similar to https://github.com/networktocode/circuit-maintenance-parser/issues/210, Lumen notifications are not accurately pulling all maintenance windows. In Lumens maintenances, Circuit Maintenance Parser (CMP) is actually only currently able to export one start/end time and in all cases, this is the last table that CMP scans. See my example in the Use Case.

Proposed Functionality
Allows operators to schedule in accurate maintenance windows for Lumen Maintenances.

Use Case
See the attached Lumen email in the comments of this issue.
Currently with this example, we extract the following start and end time:
Start: 2023/03/23-04:00 UTC
End: 2023/03/23-12:00 UTC
As you can see in the email, this is only the second window for the "Alternate Night".
We need to be able to capture both windows and have them scheduled as two separate events.
When running the circuit-maintenance-parser test on it, this should return something similar to the below:
 ✗  circuit-maintenance-parser --data-file ~/Downloads/Lumen_redacted.eml --data-type email --provider-type lumen
Circuit Maintenance Notification #0
{
  "account": "Company",
  "circuits": [
    {
      "circuit_id": "111111111",
      "impact": "OUTAGE"
    },
    {
      "circuit_id": "222222222",
      "impact": "OUTAGE"
    }
  ],
  "end":<PHONE_NUMBER>,
  "maintenance_id": "123456789",
  "organizer"<EMAIL_ADDRESS>  "provider": "lumen",
  "sequence": 1,
  "stamp":<PHONE_NUMBER>,
  "start":<PHONE_NUMBER>,
  "status": "IN-PROCESS",
  "summary": "Lumen intends to carry out internal maintenance within its network.  This has been designated as ESSENTIAL. The nature of this work is to repair fiber and is required in order to avoid unplanned outages from damages related to natural causes.",
  "uid": "0"
}
Circuit Maintenance Notification #1
{
  "account": "Company",
  "circuits": [
    {
      "circuit_id": "111111111",
      "impact": "OUTAGE"
    },
    {
      "circuit_id": "222222222",
      "impact": "OUTAGE"
    }
  ],
  "end":<PHONE_NUMBER>,
  "maintenance_id": "123456789",
  "organizer"<EMAIL_ADDRESS>  "provider": "lumen",
  "sequence": 1,
  "stamp":<PHONE_NUMBER>,
  "start":<PHONE_NUMBER>,
  "status": "IN-PROCESS",
  "summary": "Lumen intends to carry out internal maintenance within its network.  This has been designated as ESSENTIAL. The nature of this work is to repair fiber and is required in order to avoid unplanned outages from damages related to natural causes.",
  "uid": "0"
}

Please see the example email for the use case above.
Lumen_redacted.eml.zip
I have a fix for this issue so please feel free to assign this to me.
I will raise a pull request once I have unit tests sorted out.


[UPDATE ALGORITHM] Deadlock avoidance algorithm

Description:
The Deadlock Avoidance Algorithm currently uses hardcoded values for resources and processes. I want to update the algorithm to allow dynamic input from the user, which will make the algorithm more interactive and practical for varied use cases. This change will involve modifying the code to:
Take the number of processes and resources from the user.
Accept maximum resource demand and allocation matrices as input.
Use the user inputs to perform deadlock avoidance (Banker’s algorithm).
Checklist:

[x] Contributor in GSSoC-ext
[x] Want to work on it

Affected Algorithm:
Algorithm: Deadlock Avoidance (Banker's Algorithm)
Directory: Specify the directory path(https://github.com/AlgoGenesis/C/blob/main/Deadlock avoidance algorithm/Banker's Algorithm.c)
Additional Information:
Implementing this change will require prompts for user inputs and validation checks to ensure correct data entry. This update will enhance the algorithm's usability, making it more flexible and adaptable for testing with various process/resource configurations.

Do not create multiple issues.

Why u have closed both issues????
On Thu, 7 Nov, 2024, 12:36 am Pankaj Kumar Bind, @.***>
wrote:

Do not create multiple issues.
—
Reply to this email directly, view it on GitHub
https://github.com/AlgoGenesis/C/issues/1698#issuecomment-2460561019,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDYCS4LNCCX4WHFMQZG6LKTZ7JSCJAVCNFSM6AAAAABRIN2VQ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRQGU3DCMBRHE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Duplicated problems

Version: 1.30.0 (user setup)
Commit: c6e592b2b5770e40a98cb9c2715a8ef89aec3d74
Date: 2018-12-11T22:29:11.253Z
Electron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
OS: Windows_NT x64 10.0.17134

TSLint: 5.3.2 (global install)
Extension version: 0.2.0
eg2.tslint is disabled.

This might be a TSLint bug. Investigating.

Probably related to https://github.com/palantir/tslint/issues/2880 and https://github.com/palantir/tslint/issues/3159. I'll close this for now.


Extend the compute package to allow handling to multiple model types dynamically

implemented and added via commit 22b5fb648a8241ac27a2597d57d38b77280132ae on feature/FR-002 branch.


Constructible / modifiable HIR

Supersedes #590, and likely #580.
To unify the hir/encoder types, HIR types should be constructible. To modify documents (#420), the HIR is likely the nicest level to do it at (vs the low-level parser AST).
So the rough plan is:

[ ] make the HIR nodes constructible (prob just add builders with buildstructor)
[ ] have the whole HIR have one root node, so you can clone + modify a HIR
[ ] add a serialization API to the HIR so you can use it instead of apollo-encoder
[ ] add some basic modification methods for eg. adding fields or removing directives
[ ] later integrate it with salsa possibly using a schema diff format??

A pretty big issue i'm running into with having a single root node at the moment is that it more or less guarantees that there will be multiple Arcs pointing at the same definition nodes. That makes modifying them non-obvious, you can't just do Arc::get_mut() with multiple pointees and having a ton of mutexes in the hir seems quite bad/heavy weight.

Our wording evolved a bit, so the issue is a bit outdated, should be merged with #526 or split in a different way. I'll keep it like this for now as we are still designing the higher level parts. Simon made a lot of progress on this branch: https://github.com/apollographql/apollo-rs/tree/mir

I think we can consider this done, with the release of apollo-compiler 1.0 beta: https://docs.rs/apollo-compiler/1.0.0-beta.1/

This was sort of a duplicate of https://github.com/apollographql/apollo-rs/issues/420


Supporting backend-specific options

@jlstevens and I just discussed limitations and issues with our support for declaring backend-specific options that get used as-needed when displaying objects in different backends.  We captured some goals that we think we all agree on (please check, @philippjfr!), along with a proposal for how to achieve those goals and some examples of how things would work were that proposal to be implemented.  We have not agreed to actually do this work, pending agreement on the goals and proposal.
User-level goals

Normal users should have option settings validated early whenever possible, to give them feedback.
It should be possible to specify options per backend when necessary, so that the same object can be appropriately styled when used with different backends.
Normal users should not have to litter their code with backend or other mostly redundant declarations (i.e. it should be possible to define a default for the backend, then have that apply).
It should be possible to generate HV objects without any backend loaded, and to set per-backend options on them that would be used if that object is ever used with that backend later.
Sets of options should be able to be created per backend incrementally, without requiring the backend to be specified when the options are later applied to an object.
It would be nice to be able to declare options for a backend without necessarily loading it, while being aware that validation won't be possible in that case.
Backend handling should fully support any of the various mechanisms for setting options, not just hv.opts, including dictionaries.

Proposal, achieving goals 1-7
Changes to make:

Add Options.default_backend=None
Change the behavior for hv.opts so that if backend is None (the default), backend falls back to Store.current_backend (defined if any extension has been loaded), then otherwise Options.default_backend (also defaulting to None, but can be set by a user who wants to declare options without loading backends)
hv.opts changed to skip validation when there is no backend declared:

Populate Elements on hv.opts without loading the backend (part of holoviews-core, separate from any extension modules)
Skip validation for keyword=value when backends aren't loaded
Allow building OptionTrees without validating keywords, so that it can be done when backends aren't loaded

May need to initialize OptionTree with available elements
PRs needed:

merge https://github.com/ioam/holoviews/pull/3463: allows binding backend to Options objects, then later groups by backend to apply them.  Needs to store the current backend name, if not specified.
Add a new Option group "backend" to satisfy goal 7, i.e. making nested dictionaries able to specify backend
Make things work when no backend is loaded (add default_backend, turn off validation when not possible, populate OptionTrees with Elements before backend loading)

Behavior:

If the user loads an extension:

Store.current_backend will be set and will determine the default backend against which the options will be validated and applied
Store.current_backend will be bound to the options object, if not otherwise overridden with the backend argument to hv.opts.

If the user doesn't load an extension:

Users can set Options.default_backend to declare what backend should be bound to these options by default (when not specified in the hv.opts call)
If user has not set Options.default_backend (a) could just not validate at all (which will eventually have an error in the backend), or (b) could be an immediate error.

(Could implement just part of this, but that would only achieve some of the goals.)
Example 1: Typical normal interactive-user usage
hv.extension("bokeh","matplotlib")
...
hv.output(backend="matplotlib")  # (Whose backend's options I'm declaring, i.e. the default value of backend for hv.opts()

ts_opts1 = hv.opts(... some mpl opts ...)
ts_opts2 = hv.opts(... some bokeh opts ... backend='bokeh')
ts_opts3 = hv.opts(... some mpl opts ...)

# ... some many dozens of such opts settings ...

hv.output(backend="bokeh")
ts_opts4 = hv.opts(... some bokeh opts ...)

# ... some bokeh opts ...

obj = hv.Curve(...)
obj.opts([ts_opts1, ts_opts2, ts_opts3, ts_opts4].opts(other_opt=X)

Should work with https://github.com/ioam/holoviews/pull/3463 once extended to bind the current backend if backend not specified explicitly.
Example 2: Preparing objects before loading extensions (HPC?)
Same as example 1 but not loading any extensions:
hv.Options.default_backend="matplotlib"

ts_opts1 = hv.opts(... some mpl opts ...)
ts_opts2 = hv.opts(... some bokeh opts ... backend='bokeh')
ts_opts3 = hv.opts(... some mpl opts ...)

# ... some many dozens of such opts settings, none of which are validated ...

hv.Options.default_backend="bokeh"
ts_opts4 = hv.opts(... some bokeh opts ...)

# ... some bokeh opts ...

# ... maybe later, after pickling/unpickling...
obj = hv.Curve(...)
obj.opts([ts_opts1, ts_opts2, ts_opts3, ts_opts4].opts(other_opt=X)

I.e., same as Example 1, but using hv.Options.default_backend instead of hv.output, and having no validation.
Requires Proposal A.
Example 3: Preparing flat dictionaries before loading extensions (HPC, but bad?)
No backend loaded.
ts_opts1 = {... some mpl opts, in a flat dictionary ...}
ts_opts2 = {... some bokeh opts ..., backend='bokeh'}
ts_opts3 = {... some mpl opts ...}

# ... some many dozens of such opts settings ..

ts_opts4 = {... some bokeh opts ...}

# ... some bokeh opts ...

# ... maybe later, after pickling/unpickling...
hv.extension("matplotlib","bokeh")

obj = hv.Curve(...)
obj.opts(**ts_opts1).opts(**ts_opts2).opts(**ts_opts3).opts(**ts_opts4).opts(other_opt=X)

I.e., same as example 2, but using flat dictionaries.  Probably not that useful; why not use hv.opts?  Probably only going to come up if storing options in .yml or some such.
Already supported, but maybe not that common or useful, because the sort of simulator or tool that would generate dictionaries will also want to separate plot and style to allow plot options to be shared across backends.
Does not satisfy goal 3 and 5 together, because the backend cannot be bound into the dictionary without explicitly stating it.
Example 4: Preparing nested dictionaries before loading extensions (HPC?)
No backend loaded.
ts_opts1 = {plot={some plot options}, style={some mpl opts}}
ts_opts2 = {plot={some plot options}, style={some bokeh opts}, backend={backend='bokeh'}}
ts_opts3 = {plot={some plot options}, style={some mpl opts}}

# ... some many dozens of such opts settings ..

ts_opts4 = {plot={some plot options}, style={some bokeh opts}}

# ... some bokeh opts ...
# ... maybe later, after pickling/unpickling...

hv.extension("matplotlib","bokeh")

obj = hv.Curve(...)
obj.opts(**ts_opts1).opts(**ts_opts2).opts(**ts_opts3).opts(**ts_opts4).opts(other_opt=X)

I.e., same as example 2, but using nested dictionaries.
Would require a fourth type of options, i.e. backed specifications (currently just a single option), to be supported everywhere in holoviews.
Does not satisfy goal 3 and 5 together, because the backend cannot be bound into the dictionary without explicitly stating it.
Seems more likely to support simulators, etc. properly compared to the approach in example 3, and it lets all methods of setting options have equivalent power.

@jlstevens Can this be closed now?

Just to make sure this can never be closed, here's an additional proposal:
Right now, there are certain gaps where the backend information is not available when options are being supplied.  E.g. if someone does obj.opts(opts.Path(width=100, backend='bokeh')) while the matplotlib backend is active, tab completion doesn't yet know that the width option will be intended for bokeh (presumably even if the order those two keywords are typed is reversed). Validation is similarly inclusive of both backends at least in certain cases.
I would much prefer if we could be strict about making sure that the currently applicable backend is always known, so that we can always validate and tab complete against it.  One possible syntax for that would be to allow opts.bokeh.Path(width=100), such that once ".bokeh" has been typed, all subsequent options can be both tab completed only for bokeh and validated only against bokeh. I don't love the syntax, but at least it ensures that people can define per-backend options without it ever being ambiguous which backend they apply to.


Editor updates

Fixes to loading basic meshes into editor scene

Hi @haitheredavid, Just checking out this PR.
Looks like I'm getting a null reference exception on this line while trying to receive during edit mode.

NullReferenceException: Object reference not set to an instance of an object

NullReferenceException: Object reference not set to an instance of an object
Objects.Converter.Unity.ConverterUnity.MeshToNative (Objects.Geometry.Mesh speckleMesh, Objects.Other.RenderMaterial renderMaterial, System.Collections.Generic.Dictionary`2[TKey,TValue] properties) (at Assets/Speckle Connector/ConverterUnity.Geometry.cs:311)
Objects.Converter.Unity.ConverterUnity.MeshToNative (Speckle.Core.Models.Base speckleMeshObject) (at Assets/Speckle Connector/ConverterUnity.Geometry.cs:235)
Objects.Converter.Unity.ConverterUnity.ConvertToNative (Speckle.Core.Models.Base object) (at Assets/Speckle Connector/ConverterUnity.cs:69)
Speckle.ConnectorUnity.RecursiveConverter.TryConvertItemToNative (System.Object value) (at Assets/Speckle Connector/RecursiveConverter.cs:124)
Rethrow as SpeckleException: Object reference not set to an instance of an object
Speckle.ConnectorUnity.RecursiveConverter.TryConvertItemToNative (System.Object value) (at Assets/Speckle Connector/RecursiveConverter.cs:138)
Speckle.ConnectorUnity.RecursiveConverter.RecurseTreeToNative (System.Object object) (at Assets/Speckle Connector/RecursiveConverter.cs:80)
Speckle.ConnectorUnity.RecursiveConverter.b__2_0 (System.Object x) (at Assets/Speckle Connector/RecursiveConverter.cs:72)
System.Linq.Enumerable+SelectListIterator`2[TSource,TResult].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].ToList () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
Speckle.ConnectorUnity.RecursiveConverter.RecurseTreeToNative (System.Object object) (at Assets/Speckle Connector/RecursiveConverter.cs:72)
Speckle.ConnectorUnity.RecursiveConverter.ConvertRecursivelyToNative (Speckle.Core.Models.Base base, System.String name) (at Assets/Speckle Connector/RecursiveConverter.cs:51)
Speckle.ConnectorUnity.StreamManager.ConvertRecursivelyToNative (Speckle.Core.Models.Base base, System.String id) (at Assets/Speckle Connector/StreamManager.cs:39)
Speckle.ConnectorUnity.StreamManagerEditor+d__43.MoveNext () (at Assets/Speckle Connector/Editor/StreamManagerEditor.cs:151)
Rethrow as SpeckleException: Object reference not set to an instance of an object
Speckle.ConnectorUnity.StreamManagerEditor+d__43.MoveNext () (at Assets/Speckle Connector/Editor/StreamManagerEditor.cs:156)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at <695d1cc93cca45069c528c15c9fdd749>:0)
Speckle.ConnectorUnity.StreamManagerEditor+d__44.MoveNext () (at Assets/Speckle Connector/Editor/StreamManagerEditor.cs:272)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.b__6_0 (System.Object state) (at <695d1cc93cca45069c528c15c9fdd749>:0)
UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at <127e81e1cb3441cc97d26b1910daae77>:0)
UnityEngine.UnitySynchronizationContext:ExecuteTasks()

It looks like speckleMesh.bbox is null for objects on the stream I'm trying to receive (https://speckle.xyz/streams/59185c5b8a)

@JR-Morgan oh interesting...I'm not entirely sure about Base objects coming in from Revit into unity. Currently the unity connector has a limited set of Base types it can convert properly from. Here is quick hack I added the PR to avoid that issue

Looks great to me, this PR closes #24

Thanks both! @haitheredavid @JR-Morgan


Tickbox rendering in the bottom left in Chromium based browsers

Describe the bug
When I open the presentation in the browser, I get a small tickbox in the bottom left of the presentation.
It doesn't seem to do anything. Not clickable or anything like that.
The id of the HTML element is customcontrols. Not sure what that is for, but I feel like it shouldn't be there if it does nothing.
I tested this in two different Chromium based browsers (Brave, Arc) with the same results.
Seems to work fine in Firefox ans Safari though.
Samples to Reproduce

Have a slide presentation. Any will do.
Open the preview.
Click "Open in Browser" (Chromium based)
The tickbox is there.

Expected behavior
The tickbox should not be rendered in the browser as it is not rendered in the preview in Obsidian.

Yeah i was able to reproduced this issue. Thx for reporting

No worries. Thanks for actually looking into it.
If you need any help fixing it, let me know. I was looking around in the code, but wasn't sure where to look to be honest. So could need some guidance if you have any ideas. 🙃

An update. It seems like Arc no longer has this tickbox after I upgraded to Version 0.74.1 (35450). Which is running Chromium Engine Version 107.0.5304.88.


[SPARK-8625] [Core] Propagate user exceptions in tasks back to driver

This allows clients to retrieve the original exception from the
cause field of the SparkException that is thrown by the driver.
If the original exception is not in fact Serializable then it will
not be returned, but the message and stacktrace will be. (All Java
Throwables implement the Serializable interface, but this is no
guarantee that a particular implementation can actually be
serialized.)

NAVER - http://www.naver.com/
<EMAIL_ADDRESS>님께 보내신 메일 <[spark] [SPARK-8625] [Core] Propagate user exceptions in tasks back to driver (#7014)> 이 다음과 같은 이유로 전송 실패했습니다.

받는 사람이 회원님의 메일을 수신차단 하였습니다.

Can one of the admins verify this patch?

NAVER - http://www.naver.com/
<EMAIL_ADDRESS>님께 보내신 메일 <Re: [spark] [SPARK-8625] [Core] Propagate user exceptions in tasks back to driver (#7014)> 이 다음과 같은 이유로 전송 실패했습니다.

받는 사람이 회원님의 메일을 수신차단 하였습니다.

OK to test

Test build #961 has started for   PR 7014 at commit fc484b9.

Test build #961 has finished for   PR 7014 at commit fc484b9.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

@tomwhite this looks great!  thanks so much for working on this, I think it will be a really good addition.  I left some minor style comments in addition to the ones the automatic checker found, but overall this seems close.

@squito thanks for the review! I've addressed your comments in a new commit.

Test build #965 has started for   PR 7014 at commit 44cb266.

a couple of minor comments, aside from that just waiting to see if the tests pass

Test build #965 has finished for   PR 7014 at commit 44cb266.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

@pwendell are you OK with the change to ExceptionFailure?   If you're ok w/ it, this lgtm

ping @pwendell

I think the compatibility is okay, but two other quick questions:

Is it well defined which exception caused the task to fail? What if a task fails N times with N different exceptions, which is present in the cause? I think this should be documented clearly in the docs for the developer API.
Maybe @kayousterhout could look quickly at the DAG scheduler changes.

@pwendell I'm not seeing anything concerning in the DAGScheduler changes.

I played with this locally a bit, and I think that actually defaulting Option[Throwable] = None is covering up some cases where there really is an exception you should include.  I think you should just remove that defaulting everywhere.  It'll lead to a handful of compile errors, but mostly they will be easy to fix -- either there will be an obvious exception to pass or there won't ...
... except for the default on ExceptionFailure.  That will lead to a failure in JsonProtocol.taskEndReasonFromJson.  Is it possible to turn the actual exception into json in JsonProtocol.taskEndReasonToJson, so that it can be read back in?  I was wondering if getting the full exception back might be useful to anything which wants to analyze the event logs.  I guess its impossible for some general purpose job to know about whatever user exceptions there are, so maybe there isn't any good reason for getting the full exception in json anyway.
So I'm leaning towards just putting in None for the exception in JsonProtocol.taskEndReasonFromJson, but just wanted to share my thoughts.

Scheduler changes LGTM, subject to @squito's suggestion

Thanks for all the feedback @pwendell, @squito, and @kayousterhout. I've addressed all your points and updated this PR.
@squito Regarding JsonProtocol, I can't see a way of serializing the fields of an arbitrary user exception class to JSON and the reconstituting them, so I agree that putting it as None is the right way to go. The stack trace and message will be preserved in the same way that they currently are though.

Test build #1082 has started for   PR 7014 at commit e5a1d7c.

Test build #1082 has finished for   PR 7014 at commit e5a1d7c.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

The build was failing because the changes didn't compile against master. I've rebased and fixed the problem, as well as added a commit to address @aarondav's comment.

Thanks @aarondav for the review. I've addressed all your points and I also rebased on master to fix a conflict.

Rebased on master to fix a merge conflict.

Test build #1199 has started for   PR 7014 at commit 8df33bc.

Test build #1199 has finished for   PR 7014 at commit 8df33bc.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class ThrowableSerializationWrapper(var exception: Throwable) extends Serializable
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])
abstract class InternalRow extends Serializable
case class ChangeDecimalPrecision(child: Expression) extends UnaryExpression
class GenericRow(protected[sql] val values: Array[Any]) extends Row
class GenericInternalRow(protected[sql] val values: Array[Any]) extends InternalRow
class GenericInternalRowWithSchema(values: Array[Any], val schema: StructType)
class GenericMutableRow(val values: Array[Any]) extends MutableRow

Test build #1207 has started for   PR 7014 at commit 8df33bc.

Test build #1207 has finished for   PR 7014 at commit 8df33bc.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class ThrowableSerializationWrapper(var exception: Throwable) extends Serializable
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

Test build #1209 has started for   PR 7014 at commit b609c51.

Test build #1209 has finished for   PR 7014 at commit b609c51.

This patch fails Python style tests.
This patch does not merge cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

Test build #1211 has started for   PR 7014 at commit b609c51.

Test build #1211 has finished for   PR 7014 at commit b609c51.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

Looks like this change is not causing the failure in SQLQuerySuite as it is failing for other PRs (e.g. https://github.com/apache/spark/pull/7678, https://amplab.cs.berkeley.edu/jenkins/job/NewSparkPullRequestBuilder/1205/).

Jenkins, retest this please

@aarondav are you OK with this now?  I think tom addressed all your concerns

Test build #1235 has started for   PR 7014 at commit b609c51.

Test build #1235 has finished for   PR 7014 at commit b609c51.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Test build #1237 has started for   PR 7014 at commit a14f282.

Test build #1237 has finished for   PR 7014 at commit a14f282.

This patch fails Python style tests.
This patch does not merge cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

Test build #1238 has started for   PR 7014 at commit a14f282.

Test build #1238 has finished for   PR 7014 at commit a14f282.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

Looks good from my end.

@tomwhite there is a legit failure here, looks like you need to merge w/ master and fix a compile error

I rebased this on master. Is there a way to get this to be retested?

Jenkins, retest this please

Test build #1401 has started for   PR 7014 at commit d531c93.

I triggered Jenkins.

Test build #1401 has finished for   PR 7014 at commit d531c93.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

@tomwhite still looks like a real compile error:
[error] /home/jenkins/workspace/NewSparkPullRequestBuilder/core/src/main/scala/org/apache/spark/scheduler/DAGScheduler.scala:822: not enough arguments for method abortStage: (failedStage: org.apache.spark.scheduler.Stage, reason: String, exception: Option[Throwable])Unit.
[error] Unspecified value parameter exception.
[error]         abortStage(stage, s"Task creation failed: $e\n${e.getStackTraceString}")
[error]                   ^

Thanks. The error came from new code that was committed in SPARK-4352. I've rebased and fixed the offending line.

Test build #1404 has started for   PR 7014 at commit 4c884d0.

Test build #1404 has finished for   PR 7014 at commit 4c884d0.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TaskSetFailed(taskSet: TaskSet, reason: String, exception: Option[Throwable])

Test build #1405 has started for   PR 7014 at commit 4c884d0.

Test build #1405 has finished for   PR 7014 at commit 4c884d0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

merged to master & 1.5  thanks @tomwhite !


Installing CouchDB

I am using raspberry pi 0. I am unable to install couchdb using the solarthing.jar
i am getting the following:
pi@raspberrypi:/opt/solarthing/program/request/config $ java -jar ../solarthing.jar --couchdb-setup config/couchdb.json
Error: Unable to access jarfile ../solarthing.jar

So you'll notice that your working directory is /opt/solarthing/program/request/config. The relative path ../solarthing.jar while in that working directory will give you /opt/solarthing/program/request/solarthing.jar, which doesn't exist. So, you can either stay in that working directory and use ../../solarthing.jar, or you can change your working directory to /opt/solarthing/program/request/.
I recommend changing your working directory to /opt/solarthing/program/request/, so that paths for the configuration are correct.

Sorry for the late response. I am unable to find the .jar file in any of those directories

You will now setup your CouchDB instance! Some databases will be automatically created (enter)
Exception in thread "main" java.lang.RuntimeException: me.retrodaredevil.couchdbjava.exception.CouchDbException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:5984
at me.retrodaredevil.solarthing.program.SolarMain.doMain(SolarMain.java:196)
at me.retrodaredevil.solarthing.program.SolarMain.main(SolarMain.java:209)
Caused by: me.retrodaredevil.couchdbjava.exception.CouchDbException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:5984
I am getting the following error now

this is the first line of the error
2021-09-10 17:32:24,113 main ERROR RollingFileManager (logs/log_debug.log) java.io.FileNotFoundException: logs/log_debug.log (Permission denied) java.io.FileNotFoundException: logs/log_debug.log (Permission denied)

Exception in thread "main" java.lang.RuntimeException: me.retrodaredevil.couchdbjava.exception.CouchDbException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:5984

This means that SolarThing cannot access a CouchDB database on localhost:5984. Getting CouchDB running on your Raspberry Pi is pretty much up to you. solarthing.jar doesn't actually try to install CouchDB, it just sets it up. There's not exactly a walk through in the docs on how to do it. You can look at this page for instructions that will work on your Raspberry Pi or if you know how to use docker, you can follow this. I only recommend going the docker route if you have experience with docker.
Once you have it installed, there will be a default username and password, which you can either change, or you can use to run the CouchDB setup program like you did when you got that error.
I will consider creating a script that can install it for you, since I'm guessing you aren't the only one who just wants to get SolarThing up and running without figuring out how to install CouchDB.

2021-09-10 17:32:24,113 main ERROR RollingFileManager (logs/log_debug.log) java.io.FileNotFoundException: logs/log_debug.log (Permission denied) java.io.FileNotFoundException: logs/log_debug.log (Permission denied)

This line of the error doesn't actually affect any functionality. This just means that permissions aren't set up correctly to get logging working. If you want to fix this, you can run this:
sudo /opt/solarthing/other/linux/update_perms.sh

The official support page of CouchDB says that it is not available for 32-bit systems. I am using a raspberry 3b . I guess i'll need to host it on a 64 bit device

I haven't attempted to install CouchDB on an RPi before. Dang, I thought it was supported on there. I'm surprised no one has pointed this out to me sooner.
However, this is probably for the best, I don't recommend running CouchDB off a Raspberry Pi since it's not good to frequently write to the Pi's SD card. I've had two SD cards go bad from writing to them too much.
If you still want to try to install CouchDB on an RPi, you can look up how to do that, or you can try to use this: https://github.com/treehouses/rpi-couchdb (which uses docker). It looks like the docker option doesn't yet support CouchDB 3, but I believe that's OK. I don't recommend trying to install this from source (you'll find tutorials for this online) because that seems hard to maintain. I also probably wouldn't recommend using that docker image as it hasn't been updated in a while.
Also, although I tend not to recommend this option, but I believe that InfluxDB works on Raspberry Pis. If you just want to get Grafana working, InfluxDB isn't a bad choice. It is a bad choice if you want to do more complex stuff in the future that requires CouchDB, though.

Thanks, I got it working on my laptop and pi could create the databases. However, I had to change to bind address to <IP_ADDRESS> from <IP_ADDRESS> and as a result now i cant access the GUI for couchdb.
I am also encountering an issue with getting GraphQL working because i cannot find the directory /var/lib/grafana/plugins and i am not sure what is meant by "You will need to be a member of the grafana group to access that directory." I cant find that group anywhere on my pc

However, I had to change to bind address to <IP_ADDRESS> from <IP_ADDRESS> and as a result now i cant access the GUI for couchdb.

That shouldn't change whether or not if the GUI is accessible. It might be possible you flipped another setting that turned off the GUI. You are accessing it at <your ip>:5984/_utils, right?

I am also encountering an issue with getting GraphQL working because i cannot find the directory /var/lib/grafana/plugins and i am not sure what is meant by "You will need to be a member of the grafana group to access that directory." I cant find that group anywhere on my pc

How did you install Grafana, and what operating system did you install it on?

I used homebrew on macos

I believe that Mac OS usually names users and groups differently. So on Mac OS, I think the user would be named something like _grafana (or maybe it's not an underscore). As for that directory, on Mac OS, is should be something like /usr/local/Cellar/grafana.
Most of the documentation is for Linux systems (specifically Debian based systems), so some of the Grafana stuff you'll have to figure out yourself.

Thanks I'll try to figure it out.

If you were able to get this working let me know (or let me know things I can improve). I'm debating making a video tutorial for setting up SolarThing if I find the time, so let me know if there's anything you want me to cover in particular.

If you were able to get this working let me know (or let me know things I can improve). I'm debating making a video tutorial for setting up SolarThing if I find the time, so let me know if there's anything you want me to cover in particular.

i was not able to Set up GraphQl on my local grafana instance. However, i got it working on a grafana cloud. At the end best solution for me was to setup influxdb on a google cloud server and a local grafana instance that fetches the data.


Add AES GCM Java Utility

Can you share the below elements:

[ ] - Sonar report
[ ] - Code coverage report
[ ] - Java doc links
[ ] - At least one Inter langauage test report(Java <-> Python/Javascript)
[ ] - Usage guide and instruction readme.md

Hi Shreyansh,
The SonarQube report was generated and some code smells were discovered. The Final report along with the code changes and the below documents will be updated in the repository by Monday EOD.

Sonar report
Code coverage report
Java doc links
At least one Inter langauage test report(Java <-> Python/Javascript)
Usage guide and instruction readme.md

Thanks.

Can you share/attach the reports here along with a test log of atleast one report for Java and Python Test attach files to PR itself

Attachments:
SonarQube Report Analysis _ GCM Java Utility.pdf
Interlanguage Test Report - Java _ Python.pdf
code-coverage-report.zip

Javadoc: https://subramanyam23.github.io/reference-implementations/utilities/docs/org/ondc/package-summary.html
Code coverage report: https://subramanyam23.github.io/reference-implementations/utilities/aes-gcm-java-utility/code-coverage-report/org.ondc/index.html

Javadoc was added to the utilities/docs folder in the commit itself. It can be viewed from this repo's link if GitHub pages are enabled.
For Code Coverage report - For now, I have hosted this in a separate feature branch in my repo. If this needs to be added to this repo anywhere please do mention the folder path. I'm also attaching the Code Coverage report as ZIP file here.

Please add the aes-gcm-utilities docs section inside the aes-gcm-java-utility as having it at utilities end is confusing

Done, Please check.


Update scalafmt-core to 3.2.1 in series/0.23

Updates org.scalameta:scalafmt-core from 3.2.0 to 3.2.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (3.2.0).
You might want to review and update them manually.
website/src/hugo/content/changelog.md

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains

Superseded by #5650


"Unable to find template" error when loading an absolute path on Windows

This is actually the official and expected behavior of TwigPHP. Nothing wrong here based on the specs.


Implement secure download feature

Check these before submitting new pull requests

[ ] I read the guidelines for contributing linked above. My pull request conforms to the coding style guidelines described within.

If this condition is met, feel free to delete this whole message and to submit your pull request.
Thank you, your help is really appreciated!

Looks good! Just a couple of questions/changes, then I can merge it in and test it more fully.

Thank you i will integrate the requested changes. And yes the composer lib is much better. I dont wanted to bloat up the core. That was the reason for the custom method.

No problem! Thanks for checking before just adding composer libraries, I appreciate it. Yeah, you can add ramsey/uuid

I'm closing this pull request because these changes are found on the express search component pull request.


How do you test an Angular 2 component here?

I'm trying to hack my way into testing an Angular 2 component but I think there's got to be an easier way. One without so many errors.
I added mocha and chai, then created the file .\ClientApp\components\app\app.test.ts:
import { App } from './app';
describe("Test", function () {
    it("works", function () {
        let app = new App();
        chai.assert.ok(app);
    });
});

I compile with tsc into a test folder then try to run mocha but get the error reflect-metadata shim is required when using class decorators. After a LOT of trial and mostly errors I find a post that says I should add var reflect = require('reflect-metadata'); to the test file. I do that and now I get  Error: Cannot find module './nav-menu.html' Then I tried to add the html files to the test folder but get SyntaxError: Unexpected token <
At this point I think I'm on the wrong path because it shouldn't be this hard. So how do you test an Angular 2 component here?

This should help you out a bunch! https://developers.livechatinc.com/blog/testing-angular-2-apps-dependency-injection-and-components/

@ManuelDeLeon - yes, I've no doubt this is tricky to set up. At some point we might include a suggested test setup in the default generated project. I hope @MarkPieszak's link gets you started.
For now I'm going to close this as it's really an Angular 2 setup question rather than being anything specific to JavaScriptServices. Please reopen if you disagree.
@MarkPieszak - thanks for the link!

@SteveSandersonMS - I totally understand your position as, strictly speaking, this isn't a problem with JavaScriptServices. That said, I think you guys should give an example of how to test Angular 2 components (a blog post, a footnote on the readme, anything). The link @MarkPieszak provided works beautifully for that particular starter/boilerplate but I'm on the 6th ring of hell trying to make it work with this starter app.
Again I know technically this isn't your problem but then it's no one's problem. If I go to the Angular groups they're going to say "testing works just fine if you use any of the node starter projects, take it to the .Net Core starter one"


asset_path from a magick resized image

Hi, sorry if this is a duplicate or just a non-existant feature.
I'm using the Jekyll 3 assets and want to get the asset path to a resized image, I've tried a few things along the lines of
{{ 'test.jpg' | img : "magick:resize:25%" | asset_path }}
{{ 'test.jpg' | append: ' | img : "magick:resize:25%"' | asset_path }}

But no joy :)

Complicated logic like that will probably never be doable, all things considered Proxies are ran outside of proxies, not as a part of them because I didn't feel that Sprockets API was tidy enough for me to build them into Sprockets, so we actually pull out your asset and then proxy independently as part of the final step in the pipeline.  This might change with Sprockets 4 but I've yet to even see anything resembling a release date there.
That said, this is a direct duplicate of https://github.com/jekyll/jekyll-assets/issues/199 so I'm going to close this in favor of that that is asking for us to allow {% asset_path asset | filters %}.


Portable windows build

Hello, can we get an example of how to make a portable windows build? So you can download the exe without having to run the MSI.
Thank you.

Tauri requires an installer if you define app resources, external binaries or running on environments that do not have Webview2 runtime installed. So I don't think it's a good idea to have a "portable" option since a Tauri binary itself isn't 100% portable.

Why is it possible to have AppImage on Linux but not .exe on Windows ?

An app image basically bundles together all of its dependecies under one cohesive executable unit. A Windows executable file does not necessarily do the very same thing. I'll chalk this up to a difference between platform interfaces.

When building for Windows 10, the .msi installer is quite small (~2MB for a basic app). Does that contain everything the app needs to install on a Windows 10 machine or does it pull anything from the internet?
I'm wondering if instead of a traditional installer that requires admin permissions, the app transparently installs the necessary dependencies into Appdata instead. I suspect this wouldn't be helpful for a large app with lots of dependencies, but for smaller apps this could be helpful in reducing friction with the user, both by eliminating superflous install screens menus and the need to provide admin privileges.
Is this theoretically possible with Tauri?

The .msi does indeed download something from the internet - the WebView2 installer if it's not present on the system already.
An installer that does not require admin privileges will be part of v1.3 with the new nsis target - luckily webview2 does have an user-wide install mode too for quite some time now.

@Milo123459 the I think the Tauri v2 added a portable setup. They are calling it offlineInstaller. I haven't tested myself but will try soon!
https://v2.tauri.app/distribute/windows-installer/#offline-installer
Although this is a BIG deal I didn't see any announcement.


Corrected folders name under "keystore" in docker-compose

The folders name under /keystore directory are "l1" & "l2".
But in docker-compose, we have used in upper case "L1" & "L2", which is creating a problem while running the containers.
So I have corrected them in docker-compose.

The folders name under /keystore directory are "l1" & "l2".
But in docker-compose, we have used in upper case "L1" & "L2", which is creating a problem while running the containers.
So I have corrected them in docker-compose.

Great Catch I also had the Same Issue. Is this repo still being maintained? We are building a one click solution and would like to upgrade the repo to run with our system as well.


Fix partial errors being missed in nagios

Errors from exceptions in the backup process were being reported, but no errors were reported if some apps or juju controllers failed in the backup process (while others may have succeeded).
WIP: this is my initial PoC; I haven't tested it yet.
Fixes: #55

I manually tested the two scripts with example auto_backup_results.json files. :)


hassio CLI yields unauthorized 401 json parsing error

Home Assistant release (hass --version):
0.69.1
Hassio CLI version:
1.0.1
Component/platform:
CLI
Description of problem:
After updating hassio to 0.69.1, all CLI operations yield a javascript error
Expected:
No Errors
Traceback (if applicable):
core-ssh:/config# hassio ha info
Error decoding json invalid character ':' after top-level value: 401: Unauthorizedcore-ssh:/config#
Additional info:
every cli command yields the same json error above.

so more info, supervisor logs show the follow error in correspondence to the above:
18-05-31 00:54:45 WARNING (MainThread) [hassio.api.security] Invalid token for access /homeassistant/info

looks like hassio: was missing from configuration.yaml, which was preventing the ssh addon from being updated.  Once this was updated, the hassio cli went to version 1.0.3, which was compatible with the supervisor API updates.

@tfielding may I ask how you did the update? I'm stuck with neither Hassio UI rendering nor being able to run any of the update commands using the CLI through SSH.

after adding "hassio:" into my configuration.yaml, I was able to view the HassIO tab in the UI which allowed me to update the ssh addon.  Maybe there is a way to perform addon updates through the supervisor ssh session: https://developers.home-assistant.io/docs/en/hassio_debugging.html ?

@tfielding Thanks! I'll see if I can make this work.


Edge browser detects wrong version

I tried your demo site with Edge browser and it returned user agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763
but incorrectly says version is 18, but it actually is 44.17763.1.0 as show below from the app settings:

Can you fix so that is show the correct version?

Agreed. Edge app versions are not exposed and according to the Edge team, they should not be used to identify the browser.


ARROW-13265: [R] cli valgrind errors in nightlies

@github-actions crossbow submit test-r-linux-valgrind

@github-actions crossbow submit test-r-linux-valgrind

Can you add a comment explains why this env var is being set? Link to the cli issue maybe too.
Should we remove this change once cli is fixed or does it not really matter?

Thanks, I've added comments + a link. It also looks like a {cli} fix is already in a PR (though it'll need to be released to cran to help us on this front).
I do think we should remove it once it is fixed in the interest of cleanliness and the possibility something like this crops up again (or the incredibly unlikely circumstance we do something interacting with threaded-cli that causes an error) since this env var is (likely) not set on BDR's valgrind checking machine.


Allow to use in-cluster decryption feature of flux

Related command

az k8s-configuration flux create
az k8s-configuration flux kustomization create
Is your feature request related to a problem? Please describe.

Flux has this great feature of in-cluster decryption with sops and it's missing on AKS gitops extension because there is no parameter for that.
Describe the solution you'd like

It would be nice to be able to specify decryption provider and decryption secret in kustomization as described here
Describe alternatives you've considered

Additional context

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

@bavneetsingh16 , can you pl. take a look at this?

@mfilotto, thanks for raising this feature request. We are currently evaluating the request internally and will get back to you shortly.

@mfilotto, you can create a child resource in your git repository similar to https://fluxcd.io/flux/components/kustomize/kustomizations/#decryption to use in-cluster decryption.

A new flux version(v1.11.1) release is currently in progress. It will provide the option to use workload identity for kustomize controller. More details on its implementation can be found here here.
To use workloadIdentity for kustomize controller, please follow this doc.


clarify windows update module readme

fix module and resource name confusion.
Add a summary of xWindowsUpdateAgent
This PR was opened because the original PR #70 was mistakenly targeting the master branch.

This change is

Codecov Report

Merging #72 into dev will not change coverage.
The diff coverage is n/a.

@@        Coverage Diff        @@
##           dev   #72   +/-   ##
=================================
  Coverage   62%   62%
=================================
  Files        2     2
  Lines      307   307
=================================
  Hits       191   191
  Misses     116   116

Another try merging this @travisez13, this time against the dev branch :smiley:

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


[Feature] Add Project Structure to Contributing Section of README

Problem
The current README lacks a clear description of the Quantifying project's structure, making it possibly difficult for contributors to understand how the project is organized.
Description
Adding a structured layout of the project will provide contributors with a clear understanding of the project's organization and help them navigate through different components easily. This will include a hierarchical representation of directories and files with descriptive comments, similar to the example provided in the Additional Context section. This will also be useful in the future for data flow purposes.
NOTE: Since this repository is relatively too big to fit everything in one page or document, it may be better to split it into different sections by folder.
Alternatives
One alternative is to leave the README unchanged or put it in CONTRIBUTING.md instead, but this would result in a lack of clarity for contributors trying to understand the Quantifying project's structure specifically, because there is no separate CONTRIBUTING.md file for this repository. Providing this structured layout directly in the README is a more user-friendly approach and enhances the overall contribution experience.
Additional context
This enhancement aligns with our goal of improving documentation and making the project more accessible to contributors. By clearly outlining the project structure, we aim to streamline the onboarding process for new contributors and facilitate collaboration within the community.
Implementation

[x] I would be interested in implementing this feature.

@naishasinha I expect this issue to be resolved during Google Summer of Code (GSoC), but if people want to discuss directory organization proposals, I think that would be helpful. I recommend you remove the screenshot from the issue description and then submit a comment with your proposed structure, formatted in markdown.

This issue is labeled 🚧 status: blocked because no pull requests (PRs) should be opened for it
This issue is labeled 💬 talk: discussion because discussion here in this issue is encouraged

Sounds good, thank you!

Completed during Google Summer of Code (GSoC) 2024


What's the model_path and data_name on inference code?

On wavllm,  we need to run the following inference code. I just wonder what's the model_path and data_name?

You need to download the checkpoint, then set the $model_path to the local path of checkpoint, the $data_name is the path of .tsv

I donwload the checkpoint final.pt to the directory of  SpeechT5/WavLLM
then  I run:    cp -r wavllm fairseq/examples   cd fairseq     bash examples/wavllm/scripts/inference_sft.sh  ../final.pt  examples/wavllm/test_data/gaokao.tsv as the README says. But  it says： FileNotFoundError: [Errno 2] No such file or directory: '../decode_final_beam1/examples/wavllm/test_data/gaokao.tsv/generate-examples/wavllm/test_data/gaokao.tsv.txt'. Is there anything wrong?

You need to download the checkpoint, then set the $model_path to the local path of checkpoint, the $data_name is the path of .tsv

If the path of my test data is "fairseq/examples/wavllm/test_data/asr.tsv" then what the $data_name should be? I once tried absolute path but it throw FileNotFoundError.

it should be "asr"


Add new devices

Pull Request Test Coverage Report for Build 1328

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

Totals

Change from base Build 1325:
0.0%

Covered Lines:
996

Relevant Lines:
996

💛  - Coveralls


Please Add Joystick Selection Slider shortcuts to hotkey options

Like:
Hotkey Settings
Fn + S1 = D-PAD MODE:  Right Stick      (not Dpad Right Analog)
I think it's more convenient to switch for the controller without slider.

Please read the documentation as this already exists. https://gp2040-ce.info/hotkeys/

Please read the documentation as this already exists. https://gp2040-ce.info/hotkeys/

Please carefully read my instructions.
Fn + S1 = D-PAD MODE: Right Stick (not Dpad Right Analog)
Dpad right analog exists, but Joystick Selection Slider  doesn't .
I want to hold down this button(like Fn + s1) to switch, and once released, it will revert back to D-pad.

Please read the documentation as this already exists. https://gp2040-ce.info/hotkeys/

Please carefully read my instructions. Fn + S1 = D-PAD MODE: Right Stick (not Dpad Right Analog)
Dpad right analog exists, but Joystick Selection Slider doesn't . I want to hold down this button(like Fn + s1) to switch, and once released, it will revert back to D-pad.This way, there is no need to switch back to D-pad through shortcuts again. I am not good at english. Hope you can understand what i want

Hi @TheWarming ,
This was read carefully, your initial comment was not clear.
This is not something we are looking to implement at this time.


Resolve pseudo absolute paths

Tryed to find the decision for 2 days.
File structure:
- package.json
- node_modules
- fuse.js
- webpack.config.js
- scripts
  | - Core
      | - Client
          | - Render.tsx
      | - Server
          | - Render.tsx
          | - ORM.ts
      | - Server.ts
      | - Client.ts
  | - View
      | - ...
  | - Config.ts
  | - ORM.ts
  | - ...

fuse.js
var webpack = require('webpack');
var fs = require('fs');
var path = require('path');
var GitRevisionPlugin = require('git-revision-webpack-plugin');
var gitRevisionPlugin = new GitRevisionPlugin();

const {
    FuseBox,
    BabelPlugin,
    QuantumPlugin,
    JSONPlugin,
    EnvPlugin,
    TypeScriptHelpers
} = require("fuse-box");

const isProduction = false;
const version = gitRevisionPlugin.branch() + '_' + gitRevisionPlugin.version();

const fuse = FuseBox.init({
    homeDir: "scripts/",
    output: "$name.js",
    sourceMaps: true,
    tsConfig : "tsconfig.json",
    cache: true,
    modulesFolder: path.resolve(__dirname, "scripts"),
    plugins: [
        EnvPlugin({
            'SERVER': true,
            'PROD': isProduction,
            'VERSION': "\"" + version + "\""
        }),
        JSONPlugin(), TypeScriptHelpers(),
        isProduction && QuantumPlugin({
            removeExportsInterop: false,
            uglify: true
        }),
    ],
    shim: {
        jquery: {
            source: "node_modules/jquery/dist/jquery.js",
            exports: "$",
        },
    }
});

const server = fuse.bundle("server").target("node")
    .globals({
        'SERVER': true,
        'PROD': isProduction,
        'VERSION': "\"" + version + "\""
    })
    .instructions(` > Core/Server.tsx`)

fuse.run();

webpack.config.js
var webpack = require('webpack');
var fs = require('fs');
var path = require('path');

var CompressionPlugin = require("compression-webpack-plugin");
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var WebpackShellPlugin = require('webpack-shell-plugin');
var WebpackNotifierPlugin = require('webpack-notifier');
var UglifyEsPlugin = require('uglifyes-webpack-plugin');
var GitRevisionPlugin = require('git-revision-webpack-plugin');

module.exports = function(env) {
    var gitRevisionPlugin = new GitRevisionPlugin();

    var isProd = env && env.prod;
    var version = gitRevisionPlugin.branch() + '_' + gitRevisionPlugin.version();

    var nodeModules = {};
    var includeModules = ['.bin'];

    fs
    .readdirSync(path.resolve(__dirname, 'node_modules'))
    .filter(x => includeModules.indexOf(x) === -1)
    .forEach(mod => nodeModules[mod] = `commonjs ${mod}`);

    return {
        externals: nodeModules,
        entry: {
            js: ['babel-polyfill', 'reflect-metadata', 'fetch-everywhere', path.resolve(__dirname, 'scripts/Core/Server.tsx')],
        },
        output: {
            path: isProd ? path.resolve(__dirname, 'dist', version) : __dirname,
            filename: 'server.[name]',
            libraryTarget: "umd",
            library: 'Server',
            umdNamedDefine: true
        },
        resolve: {
            extensions: ['.ts', '.tsx', '.js', '.json'],
            modules: [
                path.resolve(__dirname, 'scripts'),
                path.resolve(__dirname, 'node_modules')
            ]
        },
        target: 'node',
        module: {
            rules: [
                {
                    test: /\.json$/,
                    loaders: [
                        'json-loader'
                    ]
                },
                {
                    test: /\.(tsx|ts)$/,
                    loader: 'ts-loader',
                }
            ]
        },
        devtool: isProd ? 'source-map' : 'eval',
        plugins: [
            new webpack.DefinePlugin({
                'process.env': {
                    'SERVER': true,
                    'PROD': isProd,
                    'VERSION': "\"" + version + "\""
                }
            }),
        ].concat(isProd ? [
            // To Prod
            new UglifyEsPlugin({
                sourceMap: true
            }),
            new webpack.LoaderOptionsPlugin({
                minimize: true
            }),
            new webpack.optimize.AggressiveMergingPlugin(),
            new webpack.optimize.OccurrenceOrderPlugin(),
        ] : [
            // To Dev
            new WebpackNotifierPlugin(),
            new webpack.BannerPlugin({
                banner: 'require("source-map-support").install();',
                raw: true,
                entryOnly: false
            }),
        ])
    }
}

Server.ts (top)
import 'babel-polyfill';
import 'reflect-metadata';
import 'fetch-everywhere';

import * as cluster from 'cluster';
import * as os from 'os';
import * as express from 'express';
import * as bodyParser from 'body-parser';
import * as http from 'http';
import * as cookieParser from 'cookie-parser';
import * as session from 'express-session';
import * as helmet from 'helmet';
import * as graphqlHTTP from 'express-graphql';
import * as graphql from 'graphql';
import * as subscriptionServer from 'subscriptions-transport-ws';
import * as multer from 'multer';
import * as fs from 'fs';
import * as path from 'path';
import * as compression from 'compression';
// import ddos = require('ddos');
// import ddos from 'ddos';

// Config
import Config from 'Config';
(global as any).language = Config.defaultLanguage;
(global as any).languages = Config.languages;
(global as any).translation = Config.translation;

import * as Translation from '../Translation';
import * as ORM from '../ORM';
import * as Query from '../Query';
import * as Log from '../Core/Server/Log';
import { SessionStore } from '../Core/Server/Session';
import { Render } from '../Core/Server/Render';
...

With webpack it works fine. But with node fuse:
→Typescript config:  \tsconfig.json

--------------------------
Bundle "server"

    Core/Server.jsx
    Core/Config.js
    Core/Translation.js
    Core/ORM.js
    Core/Query.js
    Core/Core/Server/Log.js
    Core/Core/Server/Session.js
    Core/Core/Server/Render.js
└──  (8 files,  12.3 kB) default
└── source-map-support 16.3 kB (1 files)
...
  → WARNING Library "readable-stream" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "readable-stream" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "readable-stream" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "inherits" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "inherits" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "inherits" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "util-deprecate" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "inherits" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "inherits" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "inherits" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
  → WARNING Library "debug" contains "browser" field. Set .target("browser") to avoid problems with your browser build!
...

Issues:

Modules folder is not working (modulesFolder for path.resolve(__dirname, 'scripts')).
Warnings.

Thanks!

And your question is?

Updated

You should use aliases instead, you can't set modulesFolder to the same location as your homeDir

Why I don't receive an error message about not found a module?
With alias it works! Thanks.
For others:

    alias: {
        "Config": path.resolve(__dirname, "scripts", "Config.tsx"),
        "Error": path.resolve(__dirname, "scripts", "Error.tsx"),
        "Header": path.resolve(__dirname, "scripts", "Header.tsx"),
        "ORM": path.resolve(__dirname, "scripts", "ORM.tsx"),
        "Query": path.resolve(__dirname, "scripts", "Query.tsx"),
        "Reducer": path.resolve(__dirname, "scripts", "Reducer.tsx"),
        "Router": path.resolve(__dirname, "scripts", "Router.tsx"),
        "Tool": path.resolve(__dirname, "scripts", "Tool.tsx"),
        "Translation": path.resolve(__dirname, "scripts", "Error.tsx"),
        "Validation": path.resolve(__dirname, "scripts", "Validation.tsx"),
        "Worker": path.resolve(__dirname, "scripts", "Worker.tsx"),
        "Components": path.resolve(__dirname, "scripts", "Components"),
        "Composer": path.resolve(__dirname, "scripts", "Composer"),
        "Core": path.resolve(__dirname, "scripts", "Core"),
        "Modules": path.resolve(__dirname, "scripts", "Modules"),
        "View": path.resolve(__dirname, "scripts", "View"),
        "Validation": path.resolve(__dirname, "scripts", "Validation"),
    }

How to use global variables or env ones? If I call console.log((global as any).VERSION); I receive undefined, but I have in fuse.js:

    .globals({
        'SERVER': true,
        'PROD': isProduction,
        'VERSION': "\"" + version + "\""
    })

Your aliases aren't correct, you can't use path resolve it's not a webpack, read up please. "~/folder"

It works throw... Could you correct me, please?

alias: {
        "Config": "~/scripts/Config.tsx"),
}

I would recommend creating an alias on a folder
alias: {
        "lib": "~/scripts"),
}

and then
import("lib/Config")

globals  has nothing to do with the variable globals.
Read first here
Use EnvPlugin together with Quantum

It doesn't work. Fuse tries to find it in a user's dir.
Your recommendation isn't useful because I have ("baseUrl": "./scripts") in tsconfig.json. And I can't say to Fuse that "lib" is a root.
My decision is't working because Fuse cannot resolve node_modules in alias files...
It is still an issue.
{
  "compilerOptions": {
    "target": "es6",
    "lib": [
      "esnext",
      "dom",
      "esnext.asynciterable"
    ],
    "module": "commonjs",
    "jsx": "react",
    "typeRoots": [
      "node_modules/@types"
    ],
    "stripInternal": true,
    "noLib": false,
    "baseUrl": "./scripts",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowJs": true
  },
  "compileOnSave": false,
  "suppressImplicitAnyIndexErrors": true,
  "exclude": [
    "node_modules",
    "public",
    "dist",
    "server.js",
    "tool.js",
    "worker.js"
  ]
}

[ ] How to use env variables?

console.log(process.env.TEST); -> undefined
with:
        EnvPlugin({
            'SERVER': true,
            'PROD': isProduction,
            'VERSION': "\"" + version + "\"",
            'TEST': "\"HELLO!\""
        }),

Did you read the documentation? Why are you escaping it? It's not Webpack! Please, read documentation first and then open issues

I have red all.

Alias are below (I was not right with the looking folder). But after starting I've got the message (It means that the script cannot find a module, but compiling is good):

C:\Users\User\Documents\blogs\server.js:10304
global.language = Config_1.default.defaultLanguage;

TypeError: Cannot read property 'default' of null
...

    alias: {
        "Config": "~/Config.tsx",
        "Error": "~/Error.tsx",
        "Header": "~/Header.tsx",
        "ORM": "~/ORM.tsx",
        "Query": "~/Query.tsx",
        "Reducer": "~/Reducer.tsx",
        "Router": "~/Router.tsx",
        "Tool": "~/Tool.tsx",
        "Translation": "~/Error.tsx",
        "Validation": "~/Validation.tsx",
        "Worker": "~/Worker.tsx",
        "Components": "~/Components",
        "Composer": "~/Composer",
        "Core": "~/Core",
        "Modules": "~/Modules",
        "View": "~/View",
        "Validation": "~/Validation",
    }

To get env or global varialables I have tried: console.log(exports), console.log(process.env.TEST), console.log((global as any).env), console.log((global as any)). I can use ReplacePlugin instead, but this is not correct.

You can expose your package variables to window (in browsers) or exports (in Node).

You config doesn't export default this is a non-standard stuff from Babel.
Read more here: http://fuse-box.org/page/quantum#removeexportsinterop
import * as Config from "./config"
import Config from "./config" is incorrect (if a module doesn't export default)

Read more!!! ~ means root. Do you have source/Config? or is it ~/Core/Config

Yes, I have it. Here is the source file. Even so it compiles well in webpack now. And Fuse get it if I change from 'Config' to '../Config'.
source/Config.tsx
import * as fs from 'fs';
import * as path from 'path';

let config = fs.readFileSync(path.resolve('./config.json'), "utf8");
config = JSON.parse(config);

let languages: any = {};

function reduce(language, row): any {
  let finish = true;
  let res = Object.assign({}, row);

  for (let key in res) {
    if (typeof res[key] == 'object') {
      finish = false;
      res[key] = reduce(language, res[key]);
    }
  }

  if (finish) return res[language]
  else return res;
}

let data = fs.readFileSync(path.resolve('./translation.json'), "utf8");
data = JSON.parse(data);

config['languages'].forEach(language => {
  languages[language] = reduce(language, data);
});

config['translation'] = languages;

export default config as any;

You can't use absolute paths in fusebox for browser builds again, it's not webpack

So, how to use alias? I suppose if I type import * as Config from "Config" with "alias":
    alias: {
        "Config": "~/Config.tsx",
    }

"Config.tsx" file should be imported. But if i type import * as Config from "../Config" despite on "alias" the file will be imported anyway. Then "alias" is not useful?

Read up on aliases

To explain why i am confusing. Here is the explanation. For me import * as Config from "Config" is not an absolute path because it doesn't contain a root path.


Not working

if I follow the install procedure of this plugin I get:
Internal Error: Unable to load this plugin class \Kanboard\Plugin\Theme_auto_night_day\Plugin

Sorry, as per commit of the readme, the naming matters (and the readme had an incorrect capital mentioned).
If you rename the directory to theme_auto_day_night it should work!

that worked thanks. The plugin loads now and is listed in the plugins menu.
The next issue is that I don't see any interface changes. My timezone is set correctly and is 21h now here so I would expect the theme to change to dark, right?
Should  I open another issue for this?

Yeah, just spotted that ... somehow it's still looking for things with the capital, spare me a minute, trying to get it working. You should get settings in 'integrations' but somehow they don't show up.

Taking some time ... Templates/layout/head could just take in
use Kanboard\Model\Config;
$configModel = new Config($this->container);

But for some reason in the last release this isn't working anylonger. Looking into @fguillot code what is changed and/or what I can use

@mkauzlar Could you retry, also changed back the naming (so with capital T) again until 1.0.28 is finished (as that seems to provide a solution for naming).

Seems to be working ok now


Include Support for S3 Pre-Signed URLs

Adding pre-signed URLs would be a huge addition in terms of data security for us.
https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html
https://docs.aws.amazon.com/cli/latest/reference/s3/presign.html

Just in case anyone ends up here looking for the pre-signing functionality like I did.
This functionality does exist and is publicly accessible, however, the API doesn't resemble the other AWS SDK's that amazon demonstrates in their documentation.  Here is an example for signing an S3 PutObject URL for the us-east-1 region.
import AWSSDKSwiftCore

let credential = Credential(accessKeyId: "KeyId", secretAccessKey: "Secret")
let signer = Signers.V4(credential: credential, region: .useast1, service: "s3", endpoint: nil)
let urlToSign = URL(string: "https://mybucket.s3.amazonaws.com/path/to/file/key")!
let presignedURL = signer.signedURL(url: urlToSign,  method: "PUT", date: Date(), expires: 180)

Obviously it is not a good idea to hardcode your credentials like I've shown here, so feel free to use one of the CredentialProviders that have been implemented in the library.

Hi guys,
I added a public api for generating signed URLs to AWSClient.
let s3 = S3(.euwest1)
let url = "https://mybucket.s3.amazonaws.com/key/for/my/file"
let signedURL = s3.client.signURL(url: url, httpMethod: "GET")


Staging an application, CC blocks on first_response from DEA

Staging is a mostly asynchronous process, however when CC starts staging an app,
it will wait for the "first_response" (stream staging url) from the DEA.
https://github.com/cloudfoundry/cloud_controller_ng/blob/master/lib/cloud_controller/dea/app_stager_task.rb#L44-L48
app_stager_task.rb
# First response is blocking stage_app.
@multi_message_bus_request.on_response(staging_timeout) do |response, error|
  logger.info('staging.first-response', app_guid: @app.guid, response: response, error: error)
  handle_first_response(response, error, promise)
end

In discussion with @fraenkel , he indicated that we should not need to wait on this call and he does not believe we do anything with that url anyway.   Also similar change was made for Diego-based staging, so he suggested we do similar for DEAs and do not block on this call.
NOTE: At this point you might be thinking,

"hey Mark this this is CC code, why are you creating a GH issue for dea_ng?"

Well, since this is a key CC / DEA interaction,  Michael suggested RuntimeOG team take a look.
Cheers

We are looking at using HTTP rather than NATs to solve this issue. This is currently underway and should be delivered within the upcoming week.
See https://www.pivotaltracker.com/story/show/112002909


after update, C/C++ Extension stopped working in VSCode insiders

VSCode Version: Version: 1.45.0-insider (system setup)
Commit: 4bd206856db30c27d38aa0f1fbe74bac6156edc7
Date: 2020-04-29T05:33:59.143Z
Electron: 7.2.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18362
OS Version: Windows 10

Steps to Reproduce:

run VSCode Insiders
write code/run task
watch VSCode insiders being slow, Intellisense not working, ctrl+shift+B not running task etc.

Check this image:

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

Can you provide a copy/pastable task that I can use to try to repro with?

@alexr00 We are seeing tons of VS Code Insider user reports involving the error "The task provider for "C/C++" tasks unexpectedly provided a task of type "shell": https://github.com/microsoft/vscode-cpptools/issues/5388 . It doesn't appear with VS Code non-Insiders and repros with our insiders and non-insiders versions of our C/C++ extension so it seems like it's a VS Code Insiders regression and not a bug with our extension. I don't understand the repro yet though.

Hi @alexr00, again a ton of reports about "The task provider for "C/C++" tasks unexpectedly provided a task of type "shell" for @PlatformIO. How could we fix it?

@ivankravets It looks to be a two-fold issue... recent change in VSCode has exposed an configuration issue in the C/C++ extension. Explained here: https://github.com/microsoft/vscode-cpptools/issues/5388#issuecomment-625275433, with a fix to hide that message due in the next few days: https://github.com/microsoft/vscode-cpptools/issues/5388#issuecomment-626082004

@ivankravets We shipped a fix for 0.28.0-insiders3 Friday evening, but we found some last minute issues so 0.28.0 won't be released till  Tuesday evening probably.

Thanks, @sean-mcmanus, for the updates!

@faelv Look for code that creates vscode.Task objects with the source field being undefined.

Thanks for the reply @sean-mcmanus. Source is "composer", a string... maybe I should wait for a new build.

Thanks for the reply @sean-mcmanus. Source is "composer", a string... maybe I should wait for a new build.

Just pointing out that it keeps happening in 1.46.1

@faelv There's a difference between the "source" and "type" (that I didn't realize previously), so you should double check that all the "type" strings are not undefined. You can refer to the PR at https://github.com/microsoft/vscode-cpptools/pull/5585/files where I fixed an issue where we were using an incorrect "source" of type "shell" instead of "C/C++" where the "type" is "shell". We have another work in progress PR to try to change the "type" to "cppbuild" at https://github.com/microsoft/vscode-cpptools/pull/5659 that may be helpful as well.


Request - Discord intergration

Hello! Would it be possible to maybe have discord intergration in over this plugin?
or maybe a seat-discord that could interact with seat-groups
from seat you can click on discord and you can get a server invite from there and a member role is granted.
and then seat-discord would read seat-groups to add/remove other groups?

Nice to hear
got access to slack after i had asked and saw his startup of the discord connector but lets hope he would support Seat-Groups

I am going to close this issue out of following reasons:

Warlof will not support channel Mgmt with Discord integration. At least not at the moment
If ever supported it will respect roles
SeAT-Group is build agnostic and may have bound multiple roles. To work with slackbot or discordbot you may create an empty role f.e. Directors with no affiliation or permissions and assign the SeAT-Group to the empty director role. (NOTE: the role must not be empty)


Update docker compose command to V2

What this PR does / why we need it?
This PR changes the command in docker compose V1 that was being used by the CI workflow to the V2 command, so that the CI workflow no longer fails.
Also, all V1 commands used in the documentation have been changed to V2 commands.
Any background context you want to provide?
This issue is caused by ubuntu images in the actions runner no longer supporting docker compose V1.
More context is provided in https://github.com/yorkie-team/yorkie/issues/949
What are the relevant tickets?

Fixes #
Checklist

[x] Added relevant tests or not required
[x] Didn't break anything

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix#3601: Added support for hours, mins and seconds

⚠⚠⚠ Since we do not accept all types of pull requests and do not want to waste your time. Please be sure that you have read pull request rules:
https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma
Tick the checkbox if you understand [x]:

[x] I have read and understand the pull request rules.

Description
Fixes #3601
Type of change
Please delete any options that are not relevant.

User interface (UI)

Checklist

[x] My code follows the style guidelines of this project
[x] I ran ESLint and other linters for modified files
[x] I have performed a self-review of my own code and tested it
[x] I have commented my code, particularly in hard-to-understand areas (including JSDoc for methods)
[x] My changes generates no new warnings
[ ] My code needed automated testing. I have added them (this is optional task)

Screenshots (if any)

Please do not use any external image service. Instead, just paste in or drag and drop the image here, and it will be uploaded automatically.

@laupse


Create github-repo-clipper.json

Sample output of this repo
---
title: "web-clipper-templates"
owner: "obsidian-community"
source: "https://github.com/obsidian-community/web-clipper-templates"
website: "/topics/obsidian-md"
description: "Community collection of templates for the official Obsidian web clipper."
stars: 78
tags:
  - "github"
  - "repo"
  - "obsidian-md"
  - "obsidian-web-clipper"
created: 2024-11-18
---
## README

This is a community collection of templates for the official [Obsidian Web Clipper extension](https://github.com/obsidianmd/obsidian-clipper). We are still under construction.

**Helpful resources**

- What is Obsidian Clipper? [Read about it here](https://obsidian.md/clipper).
- Come chat about Obsidian Web Clipper in the `#obsidian-clipper` channel on the [Obsidian Discord](https://discord.gg/obsidianmd).
- Have an issue with Obsidian Web Clipper? Report it at the [Obsidian Web Clipper GitHub](https://github.com/obsidianmd/obsidian-clipper/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen).

Thanks, @t-kelly! I'll approve PR, and add some (possible) follow-ups/feedback here:

"website" property will not "work" (correctly) unless something is set (which is fine, I guess)
As/if github stars is number only, it won't work for "larger repos", e.g. 5k/24k, and only show 24k (e.g. repo-stars-counter-star for grafana/loki repo which is 24k will translate to "24" only, whereas it is actually ~24000). I suggest we try to extract the actual number (plain text or value). Maybe using {{selector:#repo-stars-counter-star?title}} (seems to extract the exact value, in this case).
would love if it was possible to extract code/language if set (e.g. from raw README.md), but that might be a track for later.


Is there way to have multiple blueprint file?

Given the fact that a large blueprint requires a very long list of parameters in blueprint.json. Would it be ideal to have each artifact a blueprint file so we could manage easier? I think that could be technically done by refactoring/extending the current Az.Blueprint module?

I'm not sure I'm following - today each artifact is in it's own file. Can you elaborate a bit?

Thank for your reply @alex-frankel . With the current design, there is one blueprint definition file that stores all parameters. Would it be an ideal approach if we could have each artifact a blueprint definition. For example I could manage my VM artifact's parameters in something called blueprint.vm.json ?

I see - so instead of having a single blueprint.json, you want one for each artifact. Is that right?
If that's the case, this is not a change we are likely to make in the short term unfortunately.

Yes it is what I'd like - so hopefully we would have an easier way for managing large blueprint in the future. Thanks for the reply @alex-frankel

You can create multiple blueprints.  Also you could create a process for merging the blueprints. For me I use everything as yaml and convert to json and build out the structure. I have the yaml broken out into groups.


Update Dart SDK to 1.19.0-dev.4.0.

/cc @abarth @Hixie

/home/travis/build/flutter/flutter/bin/cache/dart-sdk/bin/dart: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.16' not found (required by /home/travis/build/flutter/flutter/bin/cache/dart-sdk/bin/dart)

Looks like this version of dart requires a GLIBC that Travis doesn't have.

Yeah.  I'm tracking this down.  The dev compiler folks hit the same snag...

Before landing this patch, we should make sure we understand the new OS requirements being introduced and update our documentation to reflect it.

Some details on the trusty build env: https://docs.travis-ci.com/user/trusty-ci-environment.
Looking into other considerations...

Requiring sudo has implications that I think we tried to get out of before. Does "trusty" not work without it?

I believe sudo is required...  Maybe @whesse knows more?

I don't think we need to require sudo.

I don't think we need to require sudo.

I'm pretty sure that this build failed when I didn't have it set.
https://travis-ci.org/flutter/flutter/builds/150783951
Happy to roll it back and try again?

I would expect that error to be generated when not using trusty rather than when not using sudo.

I see. https://docs.travis-ci.com/user/trusty-ci-environment/
The trusty environment requires containers.

Sorry.  requires sudo.

Yeah.  Unfortunate.  Now the question is whether there's any other alternative.  I'll do some more poking around.

I'm not sure we want to require Trusty to use Flutter.  For example, requiring trusty prevents our customers from using a production Travis environment (Trusty support in Travis is in beta).  Our customers also lose support for Containers in Travis, which is recommend by Travis for reducing cycle times and unlocks several useful features in Travis that they use as carrots to get folks onto Containers.

Is this libc change due to the borringssl role by chance? @zanderso

There shouldn't be any connection between using C++11 features and which libc ABI you use.  For example, we use C++11 in sky_snapshot but it runs on old versions of Ubuntu.

Yes, this is due to the BoringSSL roll. Our SDK builders are now using trusty.

Looks like we build sky_snapshot on 14.04 but we're still able to run it on pre-trusty.

Dart can be built on earlier versions of linux, and/or with earlier glibc
versions.  The sdk we are building and releasing uses trusty because that
is the first release including a gcc with C++11.  It requires glibc 2.16
because the libc on trusty is 2.19, and the linker ends up using some 2.16
functions.
Anyone can build differently, using a sysroot or other Linux
distribution, and get the libc version requirement to 2.11 or less again.
Clank builds also solve the C++11 problem.
Since flutter does its own builds, I don't think it affects our
distribution of the prebuilt SDK built on trusty, does it?
The C++11 requirement does come from BoringSSL, but we may also start using
it in Dart VM code.
On Aug 9, 2016 04:15, "Adam Barth"<EMAIL_ADDRESS>wrote:

Looks like we build sky_snapshot on 14.04 but we're still able to run it
on pre-trusty.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/5295#issuecomment-238434255, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AErap7iEHB0R68glkBn-gsS52r4hWbj0ks5qd-K3gaJpZM4Jfiww
.

See https://github.com/travis-ci/travis-ci/issues/6415
You can not use Trusty on container based jobs until travis-ci/travis-ci#5695 is fixed. Regarding https://docs.travis-ci.com/user/ci-environment#Virtualization-environments the main drawback of the current Trusty support is the boot time that will be larger (there's also an issue with content_shell but flutter doesn't matter).

@whesse If we build the SDK on trusty using clang instead of gcc, would that also require the newer glibc?

Nothing requires the glibc, just if you compile using it (which is 2.19),
you get a linker requirement for 2.16 in the resulting executable.  You
need to specify a different glibc to link with, which I think is easiest
with a sysroot.  Or if you compile on precise, it only has 2.15, and you
end up with a executable requiring only 2.11.  So clang is only better
because clang works in precise, which has 2.15.
On Tue, Aug 9, 2016 at 4:46 PM, Zachary Anderson<EMAIL_ADDRESS>wrote:

@whesse https://github.com/whesse If we build the SDK on trusty using
clang instead of gcc, would that also require the newer glibc?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/5295#issuecomment-238576359, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AErap-cyjkP2Ec0REh0het9r42eOo8i4ks5qeJKugaJpZM4Jfiww
.

--
William Hesse

Sorry, I was trying to ask if the clang we pull down uses the system sysroot, or its own sysroot. That is, would a binary built with the clang we pull down also ask for glibc 2.16.

Probably.  Run ldd -v dart
on the dart executable, and it shows the libc version requirements.
The CLANG settiings, which should be all you need, are
CC: third_party/clang/linux/bin/clang
CC_host: third_party/clang/linux/bin/clang
CHROME_HEADLESS: 1
CPLUS_INCLUDE_PATH: third_party/clang/linux/lib/clang/3.4/include/
CXX: third_party/clang/linux/bin/clang++ -fsanitize=address -fPIC
CXX_host: third_party/clang/linux/bin/clang++
C_INCLUDE_PATH: third_party/clang/linux/lib/clang/3.4/include/
On Tue, Aug 9, 2016 at 5:04 PM, Zachary Anderson<EMAIL_ADDRESS>wrote:

Sorry, I was trying to ask if the clang we pull down uses the system
sysroot, or its own sysroot. That is, would a binary built with the clang
we pull down also ask for glibc 2.16.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/5295#issuecomment-238582438, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AErap_v02cXNkwmzhdsEyEAugtWtPW7eks5qeJbjgaJpZM4Jfiww
.

--
William Hesse

Since flutter does its own builds, I don't think it affects our distribution of the prebuilt SDK built on trusty, does it?

Flutter uses the dart-sdk distributed by the Dart team in our end-developer workflow.  We use it to execute Dart code on the host system (e.g., the flutter command line tool and pub).  If we upgrade to this version of the dart-sdk, our end-developers will no longer be able to use older versions of Ubuntu.

We can change our builders to build a dart sdk that doesn't require glibc
2.16.  I've had the contingency plan that we can change our SDK builders to
use a sysroot, and compile against an earlier glibc, if major customers
required it.  It sounds like that is what you (and perhaps other customers)
want, so I'll plan to make this change tomorrow, and get out a new dev
version 1.19.0-dev.5.0 that should work for you.  I'll send out an email to
dart-core-dev proposing that.
On Tue, Aug 9, 2016 at 5:52 PM, Adam Barth<EMAIL_ADDRESS>wrote:

Since flutter does its own builds, I don't think it affects our
distribution of the prebuilt SDK built on trusty, does it?
Flutter uses the dart-sdk distributed by the Dart team in our
end-developer workflow. We use it to execute Dart code on the host system
(e.g., the flutter command line tool and pub). If we upgrade to this
version of the dart-sdk, our end-developers will no longer be able to use
older versions of Ubuntu.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/5295#issuecomment-238597956, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AErap8F5e5o3R8XbqbQ4JHVQeUSvwTgRks5qeKIhgaJpZM4Jfiww
.

--
William Hesse

Thanks so much!

Yay.  Thanks Bill!

Regarding this PR, I'll hold off on landing it in favor of one integrating 1.19.0-dev.5.0 when it's cooked.

We have a fix for this, and @whesse is creating a new dev build.

Closing in favor of 1.19.0-dev.5.0: https://github.com/flutter/flutter/pull/5329


non-OBO terms with OBO PURLs

MONDO contains terms using unregistered OBO namespaces, e.g.:

http://purl.obolibrary.org/obo/OMIM_424500
http://purl.obolibrary.org/obo/SCTID_716594002
http://purl.obolibrary.org/obo/ONCOTREE_GINET

There may be others.

Another example: http://purl.obolibrary.org/obo/KEGG_05215
(thanks to @saramsey)

Some overlap with https://github.com/monarch-initiative/mondo/issues/804
for SCIT, does snomed have IRIs?

This may help: https://confluence.ihtsdotools.org/display/SLPG/SNOMED+CT+URI+Standard

I'm not sure how to address this, I'll reassign to Chris


Missing parent for job in user defined variables

Missing parent for job in user defined variables documentation when describing how to pass a variable to another stage

#label:"aq-pr-triaged"


[ERROR] : 'set-cookie'

I'm trying to download Naruto Shippuden from 9Anime and it gives this error. Here's the messages:
[INFO] : 9Anime URL detected...
[INFO] : Collecting download links...
[ERROR] : 'set-cookie'
[ERROR] : Something went wrong! Please close and restart Anime Downloader to retry!
That's it.

I am getting the same error.
Below was my configuration:
Anime:
https://9anime.to/watch/one-piece.ov8
Filler List:
https://www.animefillerlist.com/shows/one-piece

Same error.


Github api lock out for users with large following lists

I've run into a few issues with the app freezing and then refusing to start while testing users with large following lists (500+ users). This is mostly due to the fact that I'm disabling the caching system while testing. It might be worth while to ensure that it fails more gracefully or enforce an API call limit timer to ensure it doesn't happen to users.

The whole problem is that we can't fetch a single ordered page...
I think for now we'll just have to paginate it...


Decryption Error for AEAD Ciphers

When using shadowsocks-openwrt 3.0.5 and shadowsocks-py-mu 3.3.0 and chacha20-ietf-poly1305, there happens to be a Decryption Error for every request.
How can I get detailed descriptions for the error? Have you tested AEAD ciphers? Which clients works?
Thanks for your kindly help.

There is no AEAD support for early releases of ss-libev (which ss-openwrt bases on), which causes decryption error. I think this problem should have been fixed in version 3.0.1.
When I merge the commits, I found client ss-libev 3.0.0 does not work but 3.0.5 works properly (for both shadowsocks/shadowsocks and fsgmhoward/shadowsocks-py-mu, using cipher aes-256-gcm and chacha20-ietf-chacha1305).
I tested my server (fsgmhoward/shadowsocks-py-mu, version 3.3.0) again just now using chacha20-ietf-poly1305 as cipher and shadowsocks-c# @d7e5969 (newest commit) as client. Everything works great.
I think there is no problem with the server. The problem should comes from your client.

Thanks for your kind help.
Actually I am exactly using 3.0.5. So it must be my fault and sorry for the disturbing.
By the way, is there any possible methods to dump out the reason for decryption failures?

Decryption failure should appear when an exception is thrown in the decryption process.
Sry about my previous post. I found that on some of my servers (not the one I used to test previously, chacha20-ietf-poly1305 gives out decrypt failure as well.
I am investigating on this bug.

hhh
I have found my failure was due to unsuccessfully-updated packages. I think the log should distinguish between incorrect protocol and key incoordinance, which can be more friendly to find out GFW attacks.
Anyhow thanks for your help.

I just realised I failed because I forgot to change the cipher for my other profile in the client. This is not a bug.
Nvm I think I need more sleeping.