udaf ignores all but first state variable

Describe the bug
When writing a user defined aggregate function, any state beyond the first is ignored during a merge operation. The offending line appears to be https://github.com/apache/datafusion-python/blob/1d615482ff42960dfa6987de7d3572e393aa235c/src/udaf.rs#L75
To Reproduce
from typing import List
import pyarrow
import pyarrow.compute
import datafusion
from datafusion import col, udaf, Accumulator

class MyAccumulator(Accumulator):
    """
    Interface of a user-defined accumulation.
    """
    def __init__(self):
        self._sum = 0.0
        self._num = 0

    def update(self, values: pyarrow.Array) -> None:
        self._sum = self._sum + pyarrow.compute.sum(values).as_py()
        self._num = self._num + len(values)

    def merge(self, states: pyarrow.Array) -> None:
        self._sum = self._sum + pyarrow.compute.sum(states).as_py()
        # `states` SHOULD be a list of Array but in actuality is just a single array
        # The below line is WRONG. It should be a sum of the second column of the state
        self._num = self._num + len(states)

    def state(self) -> List[pyarrow.Scalar]:
        return [pyarrow.scalar(self._sum), pyarrow.scalar(self._num)]

    def evaluate(self) -> pyarrow.Scalar:
        return pyarrow.scalar(self._sum / self._num)

ctx = datafusion.SessionContext()

# Create a large enough array that we're getting it in batches
df = ctx.from_pydict(
    {
        "a": list(7 for _ in range(10000)),
    }
)

my_udaf = udaf(MyAccumulator, pyarrow.float64(), pyarrow.float64(), [pyarrow.float64(), pyarrow.int64()], 'stable')

# This should return 7 regardless of what you set the `range` above to.
# If you decrease range to 1000 you will get the right value because it does
# all the processing in a single batch.
df.aggregate([],[my_udaf(col("a")).alias("output")]).show()

Expected behavior
User defined aggregate functions should be able to process more than one state variable.
Additional context
I'm going to work on this unless somebody wants to tackle it first.

I tried finding why it was only taking the 1st state, but that's been the implementation from the 1st commit I could find.
https://github.com/jorgecarleitao/datafusion-python/commit/3d216700463aa4c30d4571efbce5068eb5216d11#diff-2d9d96a106928149ab8a0d13447a07701175bfffc07dd44fa769bbfe124b5f84

archeological notes for future reference:

datafusion-python was removed from datafusion here: https://github.com/apache/datafusion/pull/1518

browse last commit with them included here: https://github.com/apache/datafusion/tree/7607ace992a5a42840bf546221a8635e70e10885

datafusion-python was added to datafusion after being donated by Jorge Cardoso Leitao, Arrow PMC member and also author of arrow2

archived original repo: https://github.com/jorgecarleitao/datafusion-python


Pathpoint V2 : Dashboard link to be added - Permlink / Hyperlink

In the earlier version of pathpoint , under Touchpoints we had an option general where we can enter dashboard permlink.
But in the newer version of Pathpoint V2 , we do not see any option to add dashboard.
Attached is the screenshot for reference.

Hello @Aparna-Mahesh - you can now add a link to the Stage and Step levels of a Flow. The setting is available in the Flow Edit Mode: click on ... and select Settings, which will open the configuration options for each, including the ability to add a link for more context (e.g. a dashboard).
To open the link, once you have saved your changes and returned to the main flow view, click on the Stage name (which directly opens the link in a new window) or the Step name (which opens a context panel for the Step and includes the link out to the additional context).


Added a framework for creating PostgreSQL functions

This is the 2nd version of my attempt at implementing functions.
The first iteration hijacked *tree.FuncExpr and special-cased names of functions that matched the built-in ones for Postgres. Then it returned a new node that approximated the functionality. In some cases this was as simple as returning a different *vitess.FuncExpr node that pointed to a different function, however some cases did not have direct analogues in MySQL. Originally I was going to ignore those, but since I was working on functions anyway, I decided to tackle them to get it over with, similar to my approach with the entire AST conversion. Well that's when I started running into two key issues:

No straightforward conversion for some functions
Different behavior for similar functions

The second was born from the first, as I needed to extend my tests to make sure my massive nodes actually worked for most cases. However, extending the tests showed some issues that are somewhat fundamentally different to how MySQL approaches functions, with a big one being overloading.
The first was a major issue though. I'll post an example in another comment, but some of the nodes became almost unreadable, and they also took forever to create (multiple hours per function, hence the continual delays). The only real maintainable alternative would be to skip the AST conversion pipeline and jump straight to the GMS expressions, but that posed its own issues. Not only is there a lot of boilerplate for expressions, but some of the more sophisticated aspects (such as the origin of values, which I'm calling their Source) are specific to PostgreSQL, So I instead decided to modify the entire set of functions by replacing all of the built-ins (Postgres doesn't want MySQL's built-ins anyway) with a custom "compiled" function structure.
So now, this mimics a bit how overloaded stored procedures work. We define a set of functions under a single name, and those functions become overloads for that name. Whenever a function is called, we evaluate all of the parameters, and use their types to look for an exact match. If one is not found, then we allow some types to cast to others, and check while rotating type casts. If we still don't find anything, then we assume that the function does not exist. In addition, some functions allow for some casts and others don't, so we also store the original type before the cast. This way, a function only needs to worry about its own inputs, and the rest is handled automatically.
This does create the consequence of needing to use specific types (Integer, Float, etc.) for parameters and the return value. I considered allowing native Go types and using a context to host the additional information, but that made it a bit more difficult to handle the overloading and automatic casting, but I could be convinced that it's a better alternative (and probably easier to upgrade too as we add more functions).
On the note of functions, this only adds a few as a proof-of-concept. It's astronomically quicker to write these compared to the AST approach, and I'm going to use that test generation framework to get better testing coverage for functions, since the testing scope is orders of magnitude smaller compared to permutations of every statement, and the think-write-eval loop of coming up with tests manually takes quite a bit of time.
Last thing, all of the files that are related to the function compilation are prefixed with 0_. I wanted to prefix them with a single underscore instead, but apparently Go ignores files that start with an underscore. I didn't want to just dump them together with the functions without any special indication, because they'll end up lost in the sea of files. For example, which files in server/ast aren't nodes? Only way to know is to scroll through all 141 files, so I wanted to avoid that. I also tried separating packages, but then that required either a lone file that would get lost, or an init() in every file that adds functions to the catalog, and both of those seemed worse.

Not planning to actually merge this until I'm completely done, otherwise we'll probably have some regressions in the sqllogictests.
For fun, here's what the lcm function looked like in the node implementation:
func lcm(exprs vitess.Exprs) (vitess.Expr, bool, error) {
	if len(exprs) != 2 {
		return nil, false, ErrFunctionDoesNotExist
	}
	num1Expr := &vitess.FuncExpr{
		Name: vitess.NewColIdent("ABS"),
		Exprs: vitess.SelectExprs{
			&vitess.AliasedExpr{
				Expr: &vitess.ConvertExpr{
					Name: "CAST",
					Expr: exprs[0],
					Type: &vitess.ConvertType{
						Type: "SIGNED",
					},
				},
			},
		},
	}
	num2Expr := &vitess.FuncExpr{
		Name: vitess.NewColIdent("ABS"),
		Exprs: vitess.SelectExprs{
			&vitess.AliasedExpr{
				Expr: &vitess.ConvertExpr{
					Name: "CAST",
					Expr: exprs[1],
					Type: &vitess.ConvertType{
						Type: "SIGNED",
					},
				},
			},
		},
	}
	const (
		cteName    = "cte"
		num1Name   = "num1"
		num2Name   = "num2"
		num12Name   = "num12"
		num22Name   = "num22"
		nums2Name   = "nums2"
		resultName = "lcm"
	)
	return &vitess.ConvertExpr{
		Name: "CAST",
		Expr: &vitess.FuncExpr{
			Name: vitess.NewColIdent("IF"),
			Exprs: vitess.SelectExprs{
				&vitess.AliasedExpr{
					Expr: &vitess.AndExpr{
						Left:  &vitess.ComparisonExpr{
							Operator: vitess.EqualStr,
							Left:     num1Expr,
							Right:    vitess.NewIntVal([]byte("0")),
						},
						Right: &vitess.ComparisonExpr{
							Operator: vitess.EqualStr,
							Left:     num2Expr,
							Right:    vitess.NewIntVal([]byte("0")),
						},
					},
				},
				&vitess.AliasedExpr{
					Expr: vitess.NewIntVal([]byte("0")),
				},
				&vitess.AliasedExpr{
					Expr: &vitess.Subquery{
						Select: &vitess.Select{
							With: &vitess.With{
								Ctes: vitess.TableExprs{
									&vitess.CommonTableExpr{
										AliasedTableExpr: &vitess.AliasedTableExpr{
											Expr: &vitess.Subquery{
												Select: &vitess.SetOp{
													Type: vitess.UnionAllStr,
													Left: &vitess.Select{
														SelectExprs: vitess.SelectExprs{
															&vitess.AliasedExpr{
																Expr: num1Expr,
																As: vitess.NewColIdent(num1Name),
															},
															&vitess.AliasedExpr{
																Expr: num2Expr,
																As: vitess.NewColIdent(num2Name),
															},
														},
													},
													Right: &vitess.Select{
														SelectExprs: vitess.SelectExprs{
															&vitess.AliasedExpr{
																Expr: vitess.NewColName(num2Name),
															},
															&vitess.AliasedExpr{
																Expr: &vitess.BinaryExpr{
																	Operator: vitess.ModStr,
																	Left:     vitess.NewColName(num1Name),
																	Right:    vitess.NewColName(num2Name),
																},
															},
														},
														From: vitess.TableExprs{
															&vitess.AliasedTableExpr{
																Expr: vitess.TableName{
																	Name: vitess.NewTableIdent(cteName),
																},
															},
														},
														Where: &vitess.Where{
															Type: vitess.WhereStr,
															Expr: &vitess.ComparisonExpr{
																Operator: vitess.GreaterThanStr,
																Left:     vitess.NewColName(num2Name),
																Right:    vitess.NewIntVal([]byte("0")),
															},
														},
													},
												},
											},
											As: vitess.NewTableIdent(cteName),
										},
										Columns: vitess.Columns{
											vitess.NewColIdent(num1Name),
											vitess.NewColIdent(num2Name),
										},
									},
								},
								Recursive: true,
							},
							SelectExprs: vitess.SelectExprs{
								&vitess.AliasedExpr{
									Expr: &vitess.BinaryExpr{
										Operator: vitess.DivStr,
										Left:     &vitess.BinaryExpr{
											Operator: vitess.MultStr,
											Left:     vitess.NewColName(num12Name),
											Right:    vitess.NewColName(num22Name),
										},
										Right: vitess.NewColName(num1Name),
									},
									As: vitess.NewColIdent(resultName),
								},
							},
							From: vitess.TableExprs{
								&vitess.JoinTableExpr{
									LeftExpr: &vitess.AliasedTableExpr{
										Expr: vitess.TableName{
											Name: vitess.NewTableIdent(cteName),
										},
									},
									Join:      vitess.JoinStr,
									RightExpr: &vitess.AliasedTableExpr{
										Expr: &vitess.Subquery{
											Select: &vitess.Select{
												SelectExprs: vitess.SelectExprs{
													&vitess.AliasedExpr{
														Expr:  num1Expr,
														As:    vitess.NewColIdent(num12Name),
													},
													&vitess.AliasedExpr{
														Expr:  num2Expr,
														As:    vitess.NewColIdent(num22Name),
													},
												},
											},
										},
										As:   vitess.NewTableIdent(nums2Name),
									},
								},
							},
							Where: &vitess.Where{
								Type: vitess.WhereStr,
								Expr: &vitess.ComparisonExpr{
									Operator: vitess.EqualStr,
									Left:     vitess.NewColName(num2Name),
									Right:    vitess.NewIntVal([]byte("0")),
								},
							},
						},
					},
				},
			},
		},
		Type: &vitess.ConvertType{
			Type: "SIGNED",
		},
	}, true, nil
}

