急需功能

需要一个切换对全部物品使用的按键，并且希望更多的个性化设置如：是否穿墙显示，亮度，是否发光等

以及在配置界面内切换是否开启渲染和是否开启渲染的游戏内快捷键

感谢回答，感谢您的开发，爱来自玩家们

发件人: Spyxar @.>
发送时间: 2024年11月24日 1:08
收件人: Spyxar/GlowUp @.>
抄送: ThinkofRain1213 @.>; Author @.>
主题: Re: [Spyxar/GlowUp] 急需功能 (Issue #2)
If I understand you correctly (I'm using Google Translate) you want the following features:

A toggle for the glow rendering through blocks;
A toggle to emit light (like a torch, for example);
Customizable brightness of the glow;
Keybinds to toggle all outlines.

The first and third option are currently not possible to implement as far as I'm aware, without reworking the whole system that does the glow. This is because I use Minecraft's in-built glowing feature (it's the same glow that spectral arrows give), with which it is not possible to control brightness or whether or not it renders through blocks.
The keybinds are quite simple to implement however, and will be in the next release. I will also look into glowing items emitting actual light.
―
Reply to this email directly, view it on GitHubhttps://github.com/Spyxar/GlowUp/issues/2#issuecomment-2495542959, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A6DU5GJGYQENLAWO4YG5GYD2CCZCXAVCNFSM6AAAAABSJR4HM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVGU2DEOJVHE.
You are receiving this because you authored the thread.


Is there any way to get more than 100 tracks?

Is there any way to get more than 100 tracks?

Sounds like a pretty generic question. Can you give us more context on this?
An example of a URL?

Sounds like a pretty generic question. Can you give us more context on this?
An example of a URL?

I am trying to add a spotify playlist that has more than 100 songs in it. The limit for the amount of songs that can be got from the metadata is 100. I am wondering if there is any way I can get the extra songs that are not in the metadata.

Hmm I don't know; if 100 comes from Spotify data that should be the limit for the preview on the browser


new adapter letrika_comgw - reworked

Things are messed up within my fork. So I deleted the fork. I will recreate it soon.


Turn this into PHP

Make this into something that I can make into a website, and I'll $$$!

I don't see the point of making it into PHP, it will stay as python unless I change my mind.


This snippet of "packages/api/route.go" has a few errors.

Describe the bug
I can see a few problems in this code snippet. First, the "nodeStateMiddleware" variable is given as the first parameter to the "api.Use()" function, but this variable is not defined, so its value is unknown. Therefore, the definition of the "nodeStateMiddleware" variable should be added in this code snippet. In addition, the "authRequire()" function is used in the calls to some functions such as "getContractInfoHandler" and "getContractsHandler" in this code snippet, but the function is not specified, so it is not clear what it does. Therefore, the definition of this function should also be added. If you fix these problems, I believe that the errors in this code snippet can be resolved.
Reproduction
In order to run this snippet properly, it is necessary to define the missing variables and functions. For example, it should be stated what the variable "nodeStateMiddleware" is and what it does. It should also be explained what the "authRequire()" function is and what it does. Once these are done, the errors found in this snippet can be properly resolved. However, if this information is not available, it may not be possible to correct errors.
System Info
Browser

Logs
package api

import (
	"net/http"
	"github.com/IBAX-io/go-ibax/packages/consts"
	"github.com/IBAX-io/go-ibax/packages/service/node"
	"github.com/gorilla/handlers"
	"github.com/gorilla/mux"
)

const corsMaxAge = 600

type Router struct {
	main        *mux.Router
	apiVersions map[string]*mux.Router
}

func (r Router) GetAPI() *mux.Router {
	return r.main
}

func (r Router) GetAPIVersion(preffix string) *mux.Router {
	return r.apiVersions[preffix]
}

func (r Router) NewVersion(preffix string) *mux.Router {
	api := r.main.PathPrefix(preffix).Subrouter()
	r.apiVersions[preffix] = api
	return api
}

// Route sets routing pathes
func (m Mode) SetCommonRoutes(r Router) {
	// Undefined variables are defined.
	nodeStateMiddleware := func(next http.Handler) http.Handler {
		// use variable

Validations

[x] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Thanks, The middleware has been declared in 'api/middlewares.go' file.


[MINOR]Optimization for Option

Two minor optimization for Option:
1. Keep consistency with map method in Optional
Ensure mapper is not null, even val is null and mapper will not be invoked.
2. Rewrite toString() method
Code below will print same thing:
        System.out.println(Option.of("null").toString());
        System.out.println(Option.empty().toString());

// Option{val=null}
// Option{val=null}

Codecov Report

Merging #2158 into master will decrease coverage by 6.25%.
The diff coverage is 33.33%.

@@             Coverage Diff              @@
##             master    #2158      +/-   ##
============================================
- Coverage     59.86%   53.61%   -6.26%
+ Complexity     4322     2846    -1476
============================================
  Files           552      359     -193
  Lines         22930    16537    -6393
  Branches       2314     1778     -536
============================================
- Hits          13727     8866    -4861
+ Misses         8195     6913    -1282
+ Partials       1008      758     -250

Flag
Coverage Δ
Complexity Δ

#hudicli
38.37% <ø> (-27.65%)
193.00 <ø> (-1579.00)

#hudiclient
100.00% <ø> (+25.59%)
0.00 <ø> (-1579.00)
:arrow_up:

#hudicommon
54.73% <33.33%> (-0.07%)
1794.00 <4.00> (+89.00)
:arrow_down:

#hudihadoopmr
33.05% <ø> (ø)
181.00 <ø> (ø)

#hudispark
65.51% <ø> (-1.66%)
303.00 <ø> (-7.00)

#huditimelineservice
62.29% <ø> (-1.19%)
50.00 <ø> (+3.00)
:arrow_down:

#hudiutilities
69.98% <ø> (+0.66%)
325.00 <ø> (+18.00)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ
Complexity Δ

.../main/java/org/apache/hudi/common/util/Option.java
66.66% <33.33%> (-3.61%)
23.00 <4.00> (+1.00)
:arrow_down:

...n/java/org/apache/hudi/internal/DefaultSource.java
0.00% <0.00%> (-80.00%)
0.00% <0.00%> (-6.00%)

...pache/hudi/internal/HoodieWriterCommitMessage.java
83.33% <0.00%> (-16.67%)
2.00% <0.00%> (-1.00%)

...a/org/apache/hudi/common/util/CollectionUtils.java
11.53% <0.00%> (-15.39%)
3.00% <0.00%> (-2.00%)

.../hudi/internal/HoodieDataSourceInternalWriter.java
78.12% <0.00%> (-8.98%)
6.00% <0.00%> (-2.00%)

...n/scala/org/apache/hudi/HoodieSparkSqlWriter.scala
51.14% <0.00%> (-3.76%)
0.00% <0.00%> (ø%)

...common/table/view/AbstractTableFileSystemView.java
83.33% <0.00%> (-2.72%)
133.00% <0.00%> (+28.00%)
:arrow_down:

.../apache/hudi/timeline/service/TimelineService.java
25.00% <0.00%> (-2.54%)
6.00% <0.00%> (+1.00%)
:arrow_down:

...udi/utilities/sources/helpers/DFSPathSelector.java
82.05% <0.00%> (-2.16%)
12.00% <0.00%> (ø%)

...di/common/table/timeline/HoodieActiveTimeline.java
73.73% <0.00%> (-1.92%)
40.00% <0.00%> (ø%)

... and 240 more


Add history query functionality to UI

Dependent on #119

@imaitland, do you think this is done now that we have the plots?

@amitschang yep done.


Spring Boot and Jbehave

We want to combine camunda-bpm-spring-boot-startet-test with BDD (camunda-bpm-jbehave).
Running a BDD test fails with
org.jbehave.core.embedder.Embedder$RunningStoriesFailed: Failures in running stories: ReportsCount[stories=2,storiesNotAllowed=0,storiesPending=0,scenarios=2,scenariosFailed=2,scenariosNotAllowed=0,scenariosPending=0,stepsFailed=2]
at org.jbehave.core.embedder.Embedder$ThrowingRunningStoriesFailed.handleFailures(Embedder.java:525)
at org.jbehave.core.embedder.Embedder.handleFailures(Embedder.java:269)
...
The console shows only
(java.lang.NoSuchMethodError: org.camunda.bpm.engine.test.assertions.ProcessEngineAssertions.assertThat(Lorg/camunda/bpm/engine/runtime/ProcessInstance;)Lorg/camunda/bpm/engine/test/assertions/ProcessInstanceAssert;)
It seems to be caused by conflicting versions of assertj-core. (1.7.0 to 2.6.0)
What would you change?
Cheers, Ingo

do you include camunda-bpm-assert manually in the pom?   You shouldn't do that, currently (>2.1) its included in the camunda-bpm-spring-boot-starter-test. See https://camunda.github.io/camunda-bpm-spring-boot-starter/docs/2.2.0/index.html "2. Known issues".

Would you suggest to upgrade camunda-bpm-needle to camunda-bpm-assert:2.0-alpha2?

you should exclude assert from camunda-needle ...

and ... if you use spring anyway, you should not have to use needle at all ... there must be (didn't use it for a while) jbehave-spring support.

Hi @ingorichtsmeier , is this issue still relevant? I'm in the process of moving all issues from here to Camunda Jira. Do you think it's worth creating CAM ticket for this issue?

Hi @sdorokhova, the inclusion of the assert library is a bit annoying. If we can clarify this, it would be fine.

Have you tried the proposal from @jangalinski ?

you should exclude assert from camunda-needle ...

Yes, it worked in our case.

I think the assert Extension needs a facelift, there are multiple issues already open to support Java 8, but let’s close it here because it’s not related directly to spring boot


Add a CI test for tackle-testapp with maven settings

We need to add a new test case to CI to test tackle-testapp that uses a maven settings file to get to the maven repository.

Closing for https://github.com/konveyor/kantra/issues/233


feat: AgentService & Action Interface Stubs

This PR collects a few bare-bones common elements of @EniasCailliau and @douglas-reid's agent WIP PRs.
The goal is to nail down an incredibly simplistic set of base classes that appear to be in common across all threads of prototyping, so that we increase the surface area of shared dependency.
There are two decisions in this PR which might not be shared that I'll point out here; proposal is for us to Replit-hack together and then merge this PR in:

List[Block] as the I/O format (as opposed to str or Any or Block)
SpeakAction as a distinct action that's possible, even though FinishAction also has a messages field

Closing; unnecessary since after merge of Doug's branch! 🚀


window.stop leads to uncaught exception in fetch loader

Hello.
if you unload player with flvPlayer.unload() and then execute window.stop(), it will provoke uncaught EarlyEOF exception in fetchApi promise. it's not critical, though

I have no way because the fetch stream may be cut off by the browser when executing page stop.
The exception cannot be avoided.
BTW the player.unload() interface will destroy all the resources and handles, so the http connection will be terminated by player.unload(). But the destruct of fetch stream will be asynchronous.


fix: fixed the spacing between Navbar and Heading in Newsroom page

Description
The spacing between the Navbar and the heading was irregular on the Newsroom page as compared to other pages on the website. Fixed the spacing by adding padding above the Heading similar to other pages.
Previous behavior-

Updated behavior-

Related issue(s)
Resolves #1624

/rtm

@all-contributors please add @niranjan for {EMOJI_KEY}

Hey @akshatnema, Thanks for reviewing and requesting changes. Under allcontributors guide, what should I add as an Emoji Key?
Design?Code?

@niranjan-kurhade we will add you as a part of the contributors guide. Right now, you have contributed in the part of codebase, so it should be Code.

@niranjan-kurhade we will add you as a part of the contributors guide. Right now, you have contributed in the part of codebase, so it should be Code.

Okay, Thanks!

@all-contributors please add @niranjan-kurhade for code


Relaxed version requirement for network library.

This is for making this to compile with vanilla packages from Ubuntu
Oneiric (except HSOpenSSL and monadLib which are not in Ubuntu or Debian testing repos yet). Related to issue #5.

Thanks for the change, I'll push a new point release.


Reading a Transaction with an unrelated SpaceId leads to an empty Transaction Object instead of an Exception

PHP-SDK: 3.1.2
PHP 7.2
Composer installed
When one attempts to read a transaction through the SDK with an unrelated spaceId, it will return an  empty transaction object. This is quite unexpected as reading/getting a single item through SDKs normally leads to an exception and not just an empty object.
But it seems this is due to the behavior of the API itself, not just the SDK, as it returns a 200 OK in such a case:

https://checkout.postfinance.ch/api/client/transaction-service--read
Relevant code:
https://github.com/pfpayments/php-sdk/blob/3990276041e1d369e1622be78b5831ae4587beb5/lib/Service/TransactionService.php#L152
Would it be possible to change this behavior in future releases of the SDK?

Dear ravage84
Thank you for your proposal. We will check this.
Best regards

Dear ravage84
According to our developers, this is the standard behavior, and we can't change this on our side.
Here you find the full explanation:

This is expected behavour. The reason is the following: the user account used to run the query has the access rights to read transactions.
However, based on the role assignment, the user has no access to the other space.
In our query code the space restriction is applied on a row level to filter the rows.
Hence, the result here is an “empty result set” and not an exception.
This is not possible to change and has always been working like this since the beginning of wallee.
It also works the same way if the space ID is correct, but the transaction ID does not belong to that space.

I hope this will answer your questions.
Best regards

@theodorspringwallee thanks for answer.
Yes, it answers my question.
Nontheless, please take back the following feedback:
From a develoepr perspective, this is unexpected and certainly unwanted behavior. For us and our customer, it is irrelevant how long something has been the way it is now, even though we can relate to situations like this.
Either the API or the SDK should consider to change this in a backwards compatibility breaking major release.
Thanks.

Dear ravage84
Thanks for your feedback. I just forwarded your feedback.
Best regards

Dear ravage84
Our developer has here the final statement to your feedback:

To clarify the issue here a bit more. Unfortunately this is one of those things which is embedded quite deeply into wallee code and as I mention would be impossible to change without having to refactor a lot of things.

On the other hand, it can also be looked another way. When you do a normal SQL query but give wrong parameters, the result is typically and empty result set. This is what happens here, because the code used to query ONE transaction is the same code you would use to query multiple ones (e.g. by filtering on date or something like that). So when you look at it like that it makes sense why here it behaves in this way.

Also the last reason we can’t change it now is simply because already this API exists for a long time and there could be merchants who already rely on this behaviour. Generally we can’t change our REST/SDK API in ways which make it backwards incompatible.

So from multiple standpoints making a change like this is pretty much 100% a no-go.

Also a final clarification: as merchant suspected, this “issue” is entirely on portal side and has nothing to do with the SDK implementation itself.

I hope this helps as final statement/clarification.
Best regards


Recurring tasks require due day for queries to work for ´today´

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
Currently, when entering a recurring task, no ´happens´ date entry is required.
When making a query for Todays recurring event, the impled events should be listed when using queries such as:
is recurring
happens  today

Current behaviour
Queries using `happens today´ result in 0 occurrences, even when one or more recurring events happen that day.
Queries are only successful if a due, start, or scheduled date is explicitly entered when creating or editing the recurring event.
Steps to reproduce
Create a recurring task with the first occurrence including today, and with no explicit due, start or scheduled date
run this query:
is recurring
happens  today

Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[ ] Linux
[ ] macOS
[X] Windows

Obsidian Version
1.1.16
Tasks Plugin Version
1.25
Checks

[ ] I have tried it with all other plugins disabled and the error still occurs

Possible solution
Either modify the code that simply having a recurring task implies at ´Happens´ event, or force include a due date when creating a recurring task (and the user has to decide to change it to starts or scheduled if so desired, and if nothing in entered give an error message that an explicit date is needed.

Hi @Grant837, thanks for using Tasks.

Expected Behavior
Currently, when entering a recurring task, no ´happens´ date entry is required.

This is true.
What it means is that a task that is recurring but has no happens date says:

The user does not care at all when the task is done - it can be done at any time

(Unless of course you use the facility to treat a date in a filename as in implied scheduled date.)

But, whenever it is done, a new instance of the task should be created, also with no happens date.

When making a query for Todays recurring event, the impled events should be listed when using queries such as:
is recurring
happens  today

No, it would be wrong to change the behaviour of happens to add an implied today that is not present in the user's task.
It would be forcing all users of Tasks to accept a personal opinion about the meaning of a task with no dates.
That would create all sorts of confusions - and illogical, insistent search results.

Current behaviour
Queries using `happens today´ result in 0 occurrences, even when one or more recurring events happen that day.

Yes, that is the correct and intended behaviour, for reasons explained above.

How you can get the desired effect with the current behaviour
Here's how you can already make your queries the logic you are requesting:
```tasks
is recurring
(happens today) OR (no happens date)
```

Summary: Closed as won't fix, as:

the requested implementation has undesirable side effects
the requested behaviour is already available with a boolean combination

Hi Claremacrae,  I appreciate the explanation.
So that I understand, what you are saying is that if I create recurring tasks for every Wed, and enter no date (matching the soonest Wed), that it means I do not care if I do it on Wed?  I have to admit, I do not see the logic in that (yet).
I could understand your explanation if there was an option to have a recurring task without selecting a day of the week, but I can not find such an option.
Also, your query example does not achieve what I was trying to do,  If I create recurring tasks for every Wed, starting this coming Wed. I do not want to see it in my ´Todays Task´  but I do, because it has no date (no happens date).
Thanks in advance for any explanation.
Grant

Wednesdays

So that I understand, what you are saying is that if I create recurring tasks for every Wed, and enter no date (matching the soonest Wed), that it means I do not care if I do it on Wed? I have to admit, I do not see the logic in that (yet).

No I am not saying that, because you didn't mention Wednesday anywhere earlier, so I have no idea where Wednesday came from, or what it is about your tasks that uses Wednesday, or how your Tasks likes are requesting Wednesdays.
I can only go by the information and examples that are supplied in the ticket.
Days of the week

I could understand your explanation if there was an option to have a recurring task without selecting a day of the week, but I can not find such an option.

There are lots of examples of recurrences without days of the week in the recurrences documentation, in the Examples section at the end:
https://obsidian-tasks-group.github.io/obsidian-tasks/getting-started/recurring-tasks/
How to your goal

Also, your query example does not achieve what I was trying to do, If I create recurring tasks for every Wed, starting this coming Wed. I do not want to see it in my ´Todays Task´ but I do, because it has no date (no happens date).

Aahhh, thank you for explaining clearly what you are trying to do. That is very helpful.
You need to make your task look like this, where 2023-03-29 is the next Wednesday, as I write this.
- [ ] Something that needs to be done on Wednesdays 🔁 every week on Wednesday 📅 2023-03-29

And then your query could look like this:
```tasks
not done
due before tomorrow
```

If you might sometimes do one of the tasks late or miss a week
Add when done to the end of the recurrence rule so that if you are late completing the task one week, it sets the next due date in the future:
- [ ] Something that needs to be done on Wednesdays 🔁 every week on Wednesday when done 📅 2023-03-29

Hi,
Yeah, my double or triple bad.  I was assuming that we are forced to indicate a day of the week, but after reading the manual (first bad, I had not read the recurring part in detail earlier), I saw the examples like ´every 3 days´ and also the ´when done´ option (2nd bad).  These two made clear your approach and answer.  I also saw that it was recommended to include an explicit date (my 3rd bad) in most cases.
In my defense, I depend on the pop-up utility to create my tasks, and none of this is obvious when ´learning by doing´ instead of reading the entire manual ;-)
However, I see the dilemma of the impossibility of informing the user of every possibility within a pop-up dialog, etc, but maybe adding some of those icons with a ´?´  for each entry field that links to the right place in the manual would be a possibility.
No worries.  I can now see that this plugin might still work for my way of working.   Thanks for helping me understand, and I hope maybe in the future I can offer a truly helpful idea how to improve this already good product!
Grant

Yeah, my double or triple bad.

Thank you for a reply that made me smile a lot!!

In my defense, I depend on the pop-up utility to create my tasks, and none of this is obvious when ´learning by doing´ instead of reading the entire manual ;-)
However, I see the dilemma of the impossibility of informing the user of every possibility within a pop-up dialog, etc, but maybe adding some of those icons with a ´?´ for each entry field that links to the right place in the manual would be a possibility.

Those are both very fair comments indeed! Thank you for a good and helpful, constructive suggestion.

No worries. I can now see that this plugin might still work for my way of working. Thanks for helping me understand, and I hope maybe in the future I can offer a truly helpful idea how to improve this already good product!

Delighted to hear it.
If you are stuck on something, you can always ask a question in Discussions/Q&A - or if you are the Obsidian Discord, there is a #task-management channel that has a number of people in it who are pretty familiar with tasks.


Remove version: qBittorrent.qBittorrent version 4.3.1

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

URL: https://sourceforge.net/projects/qbittorrent/files/qbittorrent-win32/qbittorrent-4.3.1/qbittorrent_4.3.1_x64_setup.exe/download
Status Code: 200
(Automated message - build 896)

Close with reason: Package still available.;


Dashboard rewrite

Architectural:

[x] ●● Layout
[x] ● URL navigation
[x] ● Status bar
[x] ●● Logger
[x] ● Side bar
[x] ●● Plugable

General:

[x] ●● Search bar
[x] ● Statistics page

User options:

[x] ● Request limit display
[x] ● Language switch
[x] ● Currency switch
[x] ● Logout

Graph:

[x] ●●● draw graph nodes
[x] ● Expand graph
[x] ●● draw links
[x] ● draw link labels
[x] ● move entity nodes
[x] ● Expand entity addresses
[x] ● select nodes
[ ] ● multi-select nodes
[x] ● display property box
[x] ●●● annotate nodes
[ ] ● sort addresses by properties
[x] ●● Neighbor search
[x] ● Remove nodes
[x] Shadow links
[x] Highlight links on hovering nodes

Data tables:

[x] ●● draw tables
[x] ● infinite scrolling
[x] ● sort table
[ ] ● search table
[x] ● load things from table row into graph
[ ] ● bulk load things from table into graph
[ ] ● download table as csv
[x] highlight cluster definer tags
[ ] mark nodes in tables if visible in graph

Tools:

[x] ● new graph
[x] ●● import options
[x] ●● export options
[x] ● Undo/Redo
[ ] ●● Highlighter
[x] ● Graph options (label display, ...)
[x] ● Legend

Case management:

[x] ● Add case
[x] ● Tag nodes for case
[ ] ● Tag seed addresses for case
[x] ●● Search cases
[x] ● Case property box
[x] ● Case data table (cases assoc. with node)
[x] ● Case addresses data table

let's skip the multi-select nodes feature for the moment (was hardly ever used)

Also, let's move case management issues to Iknaio.


Cuckoo

Hi, all the tests run perfectly. As a suggestion, maybe you can extend the explanation in the notebook on how the algorithm works. It is a bit difficult to understand it just from the notebook.

Codecov Report

Merging #3 (a0ac1b8) into Cuckoo (46d5be5) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            Cuckoo        #3   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines           65        65
=========================================
  Hits            65        65

Continue to review full report at Codecov.

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

Codecov Report

Merging #3 (a0ac1b8) into Cuckoo (46d5be5) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            Cuckoo        #3   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines           65        65
=========================================
  Hits            65        65

Continue to review full report at Codecov.

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

Hi, I'm glad the tests ran smoothly. I'll consider adding more information in the notebook or at least I'll point to the module documentation.  Thank you for reviewing my project!

Hi, I'm glad the tests ran smoothly. I'll consider adding more information in the notebook or at least I'll point to the module documentation.  Thank you for reviewing my project!


Not inject to html

Hello. I set inject true in config and all icons created but not inject to html file.
I use html-webpack-plugin 4.0.0-beta.5 and add this plugin after html-webpack-plugin.

Hi, html-webpack-plugin v4 is not supported yet. If you're interested I can look into releasing a beta version of webapp-webpack-plugin v3 with experimental support for it so we can try it out in preparation for the stable release.

See  #187

Very thanks. I update to 3.0.0-beta.1 but not working.

Thanks for trying it out! Could you share more details? What is not working?

I use create-react-app & @craco/craco plugin.
/* craco.config.js */
const path = require('path');
const CompressionPlugin = require('compression-webpack-plugin');
const {DefinePlugin, ProvidePlugin} = require('webpack');
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
const WebappWebpackPlugin = require('webapp-webpack-plugin');
const ImageminPlugin = require('imagemin-webpack-plugin').default;

const pwaManifest = require('./public/manifest');
const appConfig = require('./app.config');

module.exports = {
    webpack: {
        configure(webpackConfig, {env, paths}) {
            const proMode = env === 'production';

            // pwa manifest & icon generator
            webpackConfig.plugins.push(
                new WebappWebpackPlugin({
                    logo: path.resolve('src/assets/images/icon.png'),
                    prefix: 'static/media/icons',
                    inject: 'force',
                    favicons: {
                        appName: pwaManifest.name || '',
                        appShortName: pwaManifest.short_name,
                        appDescription: pwaManifest.description,
                        developerName: null,
                        developerURL: null,
                        background: pwaManifest.background_color,
                        theme_color: pwaManifest.theme_color,
                        orientation: pwaManifest.orientation,
                        display: pwaManifest.display,
                        logging: !proMode,
                        icons: {
                            coast: false,
                            firefox: false,
                            yandex: false,
                        },
                    }
                })
            );

            // production mode
            if (proMode) {
                // disable source mapping
                webpackConfig.devtool = 'eval';

                // minify css
                webpackConfig.plugins.push(
                    new OptimizeCSSAssetsPlugin({})
                );

                // compress images
                webpackConfig.plugins.push(
                    new ImageminPlugin({
                        pngquant: {
                            quality: '80',
                        },
                    })
                );

                // gzip compression
                webpackConfig.plugins.push(
                    new CompressionPlugin({
                        test: /\.*$/,
                        filename: '[path].gz[query]',
                        algorithm: 'gzip',
                        deleteOriginalAssets: false,
                        compressionOptions: {
                            level: 9,
                        },
                        // Only assets bigger than this size are processed. In bytes.
                        threshold: 10 * 1024,
                        // Only assets that compress better than this ratio are processed
                        // (minRatio = Compressed Size / Original Size).
                        minRatio: 0.8,
                    })
                );
            }

            return webpackConfig;
        },
    },
};

Thanks, it seems you might have forgotten to the html-webpack-plugin the the Webpack plugins array? Notice that webapp-webpack-plugin does not generate html files by itself.

create-react-app use html-webpack-plugin and I add console.log(webpackConfig.plugins) before add plugin and display:
[ HtmlWebpackPlugin {
    options:
     { template: '/projects/public/index.html',
       templateContent: false,
       templateParameters: [Function: templateParametersGenerator],
       filename: 'index.html',
       hash: false,
       inject: true,
       compile: true,
       favicon: false,
       minify: undefined,
       cache: true,
       showErrors: true,
       chunks: 'all',
       excludeChunks: [],
       chunksSortMode: 'auto',
       meta: {},
       title: 'Webpack App',
       xhtml: false },
    childCompilerHash: undefined,
    childCompilationOutputName: undefined,
    assetJson: undefined,
    hash: undefined,
    version: 4 }
]

I see, is your project available for me to clone?

Also, I see you set cache: true for the HtmlWebpackPlugin, is it possible that you didn't clean the cache before trying WebappWebpackPlugin v3?

set cache to false but not working. I sent project to gmail.

Hello, problem not found?

I found problem:
I change index.js line 74, 75:
const HtmlWebpackPlugin = require('html-webpack-plugin');
await HtmlWebpackPlugin.getHooks(compilation).alterAssetTags.tapPromise('WebappWebpackPlugin', async htmlPluginData => {

to:
const [HtmlWebpackPlugin] = compiler.options.plugins.filter(
     (plugin) => plugin.constructor.name === 'HtmlWebpackPlugin'
);
await HtmlWebpackPlugin.constructor.getHooks(compilation).alterAssetTags.tapPromise('WebappWebpackPlugin', async htmlPluginData => {

@HASSANDL I'm so sorry to keep you waiting.
Amazing job root causing this, to be frank I don't yet understand exactly what's going on, but this change still passes all unit-tests and does seem more logical than what I had before.
Stay tuned for the beta.2 release.

Very thanks. I have tested and is ok.


[ContentSwitcher] - selecting breaks in svelte 3.56.0

ContentSwitcher's reactive variable 'selected' nor style do not work.
Broken repro
https://svelte.dev/repl/f5161c55d4ba42868b602c9cd30b67ba?version=3.56.0
Working repro
https://svelte.dev/repl/f5161c55d4ba42868b602c9cd30b67ba?version=3.55.1
Maybe it's a svelte issue related to this? https://github.com/sveltejs/svelte/issues/8374

Yeah it's possibly related to the linked ticket. The maintainers intend to revert it here: https://github.com/sveltejs/svelte/pull/8382
Let's see if the issue resolves in the next Svelte patch.

Works in 3.57.0 so I'll close.
https://svelte.dev/repl/f5161c55d4ba42868b602c9cd30b67ba?version=3.57.0


Fix Android build in gn_build.sh

Problem
After #9876 and #9996, set_up_android_deps.py and generate_jars_for_test.py are a prerequisite for Android builds. They were added to the Android build scripts, but I missed gn_build.sh because it uses target_os=all.
Change overview

Invoke JAR generation scripts in gn_build.sh

Testing
gn_build.sh passes

This script does not work on Linux which prevents the Android build from working.
jonsmirl@ares:/aosp/chip$ python3 build/chip/java/tests/generate_jars_for_test.py
/home/jonsmirl/aosp/chip/build/chip/java/tests/IncludedInJar.java:4: error: cannot find symbol
IncludedInChildJar includedInChildJar;
^
symbol:   class IncludedInChildJar
location: class IncludedInJar
1 error
Traceback (most recent call last):
File "/home/jonsmirl/aosp/chip/build/chip/java/javac_runner.py", line 146, in
sys.exit(main())
File "/home/jonsmirl/aosp/chip/build/chip/java/javac_runner.py", line 130, in main
retcode = subprocess.check_call(java_args + args.rest)
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/javac', '-d', '/tmp/chip_java_build_test/classes', '/home/jonsmirl/aosp/chip/build/chip/java/tests/IncludedInJar.java']' returned non-zero exit status 1.
Traceback (most recent call last):
File "build/chip/java/tests/generate_jars_for_test.py", line 50, in
sys.exit(main())
File "build/chip/java/tests/generate_jars_for_test.py", line 45, in main
generateJar(test_dir + '/IncludedInJar.java', 'prebuilt_jar.jar')
File "build/chip/java/tests/generate_jars_for_test.py", line 30, in generateJar
subprocess.check_call(javac_runner_command)
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['python3', '/home/jonsmirl/aosp/chip/build/chip/java/javac_runner.py', '--classdir', '/tmp/chip_java_build_test/classes', '--outfile', '/tmp/chip_java_build_test/prebuilt_jar.classlist', '--build-config', '/home/jonsmirl/aosp/chip/build/chip/java/tests/empty_build_config.json', '--', '-d', '/tmp/chip_java_build_test/classes', '/home/jonsmirl/aosp/chip/build/chip/java/tests/IncludedInJar.java']' returned non-zero exit status 1.
jonsmirl@ares:~/aosp/chip$


Remove empty method

The clear_casadi_attributes() method in the Solution class doesn't do anything. Apparently the method is supposed to clear Casadi objects for pickling but this is not necessary since the Solution object can already be pickled. So I removed the clear_casadi_attributes() method and references to the method.

Test errors are clearly unrelated so I think it's fine to merge this


Add binaries to github releases

Seems like a good idea, not sure what the easiest way of doing this is. I think appveyor produces build artifacts, unsure if travis can do it.

I think you'll need this https://docs.travis-ci.com/user/deployment/releases/

Thanks! Will have a look.

What are the target platforms ?
Perhaps, 64-bit FreeBSD, Linux and Windows.

linux should be first since that is what travis builds on, Appveyor should be possible with windows. Dunno how to get FreeBSD builds, I don't believe traivs has FreeBSD build machines in any case. Mac could maybe work, travis makes builds on it but they are unfortunately extremely slow to start (not enough machines to run builds) which is problematic.
Unfortunately I ran into problems last time I tried and had to remove the binary deployment https://github.com/gluon-lang/gluon/commit/969d66852c3463c4909e99cdcc39293b347eda60 would be happy to accept PRs for this though from anyone that knows how to get it working.

Linux builds from travis is working now. Haven't managed to get Appveyor (windows) working yet however.
https://github.com/gluon-lang/gluon/releases
Still compress the binary (which should let me give the artifact a more informative name as well).

Releases should now be provided for every release. Currently we build the following platforms.

gluon-v0.7.1-x86_64-apple-darwin.tar.gz
gluon-v0.7.1-x86_64-pc-windows-gnu.tar.gz
gluon-v0.7.1-x86_64-unknown-freebsd.tar.gz
gluon-v0.7.1-x86_64-unknown-linux-gnu.tar.gz

If builds for additional platforms are desired just leave a comment or issue a PR adding it like the other deploy only builds https://github.com/gluon-lang/gluon/blob/8a0be0956960ef79217883f821c1b1f26b454ec6/.travis.yml#L16-L30 !
https://github.com/gluon-lang/gluon/releases/tag/v0.7.1


Mar 4513 seller unable to submit documents

@Revit closing as you raised this against upstream rather than your fork.


Should str() have perfect recall?

Should __str__() have perfect recall? I ask because it looks like for tic tac toe, battleship, and oshi_zumo, the __str__() does not have perfect recall, e.g.:
ox.
.o.
x.x

I think this is causing issues with the way that the BR caches .value()
Here's a demo I ran (can supply the policy action_probability_array to repro my_policy if anyone is interested):
from open_spiel.python import policy
from open_spiel.python.algorithms import expected_game_score
from open_spiel.python.algorithms import best_response

game = pyspiel.load_game('tic_tac_toe')
[... make `my_policy`...]
br = best_response.BestResponsePolicy(game, 1, my_policy)
print(expected_game_score.policy_value(game.new_initial_state(), [my_policy, br]))
print(br.value(game.new_initial_state()))

output:
[-0.00004046  0.00004046]
0.933332725976865

I believe the expected outcome is that they should have the same value, e.g.:
[-0.00004046  0.00004046]
0.00004046

An alternative fix could be to memoize best_response.BestResponsePolicy.value by history_str() instead of __str__().

Short answer: no.  __str__ calls State::ToString which is a string representation of the state, which does not require perfect recall. And it's shouldn't be required to have perfect recall because there are times when it makes perfect sense for it not to, like in the case of Markovian states like Tic-Tac-Toe.
Yes, our best response algorithms use the ToString as a key representation of the state for determining the value of the state, so when using the best response or exploitability functions, it's fine as long as the value of the state is equivalent for all histories that lead to it.
It is "well known" that the current best response algorithms don't work in perfect information games (though maybe we should document this) and I have a plan to add one that will. See #464 and #531 for discussion. It will also be able to do simultaneous move games and imperfect recall games. I plan to add it in the near future, I hope I can get to it before the release.

I fear there may be no quick fix to allow memoizing BRs to treat states belonging to the same markovian state as identical, since "the value of the state is equivalent for all histories that lead to it" may not be true since policies in general are per infostate, not Markovian state.
That is, my open_spiel policy could have me playing action A if the tic-tac-toe sequence (aka infostate) is 1 0 3 but I could play action B if the sequence is 3 0 1.  So a fix that still allows caching by Markovian states would have to ensure that the policy that's being BR-ed to is also "intra-Markovianly blind", no?  Not sure if this concept already exists in open_spiel or not.

I agree there is no quick fix to the current BR impl. I'm currently implementing a new best response algorithm that will handle this properly, in the sense that policies can be based on observations (i.e. Markovian descriptions of states in perfect info games like Tic-Tac-Toe) and uses value iteration to find the BR. Please see the issues I linked in my last response for more detail. I finished the implementation this week; it should be merged in the next sync (Monday).

Ah, I see.  Thank you, sounds great!

Hi @VitamintK , the new BR I mentioned is now live from this commit: https://github.com/deepmind/open_spiel/commit/110a2a724d35d880ff1025725f2586a43f472167. You can find it in algorithms/tabular_best_response_mdp.* It's not overly tested but I did check that it matches the value of the current BR to random in TicTacToe (but is a lot more space efficient using only 4520 Markovian observations rather than hundreds of thousands of information states). Please let me know if this helps!

Thanks @lanctot, looking forward to checking it out.  How does this behave if the policy being best-responded to has a different policy for, e.g. sequence 1 0 3 and 3 0 1, both of which are the same Markovian observation?

That is not currently supported: it uses information state strings as the keys or observation strings, and it's dynamically decided based on the game type (btw is there a reason or specific use case you can describe where that would be useful?)
You could modify the code to get this if you can just use observation strings when you build the MDP for the best-responding player but use information state keys for the fixed player(s), and then change this function here: https://github.com/deepmind/open_spiel/blob/643dfd2a5ef023e796e20d06758800ec34a1204b/open_spiel/algorithms/tabular_best_response_mdp.cc#L273
But then you'll need a policy in information states while the BR will use observations. I would guess that it's easier to just use one or the other and convert between them as necessary. E.g. you can make a function that converts a policy with information state string keys to observation string keys or vice versa.
I might need more context.. I feel like I'm not really helping answer the question you want answered. Can you describe why you want that?

The original motivation was that I had a policy for tic-tac-toe that I wanted to measure exploitability for.  I found that exploitability was reporting incorrect exploitability due to the BR caching values by ToString rather than infostate.  If the values were incorrect, I think that means that my original policy did not fulfill the requirement where "the value of the state is equivalent for all histories that lead to it."  I'm not sure why it was that way (I was making the policy in a double-oracle kind of way), but in general, policies don't fulfill that guarantee, right?
Maybe the question I meant to ask is: How should we use these new Best Responses?  You mentioned a policy with observation string keys -- Is there an explicit OpenSpiel concept of a policy based on observations instead of infostates?  Could I, for example, get a policy from CFR and use this new BR against that, or would that not be supported?

Ok.. I was all kind of confused throughout this thread but now I think I finally understand. Sincere apologies for the runaround.
You are talking about the python best response, and it does indeed have the problem you initially described. We also had this on the C++ side, and we changed it to use State::HistoryString as keys instead of ToString several months ago. But we did not make the same change on the Python side, which we should. Thanks for finding this -- once we fix it, you should be able to compute the best response for policies in information states just like the C++ one currently can.
Onto your next question. The new MDP best response implementation I don't think will be useful to you (yet). I mistakenly understood that you were using the C++ best response. The new MDP best response is only in C++ (we can easily expose it to python though, and we will, once we resolve the problem with the Goofspiel test). Right now the way to use a policy based on observations is to override and use Policy::StatePolicy(const State& state) or fill the TabularPolicy yourself using observation strings as the keys instead of infostates. The CFR policy will always be in information states, but if you change all instances of information_state_string to observation_string in the CFR impl that should give you a tabular policy based on observations (I'm not 100% sure our CFR would work on perfect information games, though, even with this -- so tread carefully).
I believe your issue will be resolved when we fix the Python BR to use history_string instead of str. Maybe you can try and see? If so it'd be great to submit a PR to fix it, as I'm not sure when I'll get to this :(

Also tagging @finbarrtimbers @elkhrt who have done a lot of work on these implementations.

This will be fixed in the next push to github. Sorry it's taken so long!


Remove configuration from AddDirectoryBrowser

Hi @HaoK, I'm your friendly neighborhood Microsoft Open Technologies, Inc. Pull Request Bot (You can call me MSOTBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Hao Kung). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla2.msopentech.com.

TTYL, MSOTBOT;

:shipit:

I'm thinking if we can totally get rid of this extension as this does not add value. ApplicationServices.GetHtmlEncoder() gives a default HtmlEncoder if there is nothing specified in the container.


Actual memory that users can use for container. (possible document improvement)

[Enter feedback here]
Hi,
Thank you always for your help. After I did some testing, I came to know that actual memory that we can specify for WEBSITE_MEMORY_LIMIT_MB is less than the RAM of the plan size.
For example, when I use P1v3 which has 8 GB RAM, the actual free memory that we can use for our containers seem to be around 4 GB. I totally understand that there are some other underlying mechanism working and platform consumes some memory, but the wording of the document might be a little more improved to tell users that around how much can be actually used for our containers.
I would appreciate it if you could consider this.

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

ID: 1d385179-7730-3b99-aff6-75491deb070a
Version Independent ID: 7da429ea-5421-9d99-3e7c-af1b3fee5ca8
Content: Configure a custom container - Azure App Service
Content Source: articles/app-service/configure-custom-container.md
Service: app-service
GitHub Login: @msangapu-msft
Microsoft Alias: msangapu

@grdicewa
Thanks for your feedback! We will investigate and update as appropriate.

Thank you for your feedback. We've relayed your feedback to our product teams and will work to improve the docs.
#please-close


docs[patch]: Added tooltips to mdx files with @langchain/core in code blocks

Going to close this for now, I don't think we want this.


[Docs bug + enhancement request] Date ranges

In the docs you have for setting a date range:
var now = Date.now();
$("#datepicker-disable-past").datepicker({
    isDisabled: function(date) {
        return date.valueOf() < now ? true : false;
    }
});
date.valueOf() is at midnight and we're comparing that to right now today, so this can lead to disabling the current day when it shouldn't. My solution was something like:
return date.valueOf() <= Date.now() - 1000 * 60 * 60 * 24;
Edit: it would be even better if there were minDate and maxDate options for the API

The documentation has updated to v0.2.0 now.


fix(@angular-devkit/schematics): filters out non-NPM dependencies (#13059)

Non-NPM dependencies in package.json are now filtered out of ng update. Dependencies which are linked as tarball or Git references will now be skipped during the update process.

I had to install npm-package-arg which created the package-lock.json. Is that not desirable for this project? I figured dependencies just hadn't been added since package-lock.json became a thing. Is there a specific reason we're trying to avoid that here?

package-lock.json is npm's lock file.  The repository is setup to use yarn workspaces (https://github.com/angular/angular-cli/blob/master/package.json#L56).  Once the dependency is added to the package.json for one of the repository packages, executing yarn within the repository will install in the appropriate locations for the package and update the root lock file.
This package also has a Bazel BUILD file which will need to be updated to include the new dependency as well (https://github.com/angular/angular-cli/blob/master/packages/schematics/update/BUILD#L24).

Thanks for explaining the lock file, I didn't realize yarn.lock applied to every package in the workspace. Removed the extra package-lock.json and ran yarn to update yarn.lock.
Thanks for pointing out the BUILD file, I didn't think to look for one. I added what I think is right for my changes, but attempting to build it fails due to missing @types/npm-package-arg:
douglasparker@gryphon (~/Source/ng-cli)
[19-11-15 10:16:41]$ yarn bazel build //packages/schematics/update
yarn run v1.19.1
$ /usr/local/google/home/douglasparker/Source/ng-cli/node_modules/.bin/bazel build //packages/schematics/update
INFO: Writing tracer profile to '/usr/local/google/home/douglasparker/.cache/bazel/_bazel_douglasparker/fd23369152ca483d39c1138566f81234/command.profile.gz'
INFO: Build option --legacy_external_runfiles has changed, discarding analysis cache.
ERROR: /usr/local/google/home/douglasparker/Source/ng-cli/packages/schematics/update/BUILD:14:1: no such package '@npm//@types/npm-package-arg': BUILD file not found in directory '@types/npm-package-arg' of external reposi
tory @npm and referenced by '//packages/schematics/update:update'
ERROR: Analysis of target '//packages/schematics/update:update' failed; build aborted: no such package '@npm//@types/npm-package-arg': BUILD file not found in directory '@types/npm-package-arg' of external repository @npm
INFO: Elapsed time: 18.172s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (7 packages loaded, 6 targets configured)
    currently loading: @npm//rxjs ... (5 packages)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

My understanding of Bazel's NodeJS toolchain is that it should install these dependencies from the yarn.lock file. Is there something else I need to do to include this dependency.
Follow up question, where is this Bazel rule used if not by yarn build or yarn test? Is this simply an artifact of an ongoing migration to Bazel, or is there some system which uses it instead of yarn?

Merged in to 9.0.x patch branch. Fixed a minor conflict due to a version update to pacote which was not present in the patch branch.


Fix broken link

Notebook has moved from:
sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-many-models-in-pipeline/automl-forecasting-demand-many-models-in-pipeline.ipynb
to:
sdk/python/jobs/pipelines/1k_demand_forecast_pipeline/aml-demand-forecast-mm-pipeline/aml-demand-forecast-mm-pipeline.ipynb
(see: https://github.com/Azure/azureml-examples/pull/3255)

@EricWrightAtWork
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@EricWrightAtWork
Can you review this old PR and determine whether it needs to be closed or merged?

@Blackmist approved this via email.


option to provide project name as argv

Many CLI's allows you to include your name as a command-line-argument (argv), e.g. npm create-turbo <project_name>. It would be nice to support this too.

If name is provided as argv, that should be used and the name-prompt be skipped.
If no name is provided, the prompt should be displayed.

Yeah we could implement this, shouldn't be too hard.

We should think about adding in a --noGit and --noInstall flag (or cli options) as well.
In a future when the t3 stack is used to spin up a new app inside of an already existing monorepo, having the app create its own git and node_modules would just require the end user to then go in and delete those folders before reinstalling node_modules at their monorepo root.

I was actually doing this yesterday and thought that would be cool to have

Anyone currently tackling this?
@asheeeshh You mentioned in the discord you were interested? LMK if not and i'll dive right in

@asheeeshh has some technical issues with his keyboard. So feel free @MWhite-22!

This should be ready to go today. I had to do some pretty decent refactoring to support a --noInstall flag

Great! You might have some merge conflicts tho because I just merged #47.

I'll work through that before pushing up to GH

This is completed in 4.1 and can be closed


Mangler bug - reuses referenced name in child scope

Regd. #243
I'm not able to produce a small test case, but the bug happens only when used with other plugins which modify / remove scopable things.
During collection of references,

when adding a new reference, the scope is not found

During mangling,

when checking if scope has a reference, the scope isn't available in the Map - i.e it hasn't been added to the Map yet.
when updating references, the scope isn't found in the list, i.e. it hasn't been added to the Map yet.

These things happen ONLY when used with other plugins. When the mangler is run in isolation, this doesn't happen. checked it for a relatively big codebase  ~600kb of minified JS(not gzipped).

This is an issue for the mangler which is merged and then later reverted (#280)


[QUESTION] Bare Metal usage : new used with ERPC_ALLOCATION_POLICY_STATIC

Hello, I want to use eRPC on a bare metal platform that has no OS, no C library. Goal is also to not do any dynamic allocation.
I took the matrix example and here is my main file :
#include "erpc_matrix_multiply.h"
#include "erpc_matrix_multiply_server.h"

#include "erpc_transport_setup.h"
#include "erpc_server_setup.h"

#include "header.h"
#include <stdio.h>

void erpcMatrixMultiply(Matrix matrix1, Matrix matrix2, Matrix result_matrix)
{
    /* code for multiplication of matrices */

    printf("salut\n");
}

int main(int argc, char *argv[]) {
    const char *host = "localhost";
    const int port = 10000;
    bool isServer = true;
    /* Init eRPC server environment */
    /* TCP transport layer initialization */

    erpc_transport_t transport = erpc_transport_tcp_init(host, port, isServer);
    printf("TCPTransport initialized\n");

    /* MessageBufferFactory initialization */
    erpc_mbf_t message_buffer_factory = erpc_mbf_dynamic_init();
    printf("MBF initialized\n");

    /* eRPC server side initialization */
    erpc_server_t server = erpc_server_init(transport, message_buffer_factory);
    printf("Server initialized\n");
    /* connect generated service into server, look into erpc_matrix_multiply_server.h */
    erpc_service_t service = create_MatrixMultiplyService_service(); // here
    printf("Service created\n");

    erpc_add_service_to_server(server, service);
    printf("Service added to Server\n");

    /* run server */
    erpc_server_run(server); /* or erpc_server_poll(); */
    printf("Server created on \"%s:%d\" \n",host, port);
    return 0;
}

It seems that the ERPC_ALLOCATION_POLICY checks prevents use of "new" in the following code but its not actually the case :
erpc_service_t create_MatrixMultiplyService_service(void)
{
    erpc_service_t service;

#if ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_DYNAMIC
    service = new (nothrow) MatrixMultiplyService_service();
#else
    if (s_MatrixMultiplyService_service.isUsed())
    {
        service = NULL;
    }
    else
    {
        s_MatrixMultiplyService_service.construct();
        service = s_MatrixMultiplyService_service.get();
    }
#endif

    return service;
}

Indeed, in the else, the s_MatrixMultiplyService_service.construct() calls the following:
void construct(void)
    {
        destroy();
        new (m_storage) T; // use of new which is basically dynamic allocation ...
        m_isConstructed = true;
    }

Using gdb this new points in the c++ new lib file
So it doesn't seem to be doing any static allocation in the end
Is there anything I am missing here ?

[x] I checked if there is no related issue opened/closed.
[x] I checked that there doesn't exist opened/closed PR which is solving this issue.
[x] I looked in documentation if there is related information.

Hello. Static allocation is not fully supported (only for simple messages.) But in this case it is static allocation. There is parameter for new where you are providing memory where object is allocated. The parameter is created in global scope (m_storage).

For example usage of numbers are ok.
Then depends if you have client and server in c or only client....


Upgrade nimbus-jwt to 9.24.1

The com.nimbusds.jose.shaded components are no longer available in the latest upgrade. Instead, they are changed to use Map and List.

I think this is the commit that affects pac4j: https://bitbucket.org/connect2id/nimbus-jose-jwt/commits/74a64ad633771362d7a30edb359f9e02e6774143

Hi @leleuj have you had a chance to take a look at this?

@apereocas-bot runci

LGTM let's see if the build pass

Just a small failure: PMD Failure: org.pac4j.oidc.profile.OidcProfileTests:11 Rule:UnusedImports Priority:4 Avoid unused imports such as 'org.pac4j.core.profile.UserProfile'.

Thanks. Cleaned up the import

BTW, I plan to cut the 5.4.6 release tomorrow.


(SERVER-2351) Check CA service before generating certs offline

In order to avoid race conditions with serial numbers, we want to
avoid allowing multiple processes to issue certificates at the same
time. This commit adds a check to make sure that Puppet Server's CA
service is offline before issuing certs out-of-band using Ruby code,
when using generate --ca-client. It queries the simple status endpoint
and errors if it receives a "running" response from the server.

Minus the errant puts I think this is good to go. Functionally tested it and it works like it should (though testing there wasn't a regression makes we question some of our other messaging):
16:40:53 puppetserver-ca-cli justin (mergemaggie $) ‖ be exe/puppetserver-ca generate --certname blaz --ca-client
CA service is running. Please stop it before attempting to generate certs offline.

16:43:07 puppetserver-ca-cli justin (mergemaggie $) ‖ be exe/puppetserver-ca generate --certname blaz
Successfully saved private key for blaz to /Users/justin/.puppetlabs/etc/puppet/ssl/private_keys/blaz.pem
Successfully saved public key for blaz to /Users/justin/.puppetlabs/etc/puppet/ssl/public_keys/blaz.pem
Successfully submitted certificate request for blaz
Error:
    Signed certificate blaz could not be found on the CA
Successfully signed certificate request for blaz
Successfully saved certificate for blaz to /Users/justin/.puppetlabs/etc/puppet/ssl/certs/blaz.pem

Oh that looks like maybe a bug around the autosigning code... It seems like we're trying and failing to download the cert (for the autosign check), and printing out an error when we fail. We shouldn't do that.

We might want to consider refactoring the certificate authority to return its errors instead of logging them directly. Not sure yet.

Got rid of the puts.


[Documentation] Manual construction and testing of openflow rule for Zeta integration

Context
We need to manually write up the setup of openflow rules needs for Zeta, including:

the bucketing rules to send packets to Zeta gateway
the punt rule to send OAM packet to ACA

Action items

get familiar with the needed openflow rules
run it in a test environment, send traffic and OAM like packet to exercise the new rules
use tcpdump to observe the packet behavior
the idea is if we can make it work using manual openflow rules, when we can make it work using ACA code
document the manual rules in #147

I am Qianyu Zhang and I will be responsible for this issue.

I am Qianyu Zhang and I will be responsible for this issue.

Sounds good. I have assigned this issue to you. Do let us know if you have any questions.

Hi @Zqy11 - we are making good progress on the design discussion. One thing we need to move forward is to understand what is the exact information needed to construct the group bucketing openflow rules. Please continue with your manual rule exercise and provide an update here. Thanks.


Can't use Nifi 2.0.0-M4 after copy Daffodil nar file into /lib

I installed Nifi 2.0.0-M4 top Ubuntu 22.04 LTS with Java 21.0.4+7 and tried to use Daffodil.
I tried a few options, I downloaded the nar file https://github.com/OwlCyberDefense/nifi-daffodil/releases and copied to nifi/lib/
I tried the latest version 1.18 , I also tried with version 1.17, I got the same issue.
I cloned https://github.com/OwlCyberDefense/nifi-daffodil.git built the nar file locally and copied to nifi/lib/ I got the same issue.
"failed to load extension type. You may not be able to create new processors, controllers, services, reporting tasks, parameters or flow analysis ..."
When I pull a new processor, I can't get any processor in the list.
I checked the nifi-user.log I see that there is an issue while trying to initialize class com.owlcyberdefense.processors.DaffodilUnparse

@Covrigaru , thanks for reporting this. I just released v1.19 which should work with the NiFi 2.x.


Support parsing loaded elf?

Hello,
I have a use case where I want to parse an elf that's already loaded into my processes memory, as the elf is loaded it's missing sections - which the current elf parser is heavily reliant upon.
Some use could still be had from parsing the dynamic segment (PT_DYNAMIC) to find dynamic symbols, relocations, etc...
I have something similar implemented, using object's type system, but I would like to add that as a built-in feature of this project.
Is this something that could interest you?
Thank you!

I'm interested in it. This sounds similar to #548. I had thought that this sort of thing wasn't possible for ELF, so it'd be good to see what you have done.

So section_by_index and symbol_by_index should probably be changed to return Result<Option<_>>.

Hmm, not sure I like changing those APIs either. How about try to do it without API changes and we can see what it looks like.

Sure
I'll have some time to work on this on the weekend.

I have an update,
When parsing the dynamic table, reading an entry that contains an address (for example DT_JMPREL which should point to .rela.plt), I'm getting different results on different machines:

On Android devices (both 32 and 64 bit) I'm getting an offset into data
On Linux machines (ubuntu 20.04 amd64, wsl2 ubunru 22.04 amd64) I'm getting the actual address of .rela.plt

I believe it has something to do with android having a custom dynamic linker than regular Linux.
I'm wondering what would be the correct way to handle this.
Perhaps, since this is only useful when a process is analyzing itself/other processes on the same system, it would make sense to use some kind of cfg depending on the compiled target, and add a workaround for all Android targets.
Or some kind of heuristic on the returned value, i.e. if it exceeds the size of data or something.
I'm not sure if there's a sure way to know :/

This may be getting into the kind of reason why I thought this wasn't possible for ELF. If you're relying on undocumented internals of dynamic linkers, then that's an area that I'm not sure I want to support in the high level API of this crate. It may be better to adapt the low level API to suit your needs instead.
Can you provide code to show how you are using this?

You can see a rough and dirty draft here
It successfully finds all the relevant dynamic sections.
It's useful for me when trying to parse the dynamic relocations and PLT of another .so loaded into my process, I can find its base address using dladdr, and through parsing its ELFs header (go over all program headers, find the segment with largest vadrr + memsz) I can find its size.
This allows me to get a slice that encapsulates the entire elf.

You can find a very rough draft here

Thanks.

I can find its base address using dladdr, and by parsing its ELFs header (go over all program headers, find the segment with largest vadrr + memsz) I can find its size.

Are you able to share the code for that too, and ideally an example of the sort of thing you want to do with the resulting parsed file. We'll need to have a test of some kind in this crate.
Getting back to your question in https://github.com/gimli-rs/object/issues/557#issuecomment-1621132435, my feeling is that the ideal solution would result in the compiled executable including code that only supports the compiled target, and thus can work reliably instead of using heuristics.
If I were to write this code myself, instead of using the higher level API (things like File, ElfFile, and ElfSymbolTable), I would use the lower level API (things like elf::ProgramHeader and read::elf::SymbolTable), and use cfgs in my own code to control behaviour that depends on the compiled target. That is, I would write code that looks similar to the ElfFile::parse_loaded that you have written, but that code would live in my own crate. This may involve improving the lower level API in object to make it easier to do that.

Are you able to share the code for that too, and ideally an example of the sort of thing you want to do with the resulting parsed file. We'll need to have a test of some kind in this crate.
I'll see what I can share

Getting back to your question in https://github.com/gimli-rs/object/issues/557#issuecomment-1621132435, my feeling is that the ideal solution would result in the compiled executable including code that only supports the compiled target, and thus can work reliably instead of using heuristics.
Yeah that's what I thought as well, use cfgs that use offsets when compiling an Android target, and cfgs that use absolute addresses on Linux targets, and disable this entirely on untested targets

If I were to write this code myself, instead of using the higher level API (things like File, ElfFile, and ElfSymbolTable), I would use the lower level API (things like elf::ProgramHeader and read::elf::SymbolTable), and use cfgs in my own code to control behaviour that depends on the compiled target. That is, I would write code that looks similar to the ElfFile::parse_loaded that you have written, but that code would live in my own crate. This may involve improving the lower level API in object to make it easier to do that.
That's basically what I already have implemented, unfortunately I can't share that code as is.

I was hoping to implement some of that functionality directly into this library for easier access for everyone.

I think adding code in the lower level API that is similar to ElfFile::parse_loaded could be useful for others, but I'm not convinced that ElfFile itself should support this.
For your use case, are you doing things that are specific to ELF? If we added ElfFile::parse_loaded and PeFile::parse_loaded, would your application be able to work on Windows by changing the ElfFile::parse_loaded call to a PeFile::parse_loaded call? If your code can't be written to work on both, then there is no reason to use an abstraction layer.

I'm not familiar enough with PE, but from a short search it seems like PEs IAT is very similar to ELFs PLT, and can be modified to the same effect.
I imagine the dynamic relocations abstraction gives access to the same information.
In conclusion, yes, I think there's value to be had in the abstraction.

dl_iterate_phdr returns a program header for every loaded DSO. According to the man page you have to calculate absolute addresses of segments using info->dlpi_addr + info->dlpi_phdr[x].p_vaddr. Does this work on both glibc and bionic (android) and does it return absolute addresses in both cases?

dl_iterate_phdr returns a program header for every loaded DSO. According to the man page you have to calculate absolute addresses of segments using info->dlpi_addr + info->dlpi_phdr[x].p_vaddr. Does this work on both glibc and bionic (android) and does it return absolute addresses in both cases?

I'm getting absolute addresses in both cases

So I decided to start slow, added some lower level logic for parsing the dynamic segment.
This should work both if the segment was found using dl_iterate_phdr, or by manually parsing a loaded elf.
let me know what you guys think.

Parsing the dynamic segment is as easy as calling ReadRef::read_slice::<Dyn64>() on a slice with the segment data (or Dyn32 for an ELF32 file).  See the dynamic method on several of the types in the elf read module. You can then use the Dyn trait for convenience functions on the dynamic segment entries.

Edit: Just saw your PR. Looks like you were thinking about a high level parsing interface, while I was thinking about a low level one. A high level one is of course nicer for most use cases.

Yeah, by low level I meant it was lower level than parsing the entire elf from scratch.
It's probably closer to high level than low level though 😅


Add useragent function

After five years of careful consideration, I think we should merge this!
(Really really sorry somehow I missed these 😅)

I see this when I try to merge it.


incorrect example values in URL

Description
Hi, i'm using RESTler and i wondering if there's an switch for disabling URL-encoding of query parameter. My testing server feels bad about it. Moreover when i looked at tcp dump i saw that url params looks like still url-encoded.
Actual result:

Expected result:

Expected result:

Probably there's an issue with parsing API specification. On your right my OpenAPI specification and left RESTler generated file restler_grammar_grammar_27328.py from ..\restler_working_dir\Test\RestlerResults\experiment27328

I'm so sorry, but i still have an question about switch existance for disabling URL-encoding of query parameter. Is there anything like that?

Hello @Oleggg2000,
There currently isn't a way to disable URL encoding for query params.  Could you please file a new issue for this feature?
If you want to disable it by modifying the code directly, you could do this relatively easily by modifying the offsets on line 1215 in requests.py:
                url_encode_start, _ = req.get_path_and_query_start_end()
                url_encode_end, _ = req.get_query_start_end()
                url_encode_end -= 1

Thanks,
Marina


Add comments on app.y about oauth

I know that we talked about this in class, but now that I see it, I think it would be best to create a new issue for this work. The comment you placed in the code here would be a suitable comment to help another student get started on this.
I'll close this PR assuming that you'll create the appropriate issue for this task.


Make Azure Postgres Flexible Server specific deployment article.

At the end of this article:
https://learn.microsoft.com/en-us/dotnet/aspire/database/postgresql-component?tabs=dotnet-cli
We should link on to a new article which describes how to deploy a .NET Aspire application with a Postgres database resource to Azure. We have a new API for this that generates Bicep that is used by AZD.
builder.AddPostgres("pgsql").PublishAsAzurePostgresFlexibleServer().AddDatabase(db);

Hey @mitchdenny - is that code accurate?
I noticed that the db parameter in the AddDatabase call isn't a string, I'm assuming that's a typo.

Yeah its a typo. Thanks!


Use actions/checkout for cloning repository

Changelog / Overview

https://github.com/ManimCommunity/manim/pull/1194/checks?check_run_id=2241875101 failed because of this. This should fix it probably.
Checklist

[x] I have read the Contributing Guidelines
[x] I have written a descriptive PR title (see top of PR template for examples)
[x] I have written a changelog entry for the PR or deem it unnecessary
[ ] My new functions/classes either have a docstring or are private
[ ] My new functions/classes have tests added and (optional) examples in the docs
[ ] My new documentation builds, looks correctly formatted, and adds no additional build warnings

Reviewer Checklist

[ ] The PR title is descriptive enough
[ ] The PR is labeled correctly
[ ] The changelog entry is completed if necessary
[ ] Newly added functions/classes either have a docstring or are private
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings

Why isn't this done with the checkout action github provides?

Why isn't this done with the checkout action github provides?

It's done using it https://github.com/ManimCommunity/manim/pull/1216/files#diff-107e910e9f2ebfb9a741fa10b2aa7100cc1fc4f5f3aca2dfe78b905cbd73c0d2R24
This check wants some history to work, which is passed as fetch-depth:. Default is clone without any history which isn't helpful.

I didn't realize you changed it just now.
It looks like most of this work is done so the black check can report which files need to be formatted, but black does that by default already. Is there any other reason why the history is needed?

It looks like most of this work is done so the black check can report which files need to be formatted, but black does that by default already. Is there any other reason why the history is needed?

Black does print the files changed, but this check runs black only on files which were changed in that particular PR, that's the aim of all that extra code there. Black is still unreleased or doesn't has a stable release so, it could change anytime, and that's why this is done. You could have a look at what happened previously when black was set up for more context on why this is done so.

Would either/both of the following changes have any drawback:

Using an action (even if it isn't provided by github) to get the changed files
Making a single call to black rather than passing each file to black and black --diff separately

Using an action (even if it isn't provided by github) to get the changed files

Don't know if there exists one. If it exists it should be fine I think.

Making a single call to black rather than passing each file to black and black --diff separately

Irrc, someone complained that they want to see the diffs seperately. Or else it should be fine with single call.


Netmask display

Closes #832

Should also add a netmask field to both the ipv4 and ipv6 sides. <IP_ADDRESS> for ipv4 and / 64 (or whatever) on the ipv6 side. Did I get that right @abemassry?

They all already exist, much to my surprise.

Coverage remained the same at 86.411% when pulling fd0f9d5277d666a79422bdc60e4bc97d8f705fc0 on na3d:netmask-display into 1ea404fa23bc61b0ebea092ec481dd895478f75e on linode:master.

https://github.com/linode/manager/blob/master/src/linodes/linode/networking/layouts/SummaryPage.js#L99-L122

Looks like that's a special case for private ipv4 but it should also drop the /17 and /24 things I'd think. We are talking about a completely new field to the ipv4 and ipv6 sides (like IP Address and Gateway) that says <IP_ADDRESS> on the ipv4 side and  / 64 (or whatever) on the ipv6 side I think.

The gateway stuff sounds like something else.  Did he want the private IP /17 removed on the networking page?

@eatonphil yes that is correct

Coverage remained the same at 86.411% when pulling b77146a05347b8dee82022417fe86f304fa32865 on na3d:netmask-display into 1ea404fa23bc61b0ebea092ec481dd895478f75e on linode:master.

screenshot?

@jamesottinger says they'll explicitly provide us with the netmask in the future. For now, looks good.

Whoops

Coverage decreased (-0.05%) to 86.366% when pulling b77146a05347b8dee82022417fe86f304fa32865 on na3d:netmask-display into 1ea404fa23bc61b0ebea092ec481dd895478f75e on linode:master.


https://github.com/muaz-khan/RTCMultiConnection/issues/683#issue-383053097

closing socket is making problem does anyone have alternative solution?

"Userid already taken"
After a short Internet disconnect, the user cannot join the room - is a big problem.
The function connection.onUserIdAlreadyTaken from the RTCMultiConnection.js library generates a new userID and tries join to the room:
connection.onUserIdAlreadyTaken = function(useridAlreadyTaken, yourNewUserId) {
if (connection.enableLogs) {
console.warn('Userid already taken.', useridAlreadyTaken, 'Your new userid:', yourNewUserId);
}
connection.userid = connection.token();
connection.join(connection.sessionid);
};
But in a short time, the Signaling-Server.js server does not know that this user needs to be disabled, because Join does not work and the user does not connect.
I propose a solution
In my case, it helps if connection.onUserIdAlreadyTaken closes a socket before connection.join:
connection.close ();
connection.closeSocket ();
Then, after connecting the Internet, the server will disconnect the user and after that the user will be able to join the room.
connection.onUserIdAlreadyTaken = function(useridAlreadyTaken, yourNewUserId) {
if (connection.enableLogs) {
console.warn('Userid already taken.', useridAlreadyTaken, 'Your new userid:', yourNewUserId);
}
connection.close ();
connection.closeSocket ();

connection.userid = connection.token();
connection.join(connection.sessionid);

};

This is not the best solution
when there is more than 6 users the socket is closed on all users
does anyone have better solution


Must update "What's new in accessibility in .NET Framework" for .NET Framework 4.8.1

WinForms made a lot of changes in 4.8.1 to support accessibility. WPF also made changes to the default interactions of Tooltips. I will have teams give me the descriptions of their changes in .md format. That effort is now in progress.
~Merrie

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

ID: 642b7f23-cc05-b8cb-5ec1-862fa6e62b8c
Version Independent ID: 0d7236b7-8c64-7eb0-69c8-101c738f275a
Content: What's new in accessibility in .NET Framework
Content Source: docs/framework/whats-new/whats-new-in-accessibility.md
Product: dotnet-framework
GitHub Login: @gewarren
Microsoft Alias: gewarren

Hi Merrie @merriemcgaw. Any update on the .md files you can provide to help with this issue?

Working on those this week and next. Waiting for WPF content too, but I should have it soon.

Note that I don't think we want to publish anything new until we ship the 4.8.1 GA installer on the download center. I am not certain when that will be. This fall I'd assume.


continuous test metrics (ctmetrics) for redfish

CT metrics for witherspoon, we already have code for it.. but to maintain and update ahead for regular push ..

[ ] Update to make it generic https://gerrit.openbmc-project.xyz/#/c/openbmc/openbmc-test-automation/+/18818/


[tests][dask] Use workers hostname in tests (fixes #4594)

Fixes #4594.
Since the dask tests run on a LocalCluster we used <IP_ADDRESS> as the host for the workers, however something seems to have changed and on my machine (ubuntu) now the scheduler gets <IP_ADDRESS> and the workers get <IP_ADDRESS> and in the QEMU build they're getting <IP_ADDRESS>. This PR extracts the hostname from the worker addresses to run the tests that require using the workers' addresses.

Closing-reopening because simple rerun doesn't help with QEMU timeout error.

Closing-reopening ...

One more time.

After multiple close-and-reopens with the QEMU builds still timing out, I think we need to merge #4600 before this one.


[Bug]: 2 Factor authentication (proxy email)

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Hey!
Their must be two factor authentication, while Sign-in.  As of now i have sing-in to the website with an proxy email, still the website allow me to login, this should not be the case. Their must be email verification based on OTP, to verify the email.
Expected behavior
While a new person sign in, their email must be verify using on OTP.
Add ScreenShots
No response
On which device are you experiencing this bug?
Chrome
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

@Omi006 okay go ahead


[bugfix] Default to DEVNULL for Popen in run_command_async

Fixes #2466

@giordano I could reproduce your issue. Can you check that it's fixed by this?

Yes, I can confirm the reproducer in #2466 works for me with this PR, thanks!

@teojgo This was regression indeed in ReFrame and, in fact, we used to set stdin to DEVNULL as a fix of #1877 in #1879. This was accidentally removed in #2383. @teojgo could have a unit test to reproduce this? #1877 has a reproducer that's not relying on Spack. We could add a unit test for it.

Codecov Report

Merging #2476 (a053a30) into master (f44e37c) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #2476   +/-   ##
=======================================
  Coverage   85.70%   85.70%
=======================================
  Files          57       57
  Lines       10544    10545    +1
=======================================
+ Hits         9037     9038    +1
  Misses       1507     1507

Impacted Files
Coverage Δ

reframe/utility/osext.py
84.42% <100.00%> (+0.06%)
:arrow_up:

Continue to review full report at Codecov.

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


Tuple type serialisation

What version of Remix are you using?
1.16.1
Are all your remix dependencies & dev-dependencies using the same version?

[X] Yes

Steps to Reproduce
We often have typings that narrow down, so a top level type might define a property as string[] but a refined version of that type might narrow it down to ["Some value"]. This works fine, until Remix infers and serialises the type across the network boundary.
I've taken the Serialization code from the repository, and generated a Typescript playground showing the issue. You'll see that the tuple gets interpretted as an array and has all of its keys incorrectly defined.
Typescript playground
Expected Behavior
The serialised type to remain string[] & ["Some value"]
Actual Behavior
The seralised type becomes
{
    [x: number]: "Some value";
    length: "Some value";
    toString: null;
    toLocaleString: null;
    pop: null;
    push: null;
    concat: null;
    join: null;
    reverse: null;
    shift: null;
    slice: null;
    sort: null;
    splice: null;
    ... 20 more ...;
    0: "Some value";
}

@mattcorner could you help me understand why string[] & ["Some value"] is a useful type for you? Why not narrow down to ["Some value"]?

Fixed by #6616


Retry until not working as expected

Given this response:
{
      "list" : [ "value1" ]
}

This works fine:
Scenario: Example scenario
Given path '/endpoint'
When method GET
Then match response.list contains only "value1"

but this doesn't:
Scenario: Example scenario
Given path '/endpoint'
And retry until response.list contains only "value1"
When method GET

In my real use case I need to use the polling feature.
I'm using the latest version
Minimal project is attached, just run "mvn clean install":
karate-issue.zip
Thanks in advance!

In my real use case I need to use the polling feature.
Thanks in advance!

@italktothewind since you double posted to stack overflow it will be answered there

Link: https://stackoverflow.com/questions/55820690/karate-framework-retry-until-not-working-as-expected


fix: skip terraform-fmt on pre-commit.ci

The terraform-fmt check requires terraform to be installed and therefore fails on CI. While hooks in the .pre-commit-config.yaml can install extra dependencies per hook  via the additional_dependencies key [1] I don't see a way to install terraform this way currently, and pre-commit.ci does not seem to provide additional mechanisms for installing dependencies.
Note: the alternative route would be to disable pre-commit.ci and switch to running pre-commit on GitHub actions, where we have control over the environment and could install terraform.
[1] https://pre-commit.com/#config-additional_dependencies

I now see that also tflint needs extra installers. Will switch to Github actions instead.


RFC: Logging within Plugins

I was getting to the point where I was going to start migrating some plugins to 0.5. What I'm wondering is if we should standardize on how plugins log.
In Golang this is logrus. One nice thing there is that we could have a custom log formatter for the Drone plugins. This would provide a standard way of logging that could then be utilized by the UI. For example you could maybe toggle on and off the logging from the plugins. This might be a better solution than having a debug: true for each plugin.
Anyone have any particular thoughts here?

A custom logrus formatter sounds totally fine to me. We can get similar functionality for node, ruby and python as well.

If we use logrus we would need to write custom formatters. This is the current log output from the S3 plugin which is difficult to read from the command line:
time="2016-06-17T17:12:18Z" level=info msg="Attempting to upload" bucket=downloads.drone.io endpoint= region=us-east-1
time="2016-06-17T17:12:18Z" level=info msg="Uploading file" bucket=downloads.drone.io content-type="application/octet-stream" name="release/darwin/amd64/drone.sha256" target="/release/darwin/amd64/drone.sha256"
time="2016-06-17T17:12:19Z" level=info msg="Uploading file" bucket=downloads.drone.io content-type="application/gzip" name="release/darwin/amd64/drone.tar.gz" target="/release/darwin/amd64/drone.tar.gz"
time="2016-06-17T17:12:19Z" level=info msg="Uploading file" bucket=downloads.drone.io content-type="application/octet-stream" name="release/linux/amd64/drone.sha256" target="/release/linux/amd64/drone.sha256"

I think something like this would be more readable:
uploading files to downloads.drone.io

release/darwin/amd64/drone.sha256 -> /release/darwin/amd64/drone.sha256
release/darwin/amd64/drone.tar.gz -> /release/darwin/amd64/drone.tar.gz
release/linux/amd64/drone.sha256" -> /release/linux/amd64/drone.sha256

successfully uploaded 3 files

If we are going to use logrus.WithFields we will need to write custom formatters. It is likely that a single plugin will require multiple formatters because it is logging different data points for different events. For example, the S3 plugin has more generic debug statements:
time="2016-06-17T17:12:18Z"
   level=info
   msg="Attempting to upload"
   bucket=downloads.drone.io
   endpoint= region=us-east-1

and more detailed file upload information:
time="2016-06-17T17:12:18Z"
  level=info
  msg="Uploading file"
  bucket=downloads.drone.io
  content-type="application/octet-stream"
  name="release/darwin/amd64/drone.sha256"

This does pose a small challenge because we can only have a single logrus formatter:
logrus.SetFormatter(...)

We could work around the issue by having a formatter that is capable of inspecting the fields, and formatting the output appropriately:
type formatter struct {}

func (f *formatter) Format(entry *Entry) ([]byte, error) {
  if v, ok := entry.Data["target"]; ok {
    return []byte{
      fmt.Sprintf("%s -> %s", entry.Data["name"], entry.Data["target"]),
    }, nil
  }
  // else if debug statement for bucket
  // else if error uploading
  // else if error reading file
  // else if error parsing glob
}

I think the logrus log.WithFields is very clean and readable, however, formatters could end up being much more verbose that something like log.Infof("%s -> %s", name, target)

Just my thoughts, realise I might be lacking some context:
Wouldn't it be better for the raw logs to contain as much information as possible i.e. be structured e.g. JSON
The specification from drone's point of view should be around the format of plugin logs e.g JSON vs XML vs CSV and which fields have meaning to drone e.g. level. I could imagine a toggle in the UI that flips between something like the readable example and the raw logs which would be the UI parsing and rendering.
As a simple example if the logs were in JSON format the UI could filter out all debug messages on toggle and then only display the msg field, highlighting warn level messages in yellow and error messages in red. Or perhaps display the msg field and other fields with a certain prefix e.g. simple_ or simple.

I'm almost there with the first draft of a new package for writing plugins
(https://github.com/thomasf/drone-plugins-go).
I just have a few plain package level methods:

func Debug(v ...interface{})
func Debugf(format string, v ...interface{})
func Debugln(v ...interface{})
func Fatal(v ...interface{})
func Fatalf(format string, v ...interface{})
func Fatalln(v ...interface{})
func Print(v ...interface{})
func Printf(format string, v ...interface{})
func Println(v ...interface{})

// these are non standard loggers which prints as a field error, see example below.

func Usage(value interface{}, v ...interface{})
func Usagef(value interface{}, format string, v ...interface{})
func Usageln(value interface{}, v ...interface{})

Latest prototype:
API Usage:
package main

import (
	"context"
	"flag"

	"github.com/thomasf/drone-plugins-go/plug"
)

var build = "0" // build number set at compile-time

// Plugin defines the Downstream plugin parameters.
type Plugin struct {
	Repos  []string
	Server string
	Token  string
	Fork   bool

}

func main() {
	var p Plugin
	flag.BoolVar(&p.Fork, "fork", false, "Trigger a new build for a repository")
	plug.StringSliceVar(&p.Repos, "repositories", "List of repositories to trigger")
	flag.StringVar(&p.Server, "server", "", "Trigger a drone build on a custom server")
	plug.Env(&p.Server, "DOWNSTREAM_SERVER", "") // emtpy string means default PLUGIN_...
	flag.StringVar(&p.Token, "token", "", "Drone API token from your user settings")
	plug.Env(&p.Token, "DOWNSTREAM_TOKEN", "")
	plug.EnvFiles()
	plug.Run(p.Exec)
}

// Exec runs the plugin
func (p *Plugin) Exec(ctx context.Context) error {

	isValid := true
	if len(p.Token) == 0 {
		plug.Usageln(&p.Token, "you must provide your Drone access token.")
		plug.Debugln("not valid")
		isValid = false
	}

	if len(p.Server) == 0 {
		plug.Usageln(&p.Server, "you must provide your Drone server.")
		plug.Debugln("not valid")
		isValid = false
	}

	if !isValid {
		return plug.ErrUsageError
	}

	//client := drone.NewClientToken(p.Server, p.Token)
	// ...
	plug.Println("success!")
	return nil
}

Usage as a plugin:
$ PLUGIN_ENV_FILE=1.env,2.env go run main.go  -server asd -token asd
success!

or with debug enabled (PLUGIN_PLUGIN_DEBUG=1):
$ PLUGIN_PLUGIN_DEBUG=1 PLUGIN_ENV_FILE=1.env,2.env go run main.go  -server asd -token asd
19:59:01 plug.go:28: drone plugins debug mode is active!
19:59:01 plug.go:30: flag 'env-file' using env vars: PLUGIN_ENV_FILE
19:59:01 plug.go:30: flag 'fork' using env vars: PLUGIN_FORK
19:59:01 plug.go:30: flag 'repositories' using env vars: PLUGIN_REPOSITORIES
19:59:01 plug.go:30: flag 'server' using env vars: DOWNSTREAM_SERVER, PLUGIN_SERVER
19:59:01 plug.go:30: flag 'token' using env vars: DOWNSTREAM_TOKEN, PLUGIN_TOKEN
19:59:01 plug.go:50: loading env files: 1.env, 2.env
19:59:01 plug.go:53: error loading env files: open 2.env: no such file or directory
19:59:01 plug.go:57: [envfile] setting PLUGIN_TOKEN=WOHOO
19:59:01 plug.go:88: flag 'env-file' set by env var 'PLUGIN_ENV_FILE': 1.env,2.env
19:59:01 plug.go:88: flag 'token' set by env var 'PLUGIN_TOKEN': asd
19:59:01 plug.go:93: ------ executing plugin func  -----
19:59:01 main.go:54: success!
19:59:01 plug.go:95: ------ plugin func done  -----

or a (very rudimentary) formatted usage print.
$ PLUGIN_ENV_FILE=1.env,2.env PLUGIN_FORK=cool go run main.go  -server asd -token asd
plugin option 'fork' error: strconv.ParseBool: parsing "cool": invalid syntax
Usage: Trigger a new build for a repository
plugin usage:

source env file
names as plugin option: env_file
currently set by: env_file
current value 1.env,2.env

Trigger a new build for a repository
names as plugin option: fork
currently set by: fork
current value false

List of repositories to trigger
names as plugin option: repositories

Trigger a drone build on a custom server
names as plugin option: server
names as env var: downstream_server

Drone API token from your user settings
names as plugin option: token
names as env var: downstream_token
exit status 1

In an effort to keep drone simple, I am closing this as out of scope. I think developers are accustomed to reading unstructured log data at the terminal, and this would provide an overall small benefit compared to effort and complexity it would introduce.
I think we should instead focus on improving the terminal component in the user interface, adding code folding, similar to Travis et al.


RST-5256 band integration

Jira link (if applicable)
https://tools.hmcts.net/jira/browse/RST-5256

too much overlap


Map $sort fieldnames used with $push $each

This depends on doctrine/mongodb#128.
See: http://docs.mongodb.org/manual/reference/operator/push/#op._S_push

@jmikola do you remember what this ticket is about?

I will write a test case for this to see if $push fields are still not prepared.

For the record DocumentPersister::loadReferenceManyOwningSide doesn't prepare sort fields. We could either add preparation or switch do ODM's QueryBuilder (like in DocumentPersister::loadReferenceManyInverseSide) so the work will be done behind the scene?

If I understand correctly, this issue is about preparing the $sort option in a $push operator?

@alcaeus: I believe so. See: https://docs.mongodb.com/manual/reference/operator/update/sort/#up._S_sort


Support running multiple appmasters

Now we simply push a new app files into hdfs with identifier app and launch an application from it. Should integrate CLI and deployer so that user can use multiple app versions(i.e. with different configuration) and multiple application(appmasters) instances.

It turned out this is needed for #14 and #20, so really need to be fixed first.


New maintainer for this track

@fapdash I noticed that you've been doing work on this track lately.
Would you be interested in having write-access to the repository in order to make progress on it?
I've approved the open PRs that you've submitted, and if you accept write-access on the repo, I'll let you merge them. If not, I'll go ahead and merge them myself.

@kytrinyx Sure, that would speed things up. Please go ahead and give me write-access.
I had a meeting with Jonathan this week about becoming a maintainer and I accepted. :)
I noticed the pattern in Exercism repositories that people will approve a PR but still wait a couple of days before they merge. Is this so other people in the community can also review and give feedback, if they want to? Should I follow this example?

@fapdash That's great, thank you! I'm so glad you were able to connect with Jonathan.
You should have an invite for the team.
In terms of process, we tend to do the following:

if the person who created the PR is also a maintainer on the same repository, approve, but let the other person merge
if you think it would be useful to get an extra pair of eyes on the PR, wait a couple of days (maybe ping people specifically), then just merge if nobody seems to have any objections

Also, feel free to jump in the forum as well to chat with other maintainers here: https://forum.exercism.org/c/exercism/building-exercism/125


Added Node.js version

Hi @vikman90, I just want to add my own Node.js version using the same procedure as you are using with C.

The above chart represents the difference between C and Node.js where Y-axis is the time in seconds and the X-axis is the diameter.
As we can see Node.js is slightly slower for low diameters but when we increase the diameter they are almost the same.

@jesusgn90 This is brilliant! 🥇
This work lets us see how fast NodeJS is. The performance is pretty similar to C, it seems to add only a little overhead, probably due to JIT-compiling.
Thank you so much!


SAP UI5 selectedKey and change not working together

HI
In the below code, the binding works fine, that is if “A”, “B” or “C” is selected, its gets send to the model bindingModel>/AccountType which gets send via oData to the backend.

<f:fields>

<Select selectedKey="{bindingModel>/AccountType}" forceSelection="false" > <items>

<core:Item key="A" text="ABC Account" ></core:Item>

<core:Item key="B" text="DEF Account"></core:Item>

<core:Item key="C" text="GHI Account" ></core:Item>

</items>

</Select>

</f:fields>

A new requirement came up where, if “C” is selected, two fields should be disabled. I managed to get that by adding a function change=”onChangeAccType”. When I add the function though, the binding of data stopped working, that is if “A”, “B” or “C” is selected, it does not get send to the model. It looks like binding for selectedKey and change don’t work together.
Here’s an example where the field disabling works bacuase of the function linked to change but binding to bindingModel>/AccountType doesn’t work:
<f:fields>

<Select selectedKey="{bindingModel>/AccountType}" forceSelection="false" change="onChangeAccType">

<items>

<core:Item key="A" text="ABC Account" ></core:Item>

<core:Item key="B" text="DEF Account"></core:Item>

<core:Item key="C" text="GHI Account" ></core:Item>

</items>

</Select>

</f:fields>

Is there a solution for this issue?

Hi @Sajan-Mathew ,
Changing the selectedKey don't mean that the change event will be fired. Change event is fired only after confirm action: enter or space key is pressed when the focus is on some item / when the focus leaves the select / click with mouse.
I prepared snippix where everything seems to work:
https://jsbin.com/wigelobeti/edit?html,output
Please if I didn't understand you correct the snippix and reopen the issue.
Regards,
Nayden