Compared to the current implementation...it's night and day. The current is also way more robust and accurate.


Implement single cask upgrade feature

This PR implements the ability to upgrade a single, named cask using the --cask flag. It respects the --dry-run flag and will tell you if the the cask you target is outdated or up to date.
My aim in this feature was to ease a pain point I have whenever JetBrains updates their IDEs. The downloads can be rather large and sometimes I only need to update one of them.
This PR also adds some nice stdout formatting from Homebrew's utils.rb.

Thank you for your contribution. How about just brew cu [CASK] without the --cask flag? I think it would be nicer.

Sure, I can do that. I'll open another PR when it's done.

Sure. I'll open a new PR when it's done.


WIP: initial suppport for snap packages

Signed-off-by: S.Cavallo<EMAIL_ADDRESS>Description
Snap packages are now native to ubuntu bionic.  Aws and other providers are using the snap package type as their default.  We're using amazon EKS and the kubeclient and kubelet service are deployed via snap.
We need a way to manage both the snap packages and the snap configs and services via chef.
Please note -  this PR is a work in progress.   I'm hoping to get feedback on whether this is the right way to proceed before submitting an 'official' PR with everything implemented.
I'm hoping someone can advise on the approach here and if it's following chef standards and test coverage, etc.
If any feedback can be provided i'll take note and proceed with the updates and continuing work as appropriate.
Issues Resolved
[List any existing issues this PR resolves, or any Discourse or
StackOverflow discussion that's relevant]
Check List

[X ] New functionality includes tests
[X ] All tests pass
[ ] RELEASE_NOTES.md has been updated if required (not required for bugfixes, required for API changes)
[ X] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco

Pinging @lamont-granquist here

yeah, looks like this was based on the current yum/dnf provider code (with the python craziness and some rpm craziness removed), which is the correct guess on how to properly write package providers these days.

travis and appveyor are angry about unit tests and chefstyle.  it looks good once those get cleaned up though.

fixed and merged in #7999
@smcavallo only merged for chef-15 right now, so you've got until april to debug it.


[Dashboard] - Feature: add loading

Description
Component will render loading spinner while waiting for data from api call.
Completes: AB#FILL_IN_YOUR_ISSUE_ID
Checklist:

[ ] I have performed a self-review of my own code.
[ ] I have linked my DevOps task using the AB# tag.
[ ] My code is easy to read, and comments are added where needed.
[ ] My code is covered by tests.

Legg til work-item og fiks merge conflicts, så får vi denne in ;)

Legg til work-item og fiks merge conflicts, så får vi denne in ;)

Skal den inn under work space epicen?

Jepp


Rebalance: KeyboardInterrupt should not crash

Hitting ctrl+c when rebalancing should not crash lndmanage, because we have to restart and lose the command history. We should catch the exception.

Fixed via d6d284d4b3619bae363f682fa9684f674be3b4f7.


Allow dagger.json include/exclude patterns to match context directory

Summary
In a dagger.json's include/exclude patterns, make absolute paths (patterns starting with a /) relative to the module’s context directory (git repo root), while keeping relative paths relative to the dagger.json file.
Motivation
More control in monorepos
The proposed solution for importing code from outside a module in a monorepo is to add dagger.json files to target directories and use them as module dependencies:

https://github.com/dagger/dagger/issues/8496

However, I think the problem is the potential conflict of multiple modules requiring different patterns from the repo. For example, our own repo is daggerized with "source": ".dagger" at the root:
.
├── .git
├── .dagger
├── dagger.json
├── go.mod
└── go.sum

So if you have a sdk/go/dev module for example, that needs the go.mod file at the repo root, it’ll have to load all of these dependencies: https://github.com/dagger/dagger/blob/7ea7254fea1886831d3e3f211875cb86232a5945/dagger.json
The point is that two different modules could easily require different files from the same directory in the repo, so it’s harder to have fine-grained control using dependencies.
Using dagger.json include patterns that can match against the repo root, would make this much simpler to manage, and with greater control.
More control with .gitignore files
Suppose we move forward with parsing exclude patterns in .gitignore by default:

https://github.com/dagger/dagger/issues/6627

It’s possible a user may need to have something excluded from a git commit, but still want it locally in a Dagger module. For example, a .env file.
We could use the same technique to leverage module dependencies, and negate the exclude for it (!.env), but it has the same drawbacks too.
Using dagger.json exclude patterns that can match against the repo root, would make it easy to negate a pattern introduced by a .gitignore.
Specification
Allow include/exclude patterns in dagger.json to match against the root of the repo (context directory) if they begin in a slash (/).
Example
Suppose a my-module module in the following git repo needs to share the parent’s go.mod,cmd package, and the .git directory, but also exclude a .direnv file in the root directory:
.
├── .git
├── cmd
│  └── main.go
├── core
│  ├── backend.go
│  ├── consts.go
│  └── services.go
├── my-module
│  ├── .dagger
│  │  ├── internal
│  │  ├── dagger.gen.go
│  │  └── main.go
│  ├── .direnv
│  └── dagger.json
├── go.mod
└── go.sum

Then on my-module/dagger.json add:
{
    "name": "my-module",
    "sdk": "go",
    "source": ".dagger",
    "include": [
        "/go.mod",
        "/go.sum",
        "/cmd/*.go"
    ],
    "exclude": [
        "!/.git/**",
        ".direnv"
    ]
}

Rationale
With the recent Context directory feature, module authors are able to specify patterns for a Directory argument outside of the module’s “root directory” (where dagger.json is):

The context directory is the git repository containing the module. If there is not git repository, the context is simply the module.
Relative paths are relative to the [root directory]
Absolute paths are rooted in the context directory

Right now, the include/exclude patterns in dagger.json match only in relation to the directory with dagger.json, but there’s already a precedent for using an absolute path in order match from the context directory.

TIL: You can actually reach outside the module's root directory, with a relative path, however, I still think we should adjust the order of patterns when they're added because dagger.json includes are added before anything else, when it should be later in order to allow overrides.
For example, for a foo/bar module with:
{
    "name": "foobar",
    "sdk": "go",
    "source": ".dagger",
    "include": [
        "!../../**/vendor/",
        "!**/*",
        "src/"
    ]
}

The following include patterns are produced (diff is what I think it should be):
-!**/vendor/
-!foo/bar/**/*
-foo/bar/src/
-foo/bar/dagger.json
-foo/bar/**/*
**/go.mod
**/go.sum
**/go.work
**/go.work.sum
**/vendor/
**/*.go
+foo/bar/**/*
+!**/vendor/
+!foo/bar/**/*
+foo/bar/src/
+foo/bar/dagger.json

[!note]
The engine joins include patterns with:

<module root>/<dagger.json include...>
<module root>/dagger.json
<module root>/**/*
<sdk required paths>

What I’m suggesting is:

<sdk required paths>
<module root>/**/*
<module root>/<dagger.json include...>
<module root>/dagger.json

The exclude patterns are simpler and already correctly ordered:

.git/**
<module root>/<dagger.json exclude>...

I’m aware that you can exclude something that was included, instead of negating the include, I’m just trying to prove a point on the ability to override.

After my last comment, I've broken this into two independent issues:

https://github.com/dagger/dagger/issues/8548
https://github.com/dagger/dagger/issues/8547

The first one is the most important.


Track related activities

As requested by @jrenaut
https://strava.github.io/api/v3/activities/#get-related
Questions

Do we only want to track activities that are in our rides table (i.e. by other freezing saddles participants) or do we track everything?  (I think we probably track everything, though that means we lose on referential integrity to rides table...)
How do we manage re-syncing this data?  This is expensive (API call per ride), but this data also is gonna change (as others in the group post their rides later, etc.).  Not sure on best strategy to refresh this information.

What do we gain from tracking everything? I was just thinking we'd look at which FS riders rode with other FS riders. I don't really care, for example, if a participant rode with their bike shop team or whatever.
Since it's expensive, I think syncing once a day, fetching for all rides in the rides table, will be sufficient. Any charts dealing with this data could have the disclaimer that it only syncs once at midnight or whatever.

I guess it depends on what questions we're looking to answer with the data.  Probably restricting it to tracking rides of other FS-registered athletes is good; I guess I was thinking about questions like whether people are on group rides, etc.
Anyway, not sure when I'll get to this, but basically this follows the sync-photos pattern:  it needs a new sync script, tracking attrib in rides (rides.related_fetched, defaults to Null if non-applicable to the ride -- I think there's an attrib on the activity that indicates whether it was ridden alone), new database table to track the ride associations (SA model + Alembic migration(s) to create the table).  And then reprocessing current rides to set related_fetched to false if needed for that specific ride.

I'll take a look. The sync scripts don't make a ton of sense to me, but maybe I can figure it out.

You can run them locally if you have doubts about how they work; some of
them support filtering on a single athlete, which might be good to limit
the firehose.  The actual db-add logic is in the data.py module, but sync
scripts manage errors and commit/rollback transactions.  I would use
sync-photos as the model here, since it's an almost identical pattern.
On Sun, Jan 31, 2016 at 9:10 AM Jon Renaut<EMAIL_ADDRESS>wrote:

I'll take a look. The sync scripts don't make a ton of sense to me, but
maybe I can figure it out.
—
Reply to this email directly or view it on GitHub
https://github.com/hozn/freezingsaddles/issues/18#issuecomment-177508416
.


PHP Source File '/var/www/html/plugins/weathermap/Tests/WeathermapManagerTest.php' from Cache has a Syntax error!

I am testing a Cacti 1.0 feature remote polling.  Polling of remote devices functions.  What I have ran into is that when I look into remote poller log I get the following msg on every poller cycle (every min).
2017/06/08 15:35:02 - POLLER: Poller[3] ERROR: PHP Source File '/var/www/html/plugins/weathermap/Tests/WeathermapManagerTest.php' from Cache has a Syntax error!

Huh? That isn't even part of the normal code!
What happens if you delete the Tests/ directory? It's not need to run weathermap.

Howie, never mind, I  UN-unstalled weathermap from main server removed, tests folder, reinstalled all good.
Thank you for your guidance.


Fail build on missing specification files

I suggest changing message

Error parsing modules/codegen/src/main/resources/petstore.json... skipping

to something like

Requested json definition file modules/codegen/src/main/resources/petstore.json is not found

when the json file cannot be found

Resolved in #120


Remove most undefined variables issues in javascript files

Most were global variables defined in the templated html files or other included javascript files.
Others needed var/const declarations.
Only ones left are:
  2703:14  error  'ace' is not defined                                            no-undef
  2705:20  error  'require' is not defined                                        no-undef
  2802:19  error  'newURL' is not defined                                         no-undef
  2803:36  error  'newURL' is not defined                                         no-undef
  3333:55  error  'reset_params' is not defined                                   no-undef

Codecov Report

Merging #2149 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2149   +/-   ##
=======================================
  Coverage   77.96%   77.96%
=======================================
  Files          80       80
  Lines        8331     8331
  Branches     1874     1874
=======================================
  Hits         6495     6495
  Misses       1573     1573
  Partials      263      263

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 c7ae662...7f247c0. Read the comment docs.


Responsive ads support?

Can I use responsive ads with this?

Hello @idansh, I've not tried it and I don't think so. This is because this ad plugin requires administrators to specify the ad's width*height dimensions. However, based on the responsive ad units about page,

Responsive ads should not be placed inside containers with a fixed or limited height, as they may be taller on some devices or browsers.

On the other hand, Google does follow this statement with a how-to on modifying your responsive ad unit based on the above restriction. Perhaps that might be of use.
Let me know if you end up managing to get responsive ads working.


Cannot find train_ret_encdec_clip_anet.sh

Excellent work!
But I cannot find train_ret_encdec_clip_anet.sh.
When I try to run train_anet.sh, I got an error:
ModuleNotFoundError: No module named 'densevid_eval3.SODA'

Thanks for showing interest in my research!

Renamed the shell script to match the README.
Fixed the issue with the missing Metric folders and updated it.

Thanks for your attention and feedback!


Remove useless setters

One example:
https://github.com/Peltarion/ai_ikkuna/blob/6b5e404ae9e210ef1ae97a27d37a74d08011d5e3/ikkuna/export/messages.py#L148
A lot of message attributes have setters whose purpose is unclear, since the properties should be set by the initialiser.

fixed in fb738a96616aebcc2a15087a5e13a8ff8c21aa9b


Allow avro block size to be configurable in AvroIO.write

Adding support for making block size configurable for AvroIO.write operation. Setting a higher block size generally helps in achieving better compression ratio and is beneficial for persisting large datasets (in terms of storage cost).

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

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

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

See CI.md for more information about GitHub Actions CI.

R: @steveniemitz

Run Java PreCommit

Run Java PreCommit


chore(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2322

Questions ?
Please refer to the Backport tool documentation


Addition of unit tests related to Delete Account

Resolves #486
The Jest mock for gatsby-plugin-firebase (also referred to as Firebase stub) has been extended to support the auth() and functions() calls that are made during the Delete Account user interaction.
Also added a new Jest mock for @reach/router.

After the merge from upstream, the unit tests are failing. I'm looking into this issue.

Hallo @AmruthPillai , could you have a look at this PR ? It also includes changes to resolve the issues with the unit tests, which started to appear after the latest dependencies update.


Countermeasures section needs to be updated as it is not enabled by default.

This statement is reading like it is enabled and available for use already for Local System account:
"Processes that require this user right should use the Local System account, **which already includes it**, instead of a separate user
 account that has this user right assigned."

However, we can see that Local System account has this disabled by default for security reasons:
https://learn.microsoft.com/en-us/windows/win32/services/localsystem-account
SE_CREATE_TOKEN_NAME (disabled)

IMHO, we need to be clear that this is not enabled by default and point back to the risks section in same page:
https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/create-a-token-object#countermeasure
From there, have link to how to enable per process at runtime accordingly as better approach:
https://learn.microsoft.com/en-us/windows/win32/secauthz/enabling-and-disabling-privileges-in-c--?source=recommendations

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

ID: 76293024-8248-33cc-5dc8-22d29e6c0d57
Version Independent ID: b6a00c8f-d761-7815-345c-0aa6598518eb
Content: Create a token object (Windows 10)
Content Source: windows/security/threat-protection/security-policy-settings/create-a-token-object.md
Product: windows-client
Technology: itpro-security
GitHub Login: @vinaypamnani-msft
Microsoft Alias: vinpa

@vinaypamnani-msft Please help us in resolving this issue. Thanks

To make it easier for you to submit feedback on articles on learn.microsoft.com, we're transitioning our feedback system from GitHub Issues to a new experience.
As part of the transition, this GitHub Issue will be moved to a private repository. We're moving Issues to another repository so we can continue working on Issues that were open at the time of the transition. When this Issue is moved, you'll no longer be able to access it.
If you want to provide additional information before this Issue is moved, please update this Issue before December 15th, 2023.
With the new experience, you no longer need to sign in to GitHub to enter and submit your feedback. Instead, you can choose directly on each article's page whether the article was helpful. Then you can then choose one or more reasons for your feedback and optionally provide additional context before you select Submit.
Here's what the new experience looks like.
Note: The new experience is being rolled out across learn.microsoft.com in phases. If you don't see the new experience on an article, please check back later.
First, select whether the article was helpful:

Then, choose at least one reason for your feedback and optionally provide additional details about your feedback:

Article was helpful
Article was unhelpful

Finally, select Submit and you're done!


Integration tests use current repo source tf modules instead of local source cause build failures

Builds are currently failing when new changes to the tf module source path
For eg, we’re using source = "github.com/Microsoft/bedrock/cluster/azure/aks-gitops" vs source = "../../azure/aks-gitops"
Build example:
https://dev.azure.com/epicstuff/bedrock/_build/results?buildId=3080

duplicate of https://github.com/Microsoft/bedrock/issues/293

Closing issue (Duplicate)


"For example, a store may be buffered in a cache that later writes."

Type of change: Clarification.
Explanation:

The intent of the example (if I'm reading between the lines correctly) is that stores may buffer in a cache to later write, not that stores trigger reads.
A store to a cache need not necessarily be satisfied by a read operation to fill the cache, if the cache tracks data valid / dirty at a small enough granule and/or gathers enough stores to fill a data valid / dirty granule.

The intent was to describe that a store may result in a read operation initially. Think of a store to a WB cache, which first performs a read operation on memory.
It is true that the store may be buffered in the cache and then the cache may perform a write operation. But this comment was meant simply to illustrate the above behavior (among many others).

Sure, was just a suggestion in example text.


Compatibility for TF2

Hi all,
first of all, I would like to say that I found the paper and this library extremely useful and with many possible real applications. However, I have a small concern about its compatibility with TF2. I tried to re-adapt the shortest_path.py example with the TF2 framework, but I found several compatibility issues.
Is there an easy way to fix it? thanks in advance

Thank you for your message. Could you clarify what compatibility issues you are referring to?
There is a TF2 version of the sort.py demo in graph_nets/demos_tf2. So I don't anticipate big issues converting the shortest path demo, as the main differences between the demos are the inputs and targets, but not the model.

I am not a big expert in python and TensorFlow in general, but it seems the problem arises in the utils_tf.py, after I call utils_tf.placeholders_from_networkxs() in my main .py file.
thanks for your reply

Hi cirpote, looks like you're trying to use placeholders in TF2 which no longer exist. I highly recommend looking at the notebook in sort example in Tensorflow 2.
You will need to remove placeholders completely from your code and pass direct Tensors to your graph networks. Hope this helps!

Now it is working, thanks again.

feels like the other demos should be updated as well, specifically the graph_net_basics where even the links to TF1 are not even working (i.e. for unsorted_segment_sum
https://www.tensorflow.org/api_docs/python/tf/math/unsorted_segment_sum).
Is this task something good for a pull request? Is the repository committed to drop TF1/py2.7 compatibility?

Thanks for flagging @Mistobaan , the main problem is that we don't have integration tests for the demos, just for the tests, we will set something up :)
Most of the library works exactly the same in TF2 and TF1, as the library is actually the same, and we thought the only differences (session.run calls, and tf.function) were covered enough to in the TF2 demo to get some users started, so we favored releasing the actual TF2 compatibility earlier for those users with just one demo, rather than delaying the release to include more demos. We will add more demos in the near future :)

@Mistobaan With respect to the second question:

py2 compatibility: We may drop the actual compatibility when keeping both actually becomes a problem. For the demos, it should be ok if they are only Py3 compatible.
we do plan to keep tf1 compatibility for now.
With respect to the PR, what do you have in mind specifically?

@alvarosg thank you for the quick response.
for the PR I was thinking just a simple update of the notebook to be fully TF2 runnable with the updated links and imports.

@Mistobaan Of course, if you want to add a separate GraphNets Basics demo to the TF2 demo folder that covers the existing topics + tf.function that could be useful.
Maybe start by covering only tf.function, and then we can incrementally go from there if you are up to the task :)


⚠ ClamAV has degraded performance

In 0c098ee, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 52 ms

Resolved: ClamAV performance has improved in 5122e65.


Setup with scenes

Hi Simon,
Thanks for developing this contribution !
I want to setup a system with scenes (eg. 'at home', 'sleeping', 'to work').:

When scene 'to work' is active, all sensors at home should be read.
When scene 'sleeping' is active, some of the sensors upstairs shouldn't be read.
...

Some (common) flows should be active for multiple scenes, but other (dedicated) flows should be active only for a single scene.
There is also another contribution node-red-contrib-scenes that offers such functionality.  But that node requires Node-Red to be started with their own executable, which is currently not what I want.
So the flows are all available, but only some of them should be active (based on the current scene): when the current scene changes I need to pass an array of flow names to one of your nodes to activate them (while all other flows should be deactivated).
Do you think such a setup could easily be implemented by using your contribution?
Or does this require a new extra node to be developed around following API function?

Thanks in advance !!
Bart Butenaers

Hi Bart,
first, thankyou for your interest! :) - this is the first feedback I've had, although the nodeset has been downloaded lots....
flowman allows you to add and delete flows; so when you want to load a scene, you could load a json containing the flows required, add the ones for that scene, and keep the returned IDs.   Then when you want to change the scene, delete each of the flows which you stored the IDs for by id, and add the flows for the new scene.
Another (maybe more robust) approach may be to prefix the label of all 'scene' flows with something you know (e.g. 'scene-'); then when it comes to deleting, you can just 'getflows' and iterate over all the present flows to delete ALL flows which are disposable before re-adding the ones you want from now on.  (I'm thinking that when you 'addflow', the flow get's saved as part of your current flows; so if you have a machine crash/powerout, you may not know what flows it will start up on boot; but you could at this point just kill all 'scene-' flows and add the ones you know you should be running).
An alternative approach would be to work out how the enable flag is stored against a flow.  The API you highlight activates a COMPLETE set of flows (and is the last thing that the red addflow calls, after adding a flow to the set...).  I've not looked at the enabled flag, as it came along after I first wrote the node, but it seems a good addition to flowman would be an 'enableflow' node which took the flowid (or optionally a flow label?) plus an enable flag; this would suit you very well, because you could then have all your flows loaded (and easily editable), and just enable/disable as required.....
OK, I just had a look at the 0.17.5 NR code.  Seems addflow/updateflow do not allow for the disabled flag to be passed in  (they both create a brand new 'tab' node without these parameters).
But there did seem to be plans for functions enableflow/disableflow, but they are currently set to null.
A programmatic implementation without the features present in the API would be quite invasive (i.e. it would be far more related to red internals even than the current addflow/delflow implementation), and so probably not a great idea.
I'd suggest you go with the above addflow/delflow approach; I'll have a word with Nick and see if he wants contributions to enhance the programmatic API; I'm not sure if they have concrete plans around it for the moment.
best regards,
simon

Hey Simon,
Thanks for your quick reply !!
So I have 4 options to go (please correct me if I got it wrong!):
Option 1 - Add flow names and delete flow id's
I think that I would end up with a rather complex flow if I have to store/pass all the flow ID's myself.  In my humble opinion this is internal kitchen of the Flowman nodes, and I would prefer to work with flow names only...
Option 2 - Add flow names and delete flow names
So I would have some kind of function node that handle's all the logic of adding and removing flows.  Will create a test flow as soon as possible to test this.
Option 3 - Loading a complete set of flows
This is exactly what I'm aiming at, by using a simple flow of only 3 nodes:

Dashboard node where user can change the current scene (e.g. a dropdown)
Node to load the all flows of the selected scene
Flowman node to set this complete set of flows
The last node is the one I'm missing .  Was really hoping that you were able to supply such a node ;-)

Option 4 (??) - Enabling or disabling flows
I think you mean this is currently not available yet?
Greetings from a rainy Belgium,
Bart

I made an example of how I would see it working;
https://flows.nodered.org/flow/7a5147b61835690f470247d0f514d9b8
did find an issue too....  if you addflow or delflow in a loop, I think NR does not get the time for it's async saving.  at first I thought it was overwriting stuff in my msgs and just doing the same flows over again; hence the strange stuff in the iteration functions.
So, basically.

create flows called template-.  you can test and then disable these.
save them using the save feature (third chain) (set a directory in the fn node.  left it at c:\datanobackup\scenes).
Add them using the 2nd chain (names specified in inject as json array).
delete all starting with 'scene-' with the first chain (ready to re-add a different set!).

note the new issue about the addflow/delflow issue.
In your flow design, also watch out for running delflow and addflow at close time proximity (I'm kind of assuming you will delflows, then addflows; so just put a short delay between them.

Hi Simon,
thanks for all your effort.
I will try to experiment with all your tips this weekend, then I will give you feedback about my attempts.
Kind regards,
Bart

Hello Simon,
I had some issues while installing your node.
Seems I needed to add some dependencies to the package.json file, since there aren't any currently:

For example I got following error:

I created a fork of your project with following changes in the package.json file:
    "dependencies": {
        "fs-extra": "latest",
        "node-red": "latest"
    },

I installed my fork with this updated package.json file:
npm install https://github.com/bartbutenaers/node-red-contrib-flowman.git
And now Node-Red starts without errors, and all your nodes are recognized in my flow editor.
Especially the node-red dependency - necessary for the require('node-red') statement - seems to be a bit silly ...
However I don't understand that your other users didn't had the same installation errors ???
Any ideas?
Bart

hmm, fs-extra may be a new dependency; but i think it's already in node-red, so should not be required.
However;  I never use nodes in local/, I always have added them in the main node folders (i.e. they end up alongside node-red).
We may find that if installed in local/, you now have two copies of node-red, and so the nodes may not actually work!
Have a look and see exactly where it ended up, and where the deps got added (if at all).  If you have ended up with a duplicate of NR, we may need to stipulate in install method.
npm folder locations for deps are a black art to me...
I'm guessing I don't see the issue because I install by putting it in my app package.json (I wrap NR).
Strange to not have had any feedback from others; maybe  it's a case of people just downloading and abandoning immediately if the module does not work straight away.
s

Hi Simon,
Indeed the fs-extra is already a dependency for Node-Red:

I'm not an NPM expert, but I thought this is not relevant.  Each node has it's own dependencies.  So Node-Red can work with version X of fs-extra, while you are working with version Y.  To accomplish this, every node has it's own node_modules subdirectory (containing the dependency nodes).  E.g. on my Raspberry Pi, I get lots of nested node_modules directories:
/home/pi/.node-red/node_modules/fs-extra
/home/pi/.node-red/node_modules/node-red-contrib-flowman/**node_modules/fs-extra
/home/pi/.node-red/node_modules/node-red-contrib-flowman/node_modules/node-red
...

  Don't know if that is really necessary, because Node-Red will always be available in the super directory.  Perhaps this can be solved by something like require("../../node-red") or require("../../node-red") instead of require("node-red"), to load the functionality from a super directory.  I'm not at my computer currently, so I cannot try it now...
Still weird that no one reported this yet.  Among all those users, there should be at least a single annoying person like me ;-)

Hi Simon,
I already failed during my first test of your flows, i.e. the one you provided me to save flows.
While debugging, it seems that there are no flows available:

I assume that this is because I added node-red as a dependency, so it creates a new Node-Red instance (with a new empty json flow file)???
Secondly I tried to use the existing RED instance that is being passed:

But that RED instance doesn't contain the full API (as explained here): the RED instance e.g. has no getFlows() function.  Probably that is why you are using the RED2 instance ...
And at last I tried to use RED2 = require('../../node-red'), in a desperate attempt to get the original RED instance.  But that also fails:

I suppose reason is that I installed my Node-Red globally (to make sure it is accessible via system path):

sudo npm install -g --unsafe-perm node-red

As a result the node-red executable is in the /usr/bin directory (instead of in a root directory of your contribution), so the require statement cannot find it ...
I'll hate to admit it, but I have run out of creativity and knowledge ;-(
Kind regards,
Bart

looks like you may have to try installing the node globally; I wonder if node-red will find it then;
I got the go-ahead to look at the api from the team, so may also suggest that the API we need is made available to nodes...  but this won't happen quickly as I'm up to my eyes in stuff which contributes to my bank balance rather than my ego :).

Simon,
don't worry about it.  Your bank balance is more important.  If a find a
solution myself, I will keep you informed.  Thanks for all your spare time
you have spend!
Greetings,
Bart
Op 14 aug. 2017 09:33 schreef "btsimonh"<EMAIL_ADDRESS>
looks like you may have to try installing the node globally; I wonder if
node-red will find it then;
I got the go-ahead to look at the api from the team, so may also suggest
that the API we need is made available to nodes... but this won't happen
quickly as I'm up to my eyes in stuff which contributes to my bank balance
rather than my ego :).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/btsimonh/node-red-contrib-flowman/issues/1#issuecomment-322119349,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANkLFcFVzwp6XfdEECsf7bdAsddzQrCCks5sX_hhgaJpZM4O1Gm4
.

Bart - could you try the following require lines in your configuration?
var fs = require.main.require("fs-extra");
var fspath = require("path");
var util = require('util');
var RED2 = require.main.require('node-red');

I've put my node-red-contrib-flowman inside local/node_modules, and it still worked with the original 'requires', but it also still works with the above.  I wonder if this may solve your global node-red install?
I do not have a global install of node-red....

Hi Simon,
I have uninstalled the 0.0.7 version and installed your 0.0.8 directly from Github:

And indeed it seems to be working fine:

No complains anymore in the startup log about missing Node-Red module
In the debugger I see the RED2 variable is referring to my Node-Red instance.  E.g. all my nodes are found:

The only problem I currently have is that my holiday ends tonight, so tomorrow I'll need to work at my bank balance ;-)  I will try to experiment with the scene setup in the next weeks.  Will keep you up-to-date.
Thanks a lot for all your support until now!!!  Would not have figured out a solution with the require.main trick by myself in such a short notice.
Greetings from Belgium,
Bart

Hello Simon,
Me again, a little later as expected ...
Have been playing with your flow and it works fine!  So thanks again for publishing it!  Did learn a lot by reading and debugging your code.  Based on this new knowledge I started digging a little bit further and I experimented by adding a new node to your code: a SetFlows node to activate or deactivate flows.  Perhaps ActivateFlows should be a better name...
Not fully completed yet, but I would appreciate if you would review it and let me know what you think about it.  Because you are the flow manager in person ;-)
flows.html update

flows.js update
     // set the flows from msg.id
    function setflows(n) {
        RED.nodes.createNode(this, n);
        this.name = n.name || '';
        var node = this;

        node.on('input', function (msg) {
            var flows = [];
            var flow = "";
            var node = {};

            if (typeof msg.id === 'string'){
                flows.push(JSON.parse(msg.id));
            }

            if (!Array.isArray(msg.id)){
                node.error("did not setFlows - no flows found in .id");
                msg.err = "did not setFlows - no flows found in .id";
                return msg;
            }
            else {
                flows = msg.id;
            }

            try{
                for (var k = 0; k < flows.length; k++) {
                    flow = flows[k];
                    if (!getflow(flow)) {
                        node.error("did not setFlows - flow " + flow + " does not exist");
                        msg.err = "did not setFlows - flow " + flow + " does not exist";
                        return msg;
                    }
                }

                // read all flow ids from whole of node-red
                var allnodes = RED2.nodes.getFlows().flows;

                // Enable all flows specified in msg.id (and disable all other flows)
                for (var n = 0; n < allnodes.length; n++){
                    node = allnodes[n];
                    if (node.type === 'tab') {
                        node.disabled = !flows.includes(node.id);
                    }
                }
            } catch (e) {
                delete msg.payload;
                msg.err = 'could not set flows ' + util.inspect(e);
                return msg;
            }

            try {
                // Set the flow nodes (with updated 'disable' fields)
                RED2.nodes.setFlows(allnodes);
            } catch (e) {
                delete msg.payload;
                msg.err = 'could not set flows ' + util.inspect(e);
            }

            node.send(msg);
        });
    }
    RED.nodes.registerType("setflows", setflows);
    //console.log("registered setflows");
};

Explanation
In the msg.id field an array of flow (tab) id's is being specified.  All flows that are being specified will be enabled, all other flows will be disabled.
Some test flow:

[{"id":"fa97f61e.568b58","type":"setflows","z":"6beebf75.ed0b5","name":"","x":1260,"y":340,"wires":[[]]},{"id":"c7893e19.4a52","type":"inject","z":"6beebf75.ed0b5","name":"","topic":"","payload":"[\"47b91ceb.38a754\",\"d7a683c8.03b5e\",\"985aac0b.bcc38\",\"d0d4f76e.209b68\",\"6beebf75.ed0b5\",\"4900f0c0.a1ad6\",\"942c4e5e.b137a\",\"f46bc5ef.dcbab8\"]","payloadType":"json","repeat":"","crontab":"","once":false,"x":930,"y":340,"wires":[["19fac069.fbec5"]]},{"id":"19fac069.fbec5","type":"change","z":"6beebf75.ed0b5","name":"","rules":[{"t":"set","p":"id","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":340,"wires":[["fa97f61e.568b58"]]}]

This way  I can store for each scene an array of all flow ids that are relevant for that scene.  When a scene is activated by the user, I simply send the array of flow ids to the setflow node (and only those flows are enabled, all others disabled)...
In this test I passed an array of all flow id's, except from flow id "c795f3e1.2fc81" which is being disabled by my node:

So the setflows node does a little bit the similar to pressing the flow's disabled button:

I assume this has something to do with your Node-Red issue, but not 100% clear to me what ...
Is this a good solution, a bad solution, do you have a better proposal?  Very curious about your opinion !
Kind regards,
Bart Butenaers

Simon (@btsimonh),
An extra question about your issue.  You and Nick are only discussing addFlow/getFlow/updateFlow, while I'm using the setFlows.  Is there any reason why the setFlows is not mentioned?  Is there some disadvantage of setFlows perhaps, I'm not aware of?

Hi bart, will review next week as i'm in amsterdam at our major european show (with my flemmish colleagues :) ).  Note the issue in NR i've raised about updating the programatic interface for enable/disable also...  have basic agreement from nick that i can work on this, just a matter of time...
Br,
Simon
On Sep 14, 2017 10:08 PM, bartbutenaers<EMAIL_ADDRESS>wrote:
Hello Simon,
Me again, a little later as expected ...
Have been playing with your flow and it works fine! So thanks again for publishing it! Did learn a lot by reading and debugging your code. Based on this new knowledge I started digging a little bit further and I experimented by adding a new node to your code: a SetFlows node to activate or deactivate flows. Perhaps ActivateFlows should be a better name...
Not fully completed yet, but I would appreciate if you would review it and let me know what you think about it. Because you are the flow manager in person ;-)
flows.html update

flows.js update
 // set the flows from msg.id
function setflows(n) {
    RED.nodes.createNode(this, n);
    this.name = n.name || '';
    var node = this;

    node.on('input', function (msg) {
        var flows = [];
        var flow = "";
        var node = {};

        if (typeof msg.id === 'string'){
            flows.push(JSON.parse(msg.id));
        }

        if (!Array.isArray(msg.id)){
            node.error("did not setFlows - no flows found in .id");
            msg.err = "did not setFlows - no flows found in .id";
            return msg;
        }
        else {
            flows = msg.id;
        }

        try{
            for (var k = 0; k < flows.length; k++) {
                flow = flows[k];
                if (!getflow(flow)) {
                    node.error("did not setFlows - flow " + flow + " does not exist");
                    msg.err = "did not setFlows - flow " + flow + " does not exist";
                    return msg;
                }
            }

            // read all flow ids from whole of node-red
            var allnodes = RED2.nodes.getFlows().flows;

            // Enable all flows specified in msg.id (and disable all other flows)
            for (var n = 0; n < allnodes.length; n++){
                node = allnodes[n];
                if (node.type === 'tab') {
                    node.disabled = !flows.includes(node.id);
                }
            }
        } catch (e) {
            delete msg.payload;
            msg.err = 'could not set flows ' + util.inspect(e);
            return msg;
        }

        try {
            // Set the flow nodes (with updated 'disable' fields)
            RED2.nodes.setFlows(allnodes);
        } catch (e) {
            delete msg.payload;
            msg.err = 'could not set flows ' + util.inspect(e);
        }

        node.send(msg);
    });
}
RED.nodes.registerType("setflows", setflows);
//console.log("registered setflows");

};
Explanation
In the msg.id field an array of flow (tab) id's is being specified. All flows that are being specified will be enabled, all other flows will be disabled.
Some test flow:
[image]https://user-images.githubusercontent.com/14224149/30452693-da00638a-9996-11e7-9a53-30bb7c75989e.png
[{"id":"fa97f61e.568b58","type":"setflows","z":"6beebf75.ed0b5","name":"","x":1260,"y":340,"wires":[[]]},{"id":"c7893e19.4a52","type":"inject","z":"6beebf75.ed0b5","name":"","topic":"","payload":"["47b91ceb.38a754","d7a683c8.03b5e","985aac0b.bcc38","d0d4f76e.209b68","6beebf75.ed0b5","4900f0c0.a1ad6","942c4e5e.b137a","f46bc5ef.dcbab8"]","payloadType":"json","repeat":"","crontab":"","once":false,"x":930,"y":340,"wires":[["19fac069.fbec5"]]},{"id":"19fac069.fbec5","type":"change","z":"6beebf75.ed0b5","name":"","rules":[{"t":"set","p":"id","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":340,"wires":[["fa97f61e.568b58"]]}]
This way I can store for each scene an array of all flow ids that are relevant for that scene. When a scene is activated by the user, I simply send the array of flow ids to the setflow node (and only those flows are enabled, all others disabled)...
In this test I passed an array of all flow id's, except from flow id "c795f3e1.2fc81" which is being disabled by my node:
[image]https://user-images.githubusercontent.com/14224149/30453011-b8cbbfe2-9997-11e7-8f12-ae9969af1453.png
So the setflows node does a little bit the similar to pressing the flow's disabled button:
[image]https://user-images.githubusercontent.com/14224149/30453152-31388da2-9998-11e7-90bb-b82914acccd1.png
I assume this has something to do with your Node-Red issuehttps://github.com/node-red/node-red/issues/1372, but not 100% clear to me what ...
Is this a good solution, a bad solution, do you have a better proposal? Very curious about your opinion !
Kind regards,
Bart Butenaers
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/btsimonh/node-red-contrib-flowman/issues/1#issuecomment-329594435, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AC_fNE6Do8JVRKKO7TWNq4LBIVU9hNNJks5siYergaJpZM4O1Gm4.

Goedemiddag Simon,
veel plezier op de Europese show ;-)
Groetjes,
Bart

I'll get them to translate when they get back from partying!
S
On Sep 15, 2017 12:46 PM, bartbutenaers<EMAIL_ADDRESS>wrote:
Goedemiddag Simon,
veel plezier op de Europese show ;-)
Groetjes,
Bart
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/btsimonh/node-red-contrib-flowman/issues/1#issuecomment-329748083, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AC_fNJeWtxAutIloFRr9fF7BSqm0m6PVks5silV2gaJpZM4O1Gm4.

Hello Bart/Simon,
I just randomly come across this issue with hope if I can find my answer here. actually, I'm very basic with node-red and trying to switch enable/disable a flow tab.
I can obtain the flow id by getflows node, but I can't figure out how to disable it?
please let me know your comment.

hi arman2019b,
As I found out yesterday when I inadvertently updated the node-red and flowman to latest in my production build, flow.disabled is now supported in addflow and getflow.  Originally it was not supported by NodeRed, but this commit corrects that.  Not sure what minimum NR version you would need (I'm still on an old 0.17, modified).
This node set does not help in changing it on a current flow, but you could easily delflow and then addflow with the modified value.  Just be aware that subflows will be squashed into the main flow and reproduced, as will global config nodes, and that the variable 'disabled' will only be present in the flow if it is disabled... so getflow a disabled one to see where to add it :).
br,
Simon

hi,
do you have by chance any sample file that i can use?


Game crashes on deployer kill 1.20.2

Describe the Bug
No matter if it has a sword or not game crashes. Did it with both hand crank and power
Reproduction Steps

set up deployer
have mob in front
kill it
game crash
...

Expected Result
The game crashed after I did some testing happens every time a deployer kills a mod.
Screenshots and Videos
No response
Crash Report or Log
https://gist.github.com/GrayThorne/4a3950d8ecbdec0fa2743120bedbe861
Operating System
windows 11
Mod Version
0.5.1d
Minecraft Version
1.20.1
Other Mods
"https://modrinth.com/modpack/rpg-create+" This is a link to the modpack I have been playing on for a list of mods.
Additional Context
No response

please correctly attach the crash report

ok I hope that fixed it sorry and thank you

Can confirm on 1.20.1
crash-2023-11-28_22.38.59-server.txt

Have also confirmed with 1.20.1 (Create Fabric version: 0.5.1-d-build.1161+mc1.20.1).
Saw it on our server with a zombie spawner and a blaze spawner (thought maybe the first was a weird one-off). I made a single player creative world to try it in (using a skeleton spawner) and crashed the single player. Below is the relevant portion of log from Modrinth (not really enough to be worth a file).
The relevant part seems to be Cannot invoke "java.util.List.forEach(java.util.function.Consumer)" because "capturedDrops" is null
[07:32:11] [Server thread/ERROR]:  Encountered an unexpected exception net.minecraft.class_148: Ticking block entity 	at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:901) ~[client-intermediary.jar:?] 	at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:824) ~[client-intermediary.jar:?] 	at net.minecraft.class_1132.method_3748(class_1132.java:105) ~[client-intermediary.jar:?] 	at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671) ~[client-intermediary.jar:?] 	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[client-intermediary.jar:?] 	at java.lang.Thread.run(Unknown Source) ~[?:?] Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.forEach(java.util.function.Consumer)" because "capturedDrops" is null 	at com.simibubi.create.content.kinetics.deployer.DeployerHandler.activateInner(DeployerHandler.java:207) ~[create-fabric-0.5.1-d-build.1161+mc1.20.1.jar:?] 	at com.simibubi.create.content.kinetics.deployer.DeployerHandler.activate(DeployerHandler.java:134) ~[create-fabric-0.5.1-d-build.1161+mc1.20.1.jar:?] 	at com.simibubi.create.content.kinetics.deployer.DeployerBlockEntity.activate(DeployerBlockEntity.java:358) ~[create-fabric-0.5.1-d-build.1161+mc1.20.1.jar:?] 	at com.simibubi.create.content.kinetics.deployer.DeployerBlockEntity.tick(DeployerBlockEntity.java:244) ~[create-fabric-0.5.1-d-build.1161+mc1.20.1.jar:?] 	at com.simibubi.create.foundation.blockEntity.SmartBlockEntityTicker.tick(SmartBlockEntityTicker.java:15) ~[create-fabric-0.5.1-d-build.1161+mc1.20.1.jar:?] 	at net.minecraft.class_2818$class_5563.method_31703(class_2818.java:662) ~[client-intermediary.jar:?] 	at net.minecraft.class_2818$class_5564.method_31703(class_2818.java:716) ~[client-intermediary.jar:?] 	at net.minecraft.class_1937.method_18471(class_1937.java:470) ~[client-intermediary.jar:?] 	at net.minecraft.class_3218.method_18765(class_3218.java:390) ~[client-intermediary.jar:?] 	at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:897) ~[client-intermediary.jar:?] 	... 5 more

its a known issue https://discord.com/channels/570630340075454474/1180983709126639626/1181360079023386666

Let's maybe create some temporary workaround until the normal one is done, so playera won't get crashed?

should be easy enough to do, you would really just have to add a mixin wrapping the assignment here:
https://github.com/Fabricators-of-Create/Create/blob/c1ba62240fb817820ade654b30d7157949c94fea/src/main/java/com/simibubi/create/content/kinetics/deployer/DeployerHandler.java#L206C55-L206C55
that null checks and sets it to an empty list if null.

duplicate of #1096


[QUESTION] (Single node setup) Disk affinity

Question
I have a single node setup with a lot of disks. Is there an option to set an affinity on disks to make sure that none disk will have two or more replicas of volume?
As you can see below, 2 of 5 replicas are located on /mnt/sdb

Unfortunately, right now there is no disk-level affinity.

So if there is no option to set disk affinity, can I run multiple longhorn instances on one node and give them different disks?

IIRC, Longhorn will randomly choose disks for replicas, no guarantee of scheduling each replica to a different disk. You may need to handle/adjust it manually.

@innobead is this something planned?

https://github.com/longhorn/longhorn/issues/5149#issuecomment-1559585527

Verified on master-head 20231207

longhorn master-head https://github.com/longhorn/longhorn/commit/6627b0c55c15adb0831546ec2412ce2623462ce7
longhorn-manager master-head https://github.com/longhorn/longhorn-manager/commit/266210f7c2ac6e4d8b80381d25daa673dd9577d5
longhorn-ui master-head https://github.com/longhorn/longhorn-ui/commit/41f43dceb0b1c0dc1367a104a60384eb7ffb0b25
website master https://github.com/longhorn/website/commit/41f43dceb0b1c0dc1367a104a60384eb7ffb0b25

The test steps

https://github.com/longhorn/longhorn/issues/3823#issuecomment-1659169095
Manual test cases : https://longhorn.github.io/longhorn-tests/manual/release-specific/v1.6.0/test-replica-disk-soft-anti-affinity/

Result Passed

[x] 1. Test initial behavior of global Replica Disk Soft Anti-Affinity setting
[x] 2. Test initial behavior of global Replica Disk Soft Anti-Affinity setting after upgrade
[x] 3. Test behavior of volume Replica Disk Soft Anti-Affinity setting
[x] 4. Test initial behavior of volume Replica Disk Soft Anti-Affinity setting after upgrade
[x] 5. Test effect of Replica Disk Soft Anti-Affinity on replica scheduling
[x] 6. Test effect of Replica Disk Soft Anti-Affinity on replica scheduling
- Manually follow the test_global_disk_soft_anti_affinity skeleton.
- Manually follow the test_volume_disk_soft_anti_affinity skeleton.

[x] require/auto-e2e-test :

The automation skeleton PR is https://github.com/longhorn/longhorn-tests/pull/1522
We plan to implement the test case in https://github.com/longhorn/longhorn/issues/6433

[x] require/doc : Checked documentation in https://github.com/longhorn/website/pull/762
[x] require/lep : https://github.com/longhorn/longhorn/pull/6431
[x] require/ui : https://github.com/longhorn/longhorn-ui/pull/642


migrate logger

What is this
Migrate the logger from:
https://github.com/GSS-Cogs/dp-python-tools/tree/main
to:
https://github.com/ONSdigital/dp-python-tools
What to do
Create as a new PR. As part of this I'd also like a few changes:

Investigate removing the "test_mode" keyword please, that was a bit of a quick hack as we were in a rush. Look for a non invasive way to capture what's being sent to the logger while testing.

Add documentation for how to use the logger. Use the other readmes in https://github.com/ONSdigital/dp-python-tools as a guide for style and level od detail.

Acceptance Criteria

[ ] Logger migrated and tests work with new "no test_mode" approach.

5pts.

gone a different way


fix: remove zoom spam

that std::cout is there for debug porpuses regarding the simplified rendering, the latest release shouldn't have that

Yeah I just pulled down master and noticed it was flooding my console and thought it might have been included in error

already removed in commit revert bfba196003255c1bfa9d0405787d90221c451342


Links that are posted to libertree doesn't look too good

From @annando on May 16, 2014 6:40
When a post goes to libertree, links aren't formatted nicely. Libertree needs another way of treating links.
At the moment it looks like this:
#[1](http://www.forbes.com/sites/craigsilver/2014/05/15/funnyball-baseball-statistics-wed-like-to-see/ "")

The libertree parser shows it this way. The title of the link is at the end of the post which doesn't look nice.
In Friendica this works. AFAIK we changed something in the markdownify class.
Copied from original issue: friendica/red#461

From @ghost on May 22, 2014 21:9
Surely Libertree's UI is a Libertree bug?

In the meantime we exchanged the markdown libraries in Friendica and it does look good, I think.

wontfix


mark Aurees as depricated / development ceased

it hasn't been updated in years and does not function properly, regardless of OS.

Thanks for letting us know. Would you be interested in contributing by
Adding a PR removing it?
On May 26, 2024, GitHub @.***> wrote:

it hasn't been updated in years and does not function properly,
regardless of OS.

—
Reply to this email directly, view it on GitHub
https://github.com/git/git-scm.com/issues/1848, or unsubscribe
<https://github.com/notifications/unsubscribe-
auth/AAPIBSWDOF62KG7PCCRLDOTZEIZJ3AVCNFSM6AAAAABIKBGIM2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGMYTOOBZHEYTQMQ>.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

overlooked this on mobile: just noticed the app did a release less than 6 months ago in December (https://github.com/gitahead/gitahead/releases), and not "in years"
so maybe there's something wrong in the steps u followed and it would be better to raise in the repo directly? @Ryder17z

overlooked this on mobile: just noticed the app did a release less than 6 months ago in December (https://github.com/gitahead/gitahead/releases), and not "in years"

The README.md in that repo does start with this text, thoug:

GitAhead is no longer under active development. Low-level maintenance and bug fix releases will be made as necessary for the foreseeable future, but no new features or major changes are planned at this time.

I believe this can be closed for now as the pr got merged.


V6.5.4

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Importing the python module is segfaulting on mac.
@scarlehoff could you have a look?

The version of lhapdf in homebrew is still at 6.5.3 https://github.com/davidchall/homebrew-hep/blob/HEAD/Formula/lhapdf.rb
so I'd simply wait. Is there some bugfix in 6.5.4 that we need?

AFAICT the internal uncertainty calculation is wrong, which is used in various places, but not nnpdf.

I just tested it and it does work in M1. And since it works I've opened a PR so that the arm64 build is enabled https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/4584 (it's silly not to have it if it works).
Not sure when/where I will be able to get my hands in an "old mac". Maybe @Radonirinaunimi could help here (I was with him last week but forgot about this).

I just tested it and it does work in M1. And since it works I've opened a PR so that the arm64 build is enabled conda-forge/conda-forge-pinning-feedstock#4584 (it's silly not to have it if it works).
Not sure when/where I will be able to get my hands on an "old mac". Maybe @Radonirinaunimi could help here (I was with him last week but forgot about this).

Yes, I can try to have a look asap!


Add latest issues to README

This little PR adds the latest 4 acknowledged issues to the README.
While I was at it,

I also fixed an older typo and
toned down the occurrences of  'young', 'recent' and 'OCaml 5.0'

CI summary

Mingw 5.1 timeout in threadomain #203
Mingw 5.1 timeout in domain_spawntree - with Atomic #354
Llinux-s390x-5.2 failed due to already reported cmi lookup regression
Linux-ppc64le-5.2 failed due to already reported cmi lookup regression
7 runs failed within 1 min due to network issues

Out of 50 + 9 runs, we thus had 10 faiures, 8 were for outside reasons and 2 were genuine failures (no false positives!)
I'll merge.


Added support for a clickToFocus boolean prop

Added support for a clickToFocus boolean prop, which defaults to false. Any click within the entire terminal will put focus on the input field. Drag events won't cause focus so that it's still possible to select text for copying to clipboard.
Added 'white-space: pre' style to the OutputContainer so that multiple spaces don't get collapsed to one space.
Added transform-class-properties as a dev dependency so that we can use the es2016 property initializer syntax as an alternative to bind in the constructor or a lambda in the render function.
Recommend minor version bump for this change. Arguably clickToFocus should default to true but that would be a major version bump and I'll let you decide if/when to apply that.

Thanks for the docs.
Released a new build with a minor version bump.


[Request] Get listed in the readme?

Would it be possible to get PySimpleGUIWeb listed in the "Projects that use Remi" section of the Readme?  I can understand if it's not a fit however as PySimpleGUI isn't an application.

Hello @MikeTheWatchGuy of course, I will do this soon!

@MikeTheWatchGuy done ;-)

OMG, you didn't have to include all that info!  How generous!  Damn....

I took that from your repository, I think it is a good idea to mention your great project with an exhaustive description.


[WFRP4e Core] Snake in Bestiary has 40 Wounds instead of 8

Snake in the Bestiary has 40 Wounds instead of 8From: Obiatnwfrp4e: 3.0.1wfrp4e-core: 1.01

This may be because of swarm


JSdoc+Intellisense. @typedef include in function description

VSCode Version:

OS Version: win7 pro

Steps to Reproduce:
@typedef tag include in a first function description after @typedef, and is not included in the function which describes this type
@typedef can be re used in other functions, and describe the same type before each function is incorrect.
code:

functions:

Can you share your code so I can copy and paste?
(I know it seems lazy, but I have a lot of issues to go through :) )

Океюшки
/**
 * @typedef {Object} MyType1
 * @prop {string} name
 * @prop {string} type
 */

/**
 * @typedef {Object} MyType2
 * @prop {string} name
 * @prop {string} type
 */

/**
 * @param {MyType1} param1 MyParamPype
 * @returns {boolean}
 */
function MyFunc1(param1) {

}

/**
 * @param {MyType2} param2 MyParamPype
 * @returns {boolean}
 */
function MyFunc2(param1) {

}

@IgorNovozhilov thank you. Migrating to TS Server repo.

This issue was moved to Microsoft/TypeScript#12233


Update Creating-a-Package.md

The version didn't comply to your own rules

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/Create-Packages/Creating-a-Package.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Anand--can you confirm this?

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/Create-Packages/Creating-a-Package.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Need an apology page instead of Error page in case of wrong user input in recommend section

Here, wrong user input refers to a book name which is not present in the dataset

Can I work on this?

Sure

Can I work on this?

Sure.
Sorry for responding late


Added Barclays logo to the partners section

Reordered some other logos so the same shape logos are together so the alignment of images does not look weird

Looks good to me, thanks!


Using on 1D time series

Hi! Is it possible to use the tool on 1 dimension time series? Thanks

Yes, you can use it for one dimensional time series. Here's a very brief example using mdDelay() for a very short time series:
x = [1, 2, 1, 2, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]';
mdDelay(x)

This should give you a plot of the mutual information between the time series and lagged versions at different lag values, and return the location of the first local minimum (3):
No value below threshold found. Will use first local minimum instead

ans =

     3


Validation fixes

Implement measurements of recall (fraction of signals recovered) vs. background and glitch datasets separately. Closes #41 , closes #170 . Re-creation of #221 but with the git history better aligned.
For background, outputs are pooled across adjustable windows at an adjustable stride to simulate test-time clustering, and recall is measured using thresholds from the top k background "events".
For glitches, recall is measured using thresholds from adjustable specificity levels (fraction of glitches correctly classified at a given threshold).
Monitoring (for early stopping and model selection) can be performed against any threshold for either metric. Checkpointing at a specified cadence has been added as well.

[x] Add Recorder and Validator parameters to train:main function definition
[x] Add tests
[x] Fix sample_rate used for background pooling to be 1 / stride

Tests aren't exhaustive, but cover the most relevant functionality.


Missing unite2024ITS.classification file

Hello!
I'm trying to follow the example to classify sequences using the pre-computed thresholds with the command:
dnabarcoder/dnabarcoder.py classify -i dnabarcoder/query.unite2024ITS_BLAST.bestmatch -c unite2024ITS.classification -cutoffs unite2024ITS.unique.cutoffs.best.json

However, there is no unite2024ITS.classification file in the repository.
Could you please upload it?
With kind regards,
Vladimir

Great! Thank you so much for the fast answer and uploading files to Zenodo.


Mekanism Flame Thrower Breaks World (server crash) on Hitting Sugarcane :(

-->
Minecraft version:
1.7.10
Unabridged or Abridged version:
R13b
Issue Description:
So I shot the flamethrower on the setting "Inferno" at a piece of sugarcane, while messing around with it. Then my server crashed and every time i try to load up my character (where the flame is still trying to hit the sugarcane?) it crashes again.
I figured it was a buggy smelting recipe, but sugarcane has none. Here is the pastebin of the initial crash log. http://pastebin.com/PWJ9dK5r
Here is the second pastebin from when I tried to log back in, after turning the server back on. http://pastebin.com/YVTR3MqG
Steps to Reproduce:
Shoot sugarcane with the Mekanism flamethrower, on the inferno setting. (and possibly the heat setting too?)
Crash report or log (uploaded to gist.github.com or pastebin.com):
Crash on shot: http://pastebin.com/PWJ9dK5r
Crash after trying to go back in game after turning the server back on: http://pastebin.com/YVTR3MqG

Open your player.dat file with NBTexplorer and try removing the flamethrower from the inventory slot it was in.
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/1262665-nbtexplorer-nbt-editor-for-windows-and-mac

Thanks, I will possibly try that shortly. Do you have any ideas for a permanent solution?

I double checked, and it is easily recreatable in solo mode. I hope it is fixed in the next update, because it can be quite world breaking.

So for any who have this problem, it can be fixed by deleting the chunk the problem is in. Such as with NBTExplorer. Though, this is still a serious issue that the people who organize the modpack should attempt to fix in the next iteration.

I'll do my best to get it fixed for the next update. I have a few theories on how to fix it. Wish me luck and thanks for the report :)

1.7.10 Mekanism has been abandoned. Unfortunately, there is nothing I can do.


R2dbc provider

Draft for #700.
Also, I think it makes sense to provide an alternative reactive core API and implement it for providers which use reactive API (such as Lettuce, Redisson, Mongo, Cassandra). I might try to do it if it's ok for you from an API design perspective.

Thanks for the quick reply and review!
To the points:

It would help to use cluster locks in framework-independent reactive-streams pipelines. In spring I suppose we could rework aspects to deal with reactive publishers (just like @Timed annotation supports Mono and Flux now).
Regarding Loom your point makes sense but is still arguable though. Loom has not been shifted to the latest LTS version (17) and I would not rely on it too much.
In my exact case - yes, I would like to reuse the existing r2dbc connection pool.
Yes, most r2dbc drivers don't support named parameters yet.


Generic launch pattern

What is the context of this PR?
Describe what you have changed and why, link to other PRs or Issues as appropriate.
How to review
Describe the steps required to test the changes (include screenshots if appropriate).
Checklist

[ ] New static content marked up for translation
[ ] Newly defined schema content included in eq-translations repo

 Implement generic launch and receipting pattern: v2 (8 SP)


Property "$getFont" was accessed during render but is not defined on instance.

Node v19.9.0
NuxtJS v3.6.1
nuxt-speedkit installed successfully: ^3.0.0-next.17
But I'm getting ts errors in nuxt config {fonts} declaration (never[]), as well as the titular error when I try
v-font="$getFont('fontName')"
What am I doing wrong?
THANK YOU!

Added
<script setup>
const {$getFont} from useFont()
</script>

and now it's working - however, still getting a typescript error in the nuxt.config.js for never[] typed 'fonts' property.
useFont() should be added to the docs!

So, it's working now but the browser console is throwing an error?
Uncaught (in promise) DOMException: Failed to execute 'check' on 'FontFaceSet': Could not resolve 'bold 600 12px 'FontName'' as a font.


Using WebRequest to retrieve upstream proxy

Doneness:

[x] Build is okay - I made sure that this change is building successfully.
[x] No Bugs - I made sure that this change is working properly as expected. It doesn't have any bugs that you are aware of.
[x] Branching - If this is not a hotfix, I am making this request against develop branch

Related issue #264. @honfika


Disassociate Emacs Lisp

I, err, don't know if you'll agree with this or not, but I thought I'd try anyway. =)
I know a dedicated language package for Emacs Lisp didn't exist when this package was published, but I changed that last night.
More to the point, one can't have this package and my one installed at the same time; all .el files become marked as Common Lisp. My theory is that Atom goes through loaded packages alphabetically, and links a file extension to the first one that lists it. Since "Common Lisp" would get sorted before "Emacs Lisp", that's what causes the confusion...

The only thing I'm going to suggest, is you also change Readme.md noting your package and why you should use yours over mine in this case, as I'm unfamiliar with all your package does at the moment, and mine just does highlighting.
Either way I'll merge Monday am.  Take care!

Eh, I'd rather not. Bragging about one's package in the readme tends to look immature and off-putting.
Mine strictly targets Emacs Lisp files only (.el, .spacemacs, etc). The only thing other than syntax highlighting which it adds is a pair of commands for launching emacs --batch in a separate process to evaluate Lisp code (subsequently displaying the output in a notification).

No problem, though I will make a note to let people know.

BTW, let me know what you think of my grammar, haha. I was learning Lisp when I developed it. :)

:))))))))))))


allow changing unauthorized-role flag

As per documentation here:  Unauthenticated request definitions, we can use hasura environment variable to customize unauthorized role.
For example, if I want to grant SELECT  permission of specific table to Unauthenticated users, we need to define permissions to a unauthorized role ( let's say incognito )
Then set HASURA_GRAPHQL_UNAUTHORIZED_ROLE or the --unauthorized-role  to incognito  for graphql-engine  server.
currently HASURA_GRAPHQL_UNAUTHORIZED_ROLE=public preset in generated  docker-compose.yaml  by nhost cli and not customizable.
would be nice if we can customizable  this flag  in nhost.toml
[hasura.settings]
corsDomain = ['*']
devMode = true
unauthorizedRole = 'incognito'

what is the difference between calling the role public or incognito though? what is the use case to be able to change the name?

Not much deference , it would help retain consistency across environments. I actually want to use public, but be explicit
My usecase Will be for store  public data like : pricing  data,  blog comments, contact-us data etc


Added support for slots

Sorry for opening an issue and general noob-ness, found the error and added the slots support myself.

@bosswissam Okay, done. Do take a look at it since I have no experience with tests.

@KMouratidis Looks like your change is not compatible for Py 2.6/2.7 - mind making your change backwards compatible?

@KMouratidis actually the new tests are using old-style classes, so you could either change them to use new-style classes or change pysize to support old-style classes. That will get your tests past line 16, then you might have to re-adjust the expected sizes.
Here are more details on __mro__:

https://stackoverflow.com/questions/2010692/what-does-mro-do
https://stackoverflow.com/questions/54867/what-is-the-difference-between-old-style-and-new-style-classes-in-python

I don't get why old-style classes were used, or how to fix that, and since I have zero experience with Python 2 I don't see how I should implement it. Frankly, I don't even think backwards compatibility to 2.x is worth the trouble :/

@KMouratidis you could change your slot classes to inherit from object. Once you do that, the tests will fail due to sizes not being what is expected, if you could help with that at least we'll be able to merge this in.

Alright @KMouratidis added a small patch to get this to work. Just double check my last commit is in line with what you intended.

@bosswissam Yes, it's good. Thanks for correcting this for me, and, again, sorry for the trouble.


Remove Package-lock.json file

Purpose
Package-lock.json will cause security issue. Remove it.

@jongio

Can you explain why?  The package-lock doesn't cause the security issue - it is likely a package that is referenced in it.  It is a best practice to include package-lock in source.


krill: 0.9.6 -> 0.10.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/NLnetLabs/krill/releases.
meta.description for krill is: "RPKI Certificate Authority and Publication Server written in Rust"
meta.homepage for krill is: "https://github.com/NLnetLabs/krill"
meta.changelog for krill is: "https://github.com/NLnetLabs/krill/blob/v0.10.0/Changelog.md"
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.10.0 with grep in /nix/store/2s5qvb82vfh3q98mvwjcgi4c5mv25mjk-krill-0.10.0
found 0.10.0 in filename of file in /nix/store/2s5qvb82vfh3q98mvwjcgi4c5mv25mjk-krill-0.10.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
krill

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2s5qvb82vfh3q98mvwjcgi4c5mv25mjk-krill-0.10.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A krill https://github.com/r-ryantm/nixpkgs/archive/ba473eeda413639d83be3b28c424834043c1fb40.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2s5qvb82vfh3q98mvwjcgi4c5mv25mjk-krill-0.10.0
ls -la /nix/store/2s5qvb82vfh3q98mvwjcgi4c5mv25mjk-krill-0.10.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

krill

Maintainer pings
cc @steamwalker for testing.

Result of nixpkgs-review pr 190020 run on x86_64-linux 1

1 package built:

krill


touch: added unit test for test -m -t fail

If touch -m -t <date/time>  tries to set the file's modification time to an invalid date (because of a switch to DST), touch has to fail.
This test doesn't assume which locale it is being run in. It tries to find the time of DST switch in one year and if it does, it uses that time for a touch command and verifies that touch fails.

thanks for test only PR :) they are the best!


Error in console when user clicks on Edit as YAML while creating a CIS Scan CR

On 2.5-head - commit id: baf4867

Using cis v2 app v- 1.0.3 and  security-scan RC v0.2.2-rc3
Deploy CIS v2
Click on Create scan
Click on "Edit as YAML"
Error seen in ocnsole:

vue-router.esm.js:1958 Uncaught (in promise) Error: Navigation cancelled from "/c/c-xr5k5/cis/cis.cattle.io.clusterscan/create" to "/c/c-xr5k5/cis/cis.cattle.io.clusterscan/create?as=yaml" with a new navigation.
    at $t (vue-router.esm.js:1958)
    at jt (vue-router.esm.js:1940)
    at x (vue-router.esm.js:2249)
    at r (vue-router.esm.js:1898)
    at vue-router.esm.js:1899
    at vue-router.esm.js:2274
    at $n.<anonymous> (client.js:125)
    at d (runtime.js:45)
    at Generator._invoke (runtime.js:274)
    at Generator.O.forEach.t.<computed> [as next] (runtime.js:97)

This has no functionality impact.


Where did the wiki documentation go?

https://github.com/balderdashy/skipper-s3#usage links to https://github.com/balderdashy/skipper#uploading-files-to-s3 but the Wiki appears to have been disabled. Did the documentation move to somewhere else?

See https://sailsjs.com/documentation/concepts/file-uploads and https://sailsjs.com/documentation/concepts/file-uploads/uploading-to-s-3


Macosx interactive zoom rectangle not updating

When using the zoom rectangle with the macosx backend, the area highlighted with zoom is not updated immediately. First, it renders itself into the zoomed rectangle, rather than updating the axes. If I then go and adjust the figure window size, that triggers an update of the zoomed region to the full axes. Additionally, in the GUI window it will be showing incorrectly, but if I save the image, the proper image with the zoom is saved. This is presumably because some update/resize_event is triggered on save.
The QT GUI window works as expected. I looked at the code in the QT backend and there is a repaint on every update it looks like. I'm wondering if that logic needs to be propagated into the macosx backend, or if there is an even simpler way to trigger the resize that you can think of. I'm happy to test any ideas out locally if you need as well.

Comparing mplcairo's macos.py and mpl's backend_macosx.py, the first thing that appears may be that at the end of _draw(), just before returning self, one may need to insert a if self.figure.stale: self.figure.draw(renderer)?  Right now this is done in a slighly convoluted way (by setting the last_renderer to None and then using ensure_drawn=True), but perhaps there's a race condition somehow?
Does that only appear with zooming?  What about panning?  What if you try to trigger draws manually (e.g. using any of the "interactivity" examples which trigger draws when some button is pressed)?
(I don't have a mac to test.)

Good suggestions! I put that .figure.stale check in several places and it didn't help at all. I don't think it is actually in the draw() method itself, but rather triggering that update. Panning doesn't work at all actually. Then when I went and tried out the Slider Demo, the canvas is never updated on any of the interactive-ness. So, it is like the events just aren't triggering a redraw, but the events are being registered. i.e. in that demo if I click around a bunch and seemingly change parameters the figure never updates. But, if I then go and drag the window to a different frame size all of those previous events get triggered and update the draw properly. I'll try and look into it some more later today, but if any of that triggers an aha, feel free to let me know and I'll test it out for you on a mac.

To be honest with the Matplotlib GSOC start and other real life work I may not have so much time to investigate this in the coming days, but I'll keep it on my TODO and revisit it later if you don't find the fix :-)

0.3 was released on PyPI.

Excellent! 👍 I just installed from the PyPI wheel and everything looks good and interactive figures work for me.


Update CMSIS third party download

CMSIS is updated from CMSIS_5 to CMSIS_6.
BUG=It is recommended to upgrade from CMSIS_5 to CMSIS_6

@Mergifyio refresh

@mansnils gotta wait for @suleshahid to get this merged

@Mergifyio refresh

@Mergifyio refresh

Found some error message from mergify from previous CI, this may the culprit to why mergify isn't merging this anymore:

The configuration uses the deprecated commit_message_template attribute of the queue action in one or more pull_request_rules. It must now be used under the queue_rules configuration.
A brownout is planned on September 16th, 2024.
This option will be removed on October 21st, 2024.
For more information: https://docs.mergify.com/configuration/file-format/#queue-rules

https://github.com/Mergifyio refresh


Upgrade vale to 3.4.1 with required supporting changes

vale needs to be upgraded to support ansys/actions v6. In turn, a few configuration changes related to vale are needed.
See actions migration guide for details.
Note that this upgrade can be applied while we are still on v5 of ansys/actions, so doing this now makes the actions upgrade PR more straightforward.

Since the changes have simply followed the steps in the migration guide and the build has succeeded, I am bypassing the review requirement in order to merge ASAP and then complete the actions v5 -> v6 upgrade, which is waiting for this.


ignite-2734 Binary enum type deserialization from offheap

Fix for https://issues.apache.org/jira/browse/IGNITE-2734

Merged into master branch.


add commands to lilit for working with migrations and database

Describe the solution you'd like
first, simplicity
Describe alternatives you've considered
artisan
symfony

https://github.com/doctrine/migrations


Introduce lazy injection of internal services

Allows the declaration of service dependencies without initializing services until they are actually needed.
This can be desirable from the architectural point of view: the services required as dependencies may not be ready to be consumed at the injection time. It can also be used as a performance optimization to avoid the initialization of services that are not used in all scenarios.
Wrapping the dependency service type with a new LazyService<T> interface is all that is required to defer service initialization:
@Provides
protected MyService createMyService(
    LazyService<ExpensiveService> lazyService
) {
    // sometime later in the implementation
    lazyService.getInstance();
}

In Kotlin, leveraging the delegated properties, it's possible to consumer the lazy service transparently:
class MyService(
    store: LazyService<ConfigurationCacheStateStore>
) {

    // the first call to the getter will initialize the backing service
    val store: ConfigurationCacheStateStore by store

}

@bot-gradle test on linux without pts

I've triggered the following builds with parameters: -DenablePredictiveTestSelection=false for you. Click here to see all build failures.

Pull Request Feedback (Trigger)(Linux) (Check)

@bot-gradle test without pts

I've triggered the following builds with parameters: -DenablePredictiveTestSelection=false for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)

I'm wondering what problem are we fixing here exactly. Expensive services being injected but then going unused sounds like a code smell to me. Are we paving over some architectural problems perhaps with this?

the services required as dependencies may not be ready to be consumed at the injection time

This feels wrong. It sounds like we are paving over some problem with added complexity, instead of solving it. What is the problem we cannot resolve with the existing tools?
There are multiple issues with the introduction of lazy services, but the biggest one is that it introduces the concept of an "unready" service. In the current codebase there is a more-or-less clear requirement that dependencies of a service should be initialized before being injected; this makes reasoning about the state of services relatively straightforward. If we allow injecting non-ready services, that adds a ton of complexity and "flimsiness" (for want of a better word) to the process of service initialization, making our service infrastructure significantly harder to comprehend.
We should be going in the opposite direction, and making things more explicit and simple to reason about. Let's fight the urge for a quick-and-dirty solution, dig deeper and understand better what the problem is, and then fix it.