DBSCAN on Windows with Anaconda Python - no permission to create temporary file

I have the following code to run, but HDF5 tells me in the error back trace that i have no permission to create the temporary file.
The code I run is a script to run DBSCAN_multiplex.py:
import numpy as np
import DBSCAN_multiplex as DB
print("hey ;-)")
data = np.random.randn(15000, 7)
N_iterations = 50
N_sub = 9 * data.shape[0] / 10
subsamples_matrix = np.zeros((N_iterations, N_sub), dtype = int)
for i in xrange(N_iterations): subsamples_matrix[i] = np.random.choice(data.shape[0], N_sub, replace = False)
eps, labels_matrix = DB.DBSCAN(data, minPts = 3, subsamples_matrix = subsamples_matrix, verbose = True)

The error message in PyCharm is:
C:\Anaconda2\python.exe E:/Dropbox/DATA/research/GhostTowns/WB/untitled/dbscan.py
hey ;-)
INFO: DBSCAN_multiplex @ load:
starting the determination of an appropriate value of 'eps' for this data-set and for the other parameter of the DBSCAN algorithm set to 3.
This might take a while.

INFO: DBSCAN_multiplex @ load:
done with evaluating parameter 'eps' from the data-set provided. This took 1.737 seconds. Value of epsilon: 0.921.

INFO: DBSCAN_multiplex @ load:
identifying the neighbors within an hypersphere of radius 0.921 around each sample, while at the same time evaluating the number of epsilon-neighbors for each sample.
This might take a fair amount of time.
Traceback (most recent call last):
  File "E:/Dropbox/DATA/research/GhostTowns/WB/untitled/dbscan.py", line 9, in <module>
    eps, labels_matrix = DB.DBSCAN(data, minPts = 3, subsamples_matrix = subsamples_matrix, verbose = True)
  File "C:\Anaconda2\lib\site-packages\DBSCAN_multiplex.py", line 656, in DBSCAN
    eps = load(f.name, data, minPts, eps, quantile, subsamples_matrix, samples_weights, metric, p, verbose)
  File "C:\Anaconda2\lib\site-packages\DBSCAN_multiplex.py", line 354, in load
    fileh = tables.open_file(hdf5_file_name, mode = 'r+')
  File "C:\Anaconda2\lib\site-packages\tables\file.py", line 318, in open_file
    return File(filename, mode, title, root_uep, filters, **kwargs)
  File "C:\Anaconda2\lib\site-packages\tables\file.py", line 784, in __init__
    self._g_new(filename, mode, **params)
  File "tables\hdf5extension.pyx", line 488, in tables.hdf5extension.File._g_new (tables\hdf5extension.c:5458)
tables.exceptions.HDF5ExtError: HDF5 error back trace

  File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5F.c", line 604, in H5Fopen
    unable to open file
  File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5Fint.c", line 990, in H5F_open
    unable to open file: time = Mon Dec 07 18:12:12 2015
, name = 'F:\temp\tmpthbz3d.h5', tent_flags = 1
  File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5FD.c", line 993, in H5FD_open
    open failed
  File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5FDsec2.c", line 343, in H5FD_sec2_open
    unable to open file: name = 'F:\temp\tmpthbz3d.h5', errno = 13, error message = 'Permission denied', flags = 1, o_flags = 2

End of HDF5 error back trace

Unable to open/create file 'F:\temp\tmpthbz3d.h5'

Process finished with exit code 1

What it boils down to is the last line which says that permissions are not set. However, I have allowed full read and write permissions for the folder and I tried to run python with administrator rights. I also guess, that the issue is somehow connected to HDF5, or HDF5 is trying to create this temporary file but fails. At this point I am clueless on how to solve this issue and I would be happy about any input.
This question might be connected to http://stackoverflow.com/questions/23212435/permission-denied-to-write-to-my-temporary-file but since the mode is set to 'w' I had no luck with it.
Thanks

Thank you for reporting this issue.
It seems that on Windows the name of a temporary file cannot be used to access that file a second time while the file is still open.
In DBSCN_multiplex, I believe this explains the error you get:
On line 652, the file is created and left open until the end of the block of context management starting at "with". But then, within the call to procedure 'load', an attempt is made on line 354 to read this file.
I do not have access to a machine running on Windows. I therefore intend to remove support of this module for this particular type of operating system. However, it should still be possible for you to run DBSCN_multiplex by creating any file and calling 'load' and 'shoot' with the name of this file as an argument.
Please let me know if this solves the problem you've encountered.
Kind regards,
Gregory

On Dec 7, 2015, at 5:30 AM, Michael Jendryke<EMAIL_ADDRESS>wrote:
I have the following code to run, but HDF5 tells me in the error back trace that i have no permission to create the temporary file.
The code I run is a script to run DBSCAN_multiplex.py:
import numpy as np
import DBSCAN_multiplex as DB
print("hey ;-)")
data = np.random.randn(15000, 7)
N_iterations = 50
N_sub = 9 * data.shape[0] / 10
subsamples_matrix = np.zeros((N_iterations, N_sub), dtype = int)
for i in xrange(N_iterations): subsamples_matrix[i] = np.random.choice(data.shape[0], N_sub, replace = False)
eps, labels_matrix = DB.DBSCAN(data, minPts = 3, subsamples_matrix = subsamples_matrix, verbose = True)
The error message in PyCharm is:
C:\Anaconda2\python.exe E:/Dropbox/DATA/research/GhostTowns/WB/untitled/dbscan.py
hey ;-)
INFO: DBSCAN_multiplex @ load:
starting the determination of an appropriate value of 'eps' for this data-set and for the other parameter of the DBSCAN algorithm set to 3.
This might take a while.
INFO: DBSCAN_multiplex @ load:
done with evaluating parameter 'eps' from the data-set provided. This took 1.737 seconds. Value of epsilon: 0.921.
INFO: DBSCAN_multiplex @ load:
identifying the neighbors within an hypersphere of radius 0.921 around each sample, while at the same time evaluating the number of epsilon-neighbors for each sample.
This might take a fair amount of time.
Traceback (most recent call last):
File "E:/Dropbox/DATA/research/GhostTowns/WB/untitled/dbscan.py", line 9, in
eps, labels_matrix = DB.DBSCAN(data, minPts = 3, subsamples_matrix = subsamples_matrix, verbose = True)
File "C:\Anaconda2\lib\site-packages\DBSCAN_multiplex.py", line 656, in DBSCAN
eps = load(f.name, data, minPts, eps, quantile, subsamples_matrix, samples_weights, metric, p, verbose)
File "C:\Anaconda2\lib\site-packages\DBSCAN_multiplex.py", line 354, in load
fileh = tables.open_file(hdf5_file_name, mode = 'r+')
File "C:\Anaconda2\lib\site-packages\tables\file.py", line 318, in open_file
return File(filename, mode, title, root_uep, filters, **kwargs)
File "C:\Anaconda2\lib\site-packages\tables\file.py", line 784, in init
self._g_new(filename, mode, **params)
File "tables\hdf5extension.pyx", line 488, in tables.hdf5extension.File._g_new (tables\hdf5extension.c:5458)
tables.exceptions.HDF5ExtError: HDF5 error back trace
File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5F.c", line 604, in H5Fopen
unable to open file
File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5Fint.c", line 990, in H5F_open
unable to open file: time = Mon Dec 07 18:12:12 2015
, name = 'F:\temp\tmpthbz3d.h5', tent_flags = 1
File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5FD.c", line 993, in H5FD_open
open failed
File "C:\Python27\conda-bld\work\hdf5-1.8.15-patch1\src\H5FDsec2.c", line 343, in H5FD_sec2_open
unable to open file: name = 'F:\temp\tmpthbz3d.h5', errno = 13, error message = 'Permission denied', flags = 1, o_flags = 2
End of HDF5 error back trace
Unable to open/create file 'F:\temp\tmpthbz3d.h5'
Process finished with exit code 1
What it boils down to is the last line which says that permissions are not set. However, I have allowed full read and write permissions for the folder and I tried to run python with administrator rights. I also guess, that the issue is somehow connected to HDF5, or HDF5 is trying to create this temporary file but fails. At this point I am clueless on how to solve this issue and I would be happy about any input.
This question might be connected to http://stackoverflow.com/questions/23212435/permission-denied-to-write-to-my-temporary-file but since the mode is set to 'w' I had no luck with it.
Thanks
—
Reply to this email directly or view it on GitHub.

Thanks for your answer. Unfortunately the machine that we want to use to cluster over millions points  has windows 7 only. With your tips I got it to work, however it was not necessary to change load and shoot, I just modified the code section after NamedTemporaryFile to create the temporary file according the a fixed name.
I also saw that you use meminfo to get the free memory, I have given a permanent value there and do not call the memory() function anymore.

Indeed, NamedTemporaryFile appears only in the 'DBSCAN' procedure. The
'memory' function is another reason why support has henceforth been
removed for Windows platforms in 'DBSCAN_multiplex'.
Glad to learn however that everything else seems to be working as
expected on Windows 7, with the proviso of applying the expedients we've
just learned about thanks to you pointing out those issues.
All the best,
Gregory
On 12/8/15 1:03 AM, Michael Jendryke wrote:

Thanks for your answer. Unfortunately the machine that we want to use to cluster over millions points  has windows 7 only. With your tips I got it to work, however it was not necessary to change load and shoot, I just modified the code section after NamedTemporaryFile to create the temporary file according the a fixed name.
I also saw that you use meminfo to get the free memory, I have given a permanent value there and do not call the memory() function anymore.

Reply to this email directly or view it on GitHub:
https://github.com/GGiecold/DBSCAN_multiplex/issues/1#issuecomment-162778933


Error writing genesis block: failed to initialize ChildValidatorSet contract. Reason: execution was reverted

[ Subject of the issue ]
Description
Describe your issue in as much detail as possible here.
When I try to start polygon-edge 0.8.1 for a first time I got Error writing genesis block: failed to initialize ChildValidatorSet contract. Reason: execution was reverted error but I do not have this error with version 0.8.0
Your environment

OS and version. Ubuntu 22.04
The version of the Polygon Edge.    0.8.1
(Confirm the version of your Polygon edge client by running the following command: polygon-edge version --grpc-address GRPC_ADDRESS)
The branch that causes this issue.
Locally or Cloud hosted (which provider).
Please confirm if the validators are running under containerized environment (K8s, Docker, etc.).

Steps to reproduce

Tell us how to reproduce this issue.
Where the issue is, if you know.
Which commands triggered the issue, if any.
Provide us with the content of your genesis file.
Provide us with commands that you used to start your validators.
Provide us with the peer list of each of your validators by running the following command: polygon-edge peers list --grpc-address GRPC_ADDRESS.
Is the chain producing blocks and serving customers atm?

Expected behavior

Tell us what should happen.
Tell us what happened instead.

Logs
Provide us with debug logs from all of your validators by setting logging to debug output with: server --log-level debug
Proposed solution
If you have an idea on how to fix this issue, please write it down here, so we can begin discussing it

Hi i have this same issue when i change the chainId from the mainfest.json and the genesis.json

I am also facing this issue while moving from poa to polybft. Getting same error
{"@level":"info","@message":"Data dir","@module":"polygon.server","@timestamp":"2023-04-26T08:08:31.648669Z","path":"/data/edge-new"}
{"@level":"info","@message":"Initial state root checked and correct","@module":"polygon","@timestamp":"2023-04-26T08:08:32.319519Z"}
{"error":"Error writing genesis block: failed to initialize ChildValidatorSet contract. Reason: execution was reverted"}

As @PandasCoder it is crucial to provide the same chain-id value to polybft-secrets, manifest and genesis CLI commands.


Add Tribute to HarversteR from SpaceDock

This pull request was automatically generated by SpaceDock on behalf of k0spwn, to add Tribute to HarversteR to CKAN.
Mod details:
name = /mod/760/Tribute%20to%20HarversteR
author = k0spwn
abstract = A ( very very ) simple mod that rename the Drills into Drill-O-Matic Resource HarvesteR
license = MIT
Homepage =
description = I saw that there was a petition to rename the "'Drill-O-Matic' Mining Excavator" into "Drill-O-Matic Resource HarvesteR" so I made a simple modulemanager patch that does it ! ( Aslo for the small drill )
Please direct questions about this pull request to k0spwn.

Closing in favour of #4246


Error log printed when OIDCSessionIFrameServlet receives a request without a clientId

Since this is a client error it should be a warn log instead of an error log.

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Check table exists in current search path

This PR adds tests to PR #33 which will ultimately fix a bug where schemas are ignored when checking for the presence of a migrations table.
Note: the tests do fail when not using the patched code!  Hooray!
Resolves #92

We're heading close to the one year anniversary of this PR -- I wanted to check to see if it might be possible to merge in.  This bug currently means I can't run tests locally unless I manually destroy my public schema.


Update the Just http dependency to be compatible with the latest S4TF…

… builds.
Swift 5 has updated the location of a lot of code. As a result, the upcoming S4TF v0.4 toolchain will not work with the code as-written. This is the first of a series to update the notebooks to be compatible with the latest S4TF toolchains.

Thansk @saeta . Feel free to push directly BTW. No need for PRs unless there's something particularly in need of review.


[ChannelTabs] Request: Lock a tab so you can't navigate on it

Lock a tab so you can't navigate on it

agreed

bump

Yup. Either so that you can't navigate or that you open new tabs on navigating and navigating on them instead


How to Pass Back data from Embedded Section Controller to Parent Section Controller

New issue checklist

[x] I have reviewed the README and documentation
[x] I have searched existing issues and this is not a duplicate

I am using Embedded Section Controller for displaying a horizontal list as in Demo Project. I am able to get the selected object in Embedded Section Controller through func didSelectItem(at index: Int) but I want to pass back this selected object to Parent Section Controller. How can I achieve this?

Use a delegate pattern :) Have a look at the StoryboardLabelSectionController in the iOS examples app for a similar example of this. Essentially you pass the section controller to the delegate and then you can find the object by querying the adapter for the section index in the parent. In the examples app the delegate happens to be a view controller, but it'll be no different with a parent section controller. Hope that helps..

Thanks!


Add priority queue.

SPL has priority queues, but they lack a key piece of functionality: the ability to decrease the key of a queue element. A fair number of uses of priority queues depend on this. One example is Djisktra's algorithm. This class is an implementation of a pairing heap, which has performance almost as good as that of a Fibonacci heap, but is considerably simpler to implement.
This class has a few notable differences from the SPL implementations:

The queue exclusively accepts objects. The reason for this is that it uses SPLObjectStorage as a way to map inserted elements with their tree objects. An elegant method for relaxing this restriction would be a nice improvment.
It does not implement the Iterator interface. It can if there appears to be a need, but I struggle to see the reason for it. Therefore, I'm KISSing it until proven otherwise.
Arbitrary elements can be removed. With the pieces in place to reprioritize elements, it seemed an easy task to add what should be a useful ability.

One issue with this pull that I'm not thrilled with, but count as "good enough for now" is the test. It does its job, but is ugly and could use improvements from someone who's better at writing tests.

The queue exclusively accepts objects. The reason for this is that it uses SPLObjectStorage as a way to map inserted elements with their tree objects. An elegant method for relaxing this restriction would be a nice improvment.

This repository has Map and Set structures that could be used instead. Is there something about those that would also make them unsuitable?

After looking at the implementation a bit more I think I'd prefer it if there was a helper class instead of stdclass. Would you be opposed to that?

Re Map and Set: I don't believe there is anything unsuitable about Map. I use SplObjectStorage to map the bound element to its tree object and to test in constant time to see if the tree contains an element or not. I believe Map covers these uses. It currently uses SplObjectStorage because I implemented this and the other structure(s) that I'm sending as PRs first in my own library. I'm sending them as pulls into yours because it's better for everyone for us to coalesce around one good library, instead of having dozens of tiny, personal libraries.
Re using a helper class: Not at all. I went with stdClass because it was used entirely internally and is simple.

I appreciate the help. Right now I am mildly unhappy with the way Ardent is designed. It's designed around this core Collection interface that does things like map, filter, etc. In the average case data structures don't need to do anything to work with these operations, but in some cases they can specialize them. What happens in general is that most classes use some trait to implement the standard behavior for each method and this is what I am unhappy with.
Also, it only provides these algorithms on Collections; what about arrays or other iterators? I think I will be redesigning the library soon to have simpler data structures and provide stand-alone algorithms that work with arrays and iterators.

Also, I think the PriorityQueue should have an iterator. I can see a consumer using it as a stream of inputs – it doesn't really care that it is a priority queue. Does that make sense?

Not really. Can you elaborate on this? Why would you need to iterate over a queue other than implicitly by successive dequeue operations?
Note that the traversal order of elements in a priority queue isn't guaranteed except when using dequeue as priority queues are always implemented as heaps and heaps are only partially ordered. This is meant to be used like a regular queue. That is, items get enqueued as they are found and then dequeued from the front of the queue when the next element is to be processed. That a regular queue can be iterated over in order is a happy side-effect of the simpler way that they're represented, rather than a definitional part of a queue.

Incidentally, I would love for object to be a hintable type. It would preclude some of the repetitive checks for is_object within the class.

As I understand it you only care about object because SplObjectStorage only uses objects, right? So if you use a map provided by this library that restriction no longer applies. You would rather be able to accept any type, right?

Yes. And I looked at your implementation of hash a couple of hours back. I like it a lot. Didn't realize that spl_object_hash existed until then. Probably the simplest thing then would be to alter it to run the incoming value through that function and then use that as the key to an associative array. Map would probably also work, but this keeps things simpler and keeps down the interdependencies between components.

Ah, I noticed that you have things throw an exception if the user attempts to access a value and the structure is empty. The way that I've seen things like this done in the past and in the literature is for the structure to instead return null, which means that the user can do something like this:
while ($element = $queue->dequeue()) {
    // Do things, possibly adding new items onto the end of the queue.
}

I bring this up because this stucture should be in harmony with the others and I'm not convinced that having to either wrap things in a try/catch block or do more work to check the structure size before each element removal is desirable.

I find this latest find of yours to be quite humorous, because you know what the way to avoid the exception is? Use the iterator! :D

Using an iterator means that you can rewind the iteration. It's part of the interface. Proper use of a stack or queue modifies the state of the data structure as you use it. You add and remove elements during the traversal. That's the point! Otherwise, you may as well just build an array, possibly sort it, and then traverse it as needed.

Not all iterators are guaranteed to be rewindable. Notably generators are not rewindable, and they are built in to the language.

Huh. I think I'm going to have to think on this for a time. I'm still not entirely comfortable with the idea, but that may just be because it involves a shift in thinking.

Yeah. What you say makes sense. I'll write up an iterator for it here this week and change the queue to throw the empty exception.

So, which interfaces do you think the iterator should implement? I'm having some trouble following everything that's in there.

Just do normal iterator methods and add an isEmpty() method.

That ought to do it.

So, is this going to get merged? It's been about six months. If not, I'm going to delete my fork as part of keeping my profile tidy.

Sorry about that - I'll review this again tomorrow.

I have two requests:

Can you squash all the commits into one?
Can you split that giant test into at least one more test case?

It looks like GitHub has a new feature to squash commits in a pull request. I just saw this when merging somebody else's pull on something else. No idea when this happened, but you should be able to squash when you merge it.
I know that it's ugly in how large it is, but the test is meant to assert that items come out in a particular order no matter when they were inserted. I don't know how I could meaningfully break it down into something smaller.

To trim down the test examine behaviors one at a time:

Given a few insertions of normal priority inserted in priority order test that they come out as expected.
Insert them out of priority and check they come out as expected.
Build on the above tests by removing items.


Package as actual toolbox

R2014a allows you to package the code as an actual MATLAB Toolbox.

Closed #9 via 4ab5bd7.


regreet: run through dbus

Change the regreet default command to run through dbus-run-session for faster startup time.

Please retarget master (please, read the CONTRIBUTING guide to avoid mass pinging everyone) and format your commit according to the conventions.
In the meantime, I will switch to draft this PR.

I do not think that this should be an issue. I have run greeters through the dbus command in my configuration.nix before, using the same command

There's another PR trying to fix the same issue. https://github.com/NixOS/nixpkgs/pull/223984

I didn't realize this PR existed, happy to defer. I think the change @RaitoBezarius is asking for is to make the path to dbus-run-session explicit which can be done with ${pkgs.dbus}/bin/dbus-run-session. That way this module doesn't have to rely on the PATH being set somewhere else as it's unclear where exactly that is.

This should be fixed now

LGTM, you'll have to make it into a single commit for someone with commit rights to merge based on the contributing guidelines.

Please remove the Merge branch ... commits. They are just confusing, and rebasing should always be preferred instead of merging.
To do so you can git rebase --interactive HEAD~5 and follow the instructions in that text file. For the merge commits, you can just prepend drop.

I had to create a new branch, cherry pick and rebase because when I tried to run the interactive rebase there were about 2000 commits... not sure what I did wrong but I think this looks OK, lmk if theres anything else I need to change

I had to create a new branch, cherry pick and rebase because when I tried to run the interactive rebase there were about 2000 commits... not sure what I did wrong but I think this looks OK, lmk if theres anything else I need to change

That happened because of the merge commits. They brought in a plethora of unrelated commits.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/904

This doesn't seem to work with dbus.implementation = "broker"

What is that? I've never heard of it.

dbus-broker is an alternative implementation of the D-Bus specification.
Adding --dbus-daemon=${pkgs.dbus}/bin/dbus-daemon as done in nix-community/home-manager@02c0546 works, but then it always uses the reference dbus implementation (and not dbus-broker, even when we specify dbus.implementation = "broker"), so I'm not sure it's the right solution.


[Bug]: Interpolator seems to get stuck on small time steps

PyBaMM Version
Latest
Python Version
3.10 +
Describe the bug
The car_current time series has gaps of 0.001 s between some steps. This seems to trip up the solver. Making these steps bigger fixes the issue as a work around but maybe some checks should be put in place on steps from time-series
Steps to Reproduce
import pybamm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.close("all")
car_current = pd.read_csv("C:\\Code\\PyBaMM\\pybamm\\input\\drive_cycles\\car_current.csv", header=[0, 1], on_bad_lines='skip', delimiter=",").to_numpy()
drive = np.array([
    [ 0.00000e+00,  1.00000e+00],
    [ 5.00000e+01,  1.00000e+00],
    [ 5.10000e+01, -5.00000e-01],
    [ 6.00000e+01, -5.00000e-01],
    [ 6.10000e+01,  5.00000e-01],
    [ 2.10000e+02,  5.00000e-01],
    [ 2.11000e+02,  1.00000e+00],
    [ 4.10000e+02,  1.00000e+00],
    [ 4.11000e+02,  2.00000e+00],
    [ 4.15000e+02,  2.00000e+00],
    [ 4.16000e+02,  1.25000e+00],
    [ 6.15000e+02,  1.25000e+00],
    [ 6.16000e+02, -5.00000e-01],
    [ 3.60000e+03, -5.00000e-01]]
   )

plt.figure()
plt.plot(car_current[:, 0], car_current[:, 1])
plt.plot(drive[:, 0], drive[:, 1])

step = pybamm.step.current(value=drive, termination="3 V", period="1s", duration="5 minutes")
experiment = pybamm.Experiment([step])
model = pybamm.lithium_ion.SPM()
param_vals = pybamm.ParameterValues("Chen2020")
sim = pybamm.Simulation(model=model, experiment=experiment, parameter_values=param_vals)
sim.solve(initial_soc=0.5)
sim.plot()

Relevant log output
No response

Is this just with the CasadiSolver? And does it help to set the max step size?     solver = pybamm.CasadiSolver(extra_options_setup={"max_step_size": dt}) (will slow it down).


feat(menuTriggerDirective): add beforeOpen event

This one should close #34.
I have added a beforeOpen event that gives the user the ability to prevent the menu from opening by using the $event.preventOpen  function.
I have modified the multiple example to disable the menu when item.name === 'orange'

neat solution thanks!

:tada: This PR is included in version 2.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


enforceExtension in resolve doesn't work!!!

Bug report

What is the current behavior?
webpack.config.js
const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  mode: 'development',

  entry: './src/index.js',

  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'a.bundle.js',
  },

  resolve: {
    enforceExtension: true,
  },

  plugins: [
    new CleanWebpackPlugin()
  ]
}

Directory tree
├── src
│   ├── a.js
│   └── index.js
└── webpack.config.js

index.js
import { a } from './a';

console.log(a)

a.js
export const a = 1

errors
Module not found: Error: Can't resolve './src/index.js' in '/Users/teishunrai/main/demo/webpack-enforceExtension-repo
If the current behavior is a bug, please provide the steps to reproduce.
this is test repo

What is the expected behavior?
import { a } from './a' doesn't work

Other relevant information:
webpack version:  4.42.0 / 5.0.0-beta.13 all failed
Node.js version: v12.0.0
Operating System: macOS 10.14.6
Additional tools: webpack-cli: 3.3.11/4.0.0-beta.8

You probably want:
  resolve: {
    extensions: [],
  },

Thanks for responding to my question
what I want to convey is if I config the resolve as below
resolve: {
    extensions: [],
 },

The result is right

but if I set enforceExtensions: true and follow the webpack document description

If true, it will not allow extension-less files. So by default require('./foo') works if ./foo has a .js extension, but with this enabled only require('./foo.js') will work.

The result should be the same as extensions: [], but I got

Webpack can't find entry Module rather Can't resolve './a'. the result is not right.
It should be an enhanced-resolve issue

The webpack documentation is incorrect here.
enhanced-resolve has the correct documentation here:
https://github.com/webpack/enhanced-resolve/#resolver-options

Enforce that a extension from extensions must be used

Now that I read it, it is also pretty hard to understand correctly.
enforceExtensions: false: During resolving any extension from extensions can optionally be added to the request.
enforceExtensions: true: During resolving any extension from extensions must be added to the request.

@sokra Thanks for your explanation.
However, if I set the enforceExtensions: true. The project build failed, even extension all added to the request. It can't find the entry file, If I comment out the enforceExtensions: true, the project build to succeed.
Error: Can't resolve '/Users/s/main/demo/webpack-external-demo/src/index.js' in '/Users/s/main/demo/webpack-external-demo'
I debug it locally, I found It is an enhanced-resolve  bug.

Error: Can't resolve '/Users/s/main/demo/webpack-external-demo/src/index.js' in '/Users/s/main/demo/webpack-external-demo'

That's working as expected. index.js already has an extension, so if you enforce adding one extension from extensions with the flag it fails to resolve.

Answer above, feel free to leave feedback

oh my god, explanation of official documents waste eight hours of me, Why isn't there a case to explain this


Added user profile edit button on dashboard

…lso fixed a minor bug which was due to location of partials was incorrectly defined at one place
What is the change?
Added a separate button to edit user profile on user dashboard and removed that button from navbar
Related issue?
close: #639
How was it tested?
Tested locally
Checklist:
Before you create this PR, confirm all the requirements listed below by checking the checkboxes [x]:

[x] Have you followed the Contribution Guidelines while contributing.
[x] Have you checked there aren't other open Pull Requests for the same update/change?
[] Did you lint your code before making the Pull Request?
[] Have you made corresponding changes to the documentation?
[x] Your submission doesn't break any existing feature.
[x] Have you tested the code before submission?

Screenshots or Video:
Add a screenshot or demo video if appropriate.

Can you add a mobile view and tablet view screenshot ?
Coz you are using float class and it's usually not a good practice to use float to align items.

Tablet view :

Mobile view:

Looks fine. Just one problem is there, username is moved slightly left side, due to which it does not remain centrally aligned

Let me know, if this looks OK

Let me know, if this looks fine

Looks fine, some padding would help differentiate button from the text or having a different color for the button..

Also there was a problem, like you can click anywhere on the row and it will be treated as click on link

Like in this screenshot, I have hovered over empty area on the same height as the name and edit btn

Let me know, if this looks fine

Looks fine, some padding would help differentiate the button better from the text or having a different color for the button..

Okay, making a commit fixing this issue and

Also there was a problem, like you can click anywhere on the row and it will be treated as click on link

Like in this screenshot, I have hovered over empty area on the same height as the name and edit btn

Okay making a commit fixing this issue and providing some padding on the button

Also there was a problem, like you can click anywhere on the row and it will be treated as click on link

Like in this screenshot, I have hovered over empty area on the same height as the name and edit btn

Probably some closing tag is missing, you can check.
I'll review the code in an hour..


DocC drops content have single-line directive

Description
When compiling this documentation comment:
/// Hello
///
/// Some content
///
/// @Comment { This is a comment }
///
/// Hello World

The text after the comment directive incorrectly gets dropped. This doesn't reproduce when writing the directive over multiple lines.
Checklist

[X] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue.

Expected Behavior
DocC should not drop content after single-line directives.
Actual behavior
No response
Steps To Reproduce
No response
Swift-DocC Version Information
Swift 5.7
Swift Compiler Version Information
No response

I transferred @ktoso's original reporting of this problem to swift-markdown in #64.

May be fixed by #66

Closing this as a duplicate of #64.


Roadmap

@deontologician, @Tryneus, @dalanmiller, @coffeemug, @danielmewes, @flipace
Horizon is currently unmaintained. I think its a shame and would like to get some insight into the status quo:

Who is/feels currently responsible for the project?
Who are candidates for future project ownership?
Is there a roadmap?
Before RethinkDB shut down there were major refactoring efforts being undertaken - are those going to be completed?

If none of the previous core contributors are available to continue development of the project, would you be willing to open it up to a new team of developers?

hi @lgleim, i'm not sure what's the current state of horizon itself and have not been contacted by any of the rethinkdb folks about it too (I have not been a RethinkDB employee)
I could spare some time to work on some issues and help out on the repository if I get some clear picture about where it should go / who's the future lead of this project. I know that there are a couple of other people interested in this, but I'm not sure if there is anyone who's currently taking care of the horizon repo.
If there's anything I could help with regarding horizon, you can directly mention me with @flipace in an issue and I'll let you know if I can help out. I don't follow the big pile of issues in here at the moment since there's loads of them and I can't edit them in any way to clean up (like, set labels or so - i guess that would already help a lot ;))
According to https://rethinkdb.com/blog/rethinkdb-joins-linux-foundation/ there should be news about this coming somewhen soon, however since transitioning all the different things (code, artwork, docs, legal stuff) behind RethinkDB takes time this might take longer than people would like. I know however that @mglukhovsky is passionate and really hard at work to make this as painless and pleasant as possible for everyone - which is not an easy task in any way.

I would love to join in aswell if i can be of any help i really think its a cool project, and worth keeping alive. Ping me and i will see what i can do

@flipace Thank you for keeping us in the loop. It makes all the difference to know that our messages regarding continuation are even being read. Much appreciated .. small feedback better than none.

Might want to ping @marshall007 and @mglukhov

The major refactoring is #865 .

pinging @marshall007 and @mglukhovsky. It would be nice to know if anything is on the way with regards to this project.
My personal thought is: this project started on Oct 25, 2015 and after almost one year it became something with big potential (I say this because of the real time functionality that sets this project and rethinkdb apart from other projects yet sadly the company closed). So I truly believe that a lot can be achieved  with this project in a short period of time and I hope that in the near future we will be able to pick up the rapid pace of development again.
@flipace lovli really stands for it's name.

This question was answered over a month ago.
Linux Foundation Now Governs RethinkDb

First of all, I just want to say I appreciate how passionate everyone is about this project and I feel much the same way. Unfortunately the project is in a pretty weird state right now. As most of you know, there are some key issues that need to be addressed before Horizon can really be considered a "production-ready" and productive development tool.
Most, if not all, of these issues were being addressed as part of the refactor to a plugin-based architecture in #865. The timing on the company shutting down was unfortunate because while that PR is nearly feature-complete it is lacking in a functional CLI, documentation, updated examples, and tests.

If none of the previous core contributors are available to continue development of the project, would you be willing to open it up to a new team of developers?

We’re ramping things back up with integrating with the Linux Foundation. I’m about to get married, but we’re going to have a meeting on April 5th for anyone interested in taking a contributor/leadership role for Horizon. We’ll have former team members as well as current leadership members on the hangout available to discuss the roadmap, issues, etc.
In the meantime, if any of you have the time and are willing to polish up and document #865 we will merge it. My thought is that if someone can take ownership of that PR and provide us with good docs we'll be in a great position for continued active development.

Polishing and documenting https://github.com/rethinkdb/horizon/pull/865 is not really an easy feat for anyone but the author of all of the changes. People are waiting for this. Can you, the original developers,  please just take a day and provide some reasonable documentation. I'm happy to commit to the project and I think there are quite a few others.
You are blocking all progress by saying nobody should continue working on v2 but not making it possible to work on the https://github.com/Tryneus/horizon/tree/grey_plugins branch.
Seriously, take the one day to get documentation to a level where it is possible to work on the branch because you cannot decently expect anyone to put in weeks of following along the commit history to reverse engineer what you were trying to accomplish there.

I'm game to contribute!


Poor performance when reproducing on train dataset

Hi, I didn't change anything, just ran 'CUDA_VISIBLE_DEVICES=0 python tools/plain_train_net.py --batch_size 8 --config runs/monocd.yaml --output output/exp', but I got a poor performance:

Could you give some suggestions about the training parameters?

@Fan123456-c I think there are a few possible reasons:

Influence caused by different versions of pytorch and cuda.
due to the small amount of KITTI data, the detection result usually fluctuates , so it needs to be repeated several times to get a satisfactory one, similar situation also occurs on MonoDETR and MonoFLEX.
Now the training of MonoCD is not stable enough. Increasing bs may help to mitigate this problem.


Merge upstream 20240208

This new test TestSequencerFailover_SetupCluster is disabled with other Ecotone tests.  Please review.

Comparison is base (1be5af1) 39.59% compared to head (0442d9f) 42.80%.
Report is 50 commits behind head on develop.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #112      +/-   ##
===========================================
+ Coverage    39.59%   42.80%   +3.20%
===========================================
  Files           80       73       -7
  Lines         5225     4733     -492
  Branches       749      746       -3
===========================================
- Hits          2069     2026      -43
+ Misses        3035     2601     -434
+ Partials       121      106      -15

Flag
Coverage Δ

cannon-go-tests
82.20% <0.00%> (+18.71%)
:arrow_up:

chain-mon-tests
27.14% <ø> (ø)

common-ts-tests
26.72% <ø> (-0.03%)
:arrow_down:

contracts-ts-tests
12.25% <ø> (ø)

core-utils-tests
44.03% <ø> (ø)

sdk-next-tests
41.53% <ø> (+2.36%)
:arrow_up:

sdk-tests
41.53% <ø> (+2.36%)
:arrow_up:

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

Files
Coverage Δ

cannon/mipsevm/evm.go
93.44% <ø> (+2.67%)
:arrow_up:

cannon/mipsevm/instrumented.go
84.84% <0.00%> (-5.48%)
:arrow_down:

cannon/mipsevm/state.go
87.23% <0.00%> (-1.90%)
:arrow_down:

... and 17 files with indirect coverage changes

The local "make devnet-hardhat-up" is working but I'm getting an error when I try to run a plain "make" command:
      nx run @eth-optimism/sdk:build
      ><EMAIL_ADDRESS>build /home/enya/v3-anchorage/packages/sdk
       > tsc -p tsconfig.json

       src/utils/contracts.ts(17,32): error TS2307: Cannot find module<EMAIL_ADDRESS>or its corresponding type declarations.
        ELIFECYCLE  Command failed with exit code 2.

I can't reproduce it. @jyellick Could you please confirm this?

The local "make devnet-hardhat-up" is working but I'm getting an error when I try to run a plain "make" command:
      nx run @eth-optimism/sdk:build
      ><EMAIL_ADDRESS>build /home/enya/v3-anchorage/packages/sdk
       > tsc -p tsconfig.json

       src/utils/contracts.ts(17,32): error TS2307: Cannot find module<EMAIL_ADDRESS>or its corresponding type declarations.
        ELIFECYCLE  Command failed with exit code 2.

I can't reproduce it. @jyellick Could you please confirm this?

The plain make works on my machine.
I have a separate issue running the make devnet-allocs where a crash occurs writing the JSON in the last step, but that does not occur when executed inside the ci-builder container image, so I've been using that as a workaround for now.

The local "make devnet-hardhat-up" is working but I'm getting an error when I try to run a plain "make" command:
      nx run @eth-optimism/sdk:build
      ><EMAIL_ADDRESS>build /home/enya/v3-anchorage/packages/sdk
       > tsc -p tsconfig.json

       src/utils/contracts.ts(17,32): error TS2307: Cannot find module<EMAIL_ADDRESS>or its corresponding type declarations.
        ELIFECYCLE  Command failed with exit code 2.

I can't reproduce it. @jyellick Could you please confirm this?

The plain make works on my machine.
I have a separate issue running the make devnet-allocs where a crash occurs writing the JSON in the last step, but that does not occur when executed inside the ci-builder container image, so I've been using that as a workaround for now.

Could you please verify all dependency versions? The old foundry doesn't work.
{
  "abigen": "v1.10.25",
  "foundry": "a5efe4f8f425e2f6fb35b0e298f0f46acce11dad",
  "geth": "v1.13.4",
  "nvm": "v20.9.0",
  "slither": "0.10.0",
  "kontrol": "0.1.127"
}


Wrap Miro Image JSON with collection to pass through pipeline

What is this PR trying to achieve?
Wrapping the Miro Image JSON to add collection id extracted from the filename.
Who is this change for?
💻
Have the following been considered/are they needed?

[ ] Run terraform apply.

Fixes: https://github.com/wellcometrust/platform/issues/941

Part of https://github.com/wellcometrust/platform/issues/882


feat(options): update the warmer option to optionally take stages

This resolves #29
I haven't been able to test much but the change seems tiny enough to be harmless and it doesn't introduce any breaking changes.

Tested locally and all good here 🙌👍
Thanks @juanjoDiaz !


Bumps ImageSharp to version 2.1.0

This is a successor to #166
The AOT issue that I had in my app gets fixed by ImageSharp 2.0, but a few steps later, I got another different AOT exception which gets resolved by using ImageSharp 2.1 only
I've also updated test project to .net 6 to make contributions even easier

Thanks @jksware and @msangtarash for the contribution! Great work!


Router and Redux question as per example/sample

I do not quite fully understand what is meant by this line in the context of this sample and react router v4 with redux.
is it that initialLocation.pathname would be window.location ?
Also what is the best way to dispatch an action on location change in react-router-beta.4

apologies wrong repo


Syncing with changes for up comming VulkanSceneGraph-1.0

I've now ticked off the feature complete milestone required for VulaknSceneGraph-1.0 and am now focused on shaking down the interfaces and codebase.  I'd like to discuss all the recent changes to the VSG and up coming refinement work to the ray tracing code as these will likely break VulkanPBRT.

Sure, do you have a list of your ideas/things you already implemented where i can comment on and inform myself about the major changes?
Unfortunately I was quite busy and thus not able to keep track of all changes to the vsg.
If you want to chat sometime that of course would also be fine with me. I think adopting VulkanPBRT should not be too hard. Especially as we might simply change the source of vsg a bit to fit our needs.
Cheers,
Josef

On Mon, 23 May 2022 at 18:09, Lachei @.***> wrote:

Sure, do you have a list of your ideas/things you already implemented
where i can comment on and inform myself about the major changes?

The changes around vsg::ShaderSet are probably the ones that overlap most
with modifications that were made locally in your version of the VSG.  I am
away from my dev system right now, but tomorrow I'll track down the
specific classes on the VulkanPBRT side and the vsg::ShaderSet side.
I've just started a review of the existing Ray Tracing code in the VSG.
I'd like to modernize it a bit so it's most consistent with the rest of the
VSG, and also look at getting it compile with older versions of VulaknSDK
before the Khronos extensions were introduced.  Android NDK doesn't support
a modern enough version to include these extensions.
If you have improvements to the Ray Tracing classes then I would like to be
able to roll those in as well so for 1.0 you'll be able to use the VSG 1.0
as is rather than need local mods.
Message ID: @.***>

@Lachei, my plan for today is focus on the VSG's Khronos Ray Tracing with a goal of getting the VSG to compile against VulkanSDK versions older than 1.2.162 which added the Khronos Ray Tracing functions.  Android's latest NDK only supports 1.2.158 so I'll use this as a base and see where I get to.
It'll be useful to look the changes you've made to the VSG's Ray Tracing classes in VulkanPBRT so if there are particular commits that would be a good starting place then this would be helpful.
The other area of interest is the ShaderSet work I did on the VSG as this overlaps with some of the SPIR-V reflection functionality that you previous implemented.  It not a 1:1 mapping in any way so it's not a drop in replacement but a while higher level shader composition scheme that has a small part that will be of interest to you.  The key header is ShaderSet.h.
The part that you may be able to adopt, rather have your own reflection code is the vsg::AttributeBinding, UniformBinding, PushConstantRange and DefinesArrayState struct used to describe how various features in the shaders map to data structures they need to be bound with at runtime.  These are simple structs:
struct VSG_DECLSPEC AttributeBinding
{
    std::string name;
    std::string define;
    uint32_t location = 0;
    VkFormat format = VK_FORMAT_UNDEFINED;
    ref_ptr<Data> data;

    int compare(const AttributeBinding& rhs) const;

    explicit operator bool() const noexcept { return !name.empty(); }
};

struct VSG_DECLSPEC UniformBinding
{
    std::string name;
    std::string define;
    uint32_t set = 0;
    uint32_t binding = 0;
    VkDescriptorType descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
    uint32_t descriptorCount = 0;
    VkShaderStageFlags stageFlags = 0;
    ref_ptr<Data> data;

    int compare(const UniformBinding& rhs) const;

    explicit operator bool() const noexcept { return !name.empty(); }
};

struct VSG_DECLSPEC PushConstantRange
{
    std::string name;
    std::string define;
    VkPushConstantRange range;

    int compare(const PushConstantRange& rhs) const;
};

struct VSG_DECLSPEC DefinesArrayState
{
    std::vector<std::string> defines;
    ref_ptr<ArrayState> arrayState;

    int compare(const DefinesArrayState& rhs) const;
};

My thought is that you may be able to just adopt these for the shader reflection, and the reading of SPIR-V bindings could be moved out of the VSG into a utility that reads a shader and generates the appropriate vsg::ShaderSet for it.

To get a better idea of the divergance of VulaknPBRT's VSG components from the main VSG I've checked out VulkanPBRT and tried a build.  I got a build error with vsgXchange due to a stray :, the below patch fixes this.  I see this error because the openexr dependency isn't installed on my system yet.
I think it would be useful to add VulkanPBRT openexr ReaderWriter to the main vsgXchange.  There isn't any copyright notice on the files though.  Could you add Copyright notices?
diff --git a/external/vsgXchange/src/openexr/openexr_fallback.cpp b/external/vsgXchange/src/openexr/openexr_fallback.cpp
index d3b9de2..71f5415 100644
--- a/external/vsgXchange/src/openexr/openexr_fallback.cpp
+++ b/external/vsgXchange/src/openexr/openexr_fallback.cpp
@@ -6,7 +6,7 @@ using namespace vsgXchange;
//
// openEXR ReaderWriter fallback
//
-openexr::openexr() :
+openexr::openexr()
{
}

I have had bas at adding The VulkanPBR/vsgXchange/openexr ReaderWriter to the main vsgXchange repo, placing it in an OpeEXR branch.
When I build I see lots of warnings which I will attempt to fix.  The use of dyanmic_cast<> is also a bit crude so converting the code to use a local ConstVisitor would be appropriate.  I'll do this later.  I have also added the openexr ReaderWriter to the list of ReaderWriter assigned to the vsgXhange::all ReaderWriter so that when available this will be supported by default.

When building openexr ReaderWriter as part of vsgXchange I'm seeing lots of warnings, I will have a bash at resolving these.
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In constructor ‘Array_IStream::Array_IStream(const uint8_t*, size_t, const char*)’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:74:52: warning: declaration of ‘size’ shadows a member of ‘Array_IStream’ [-Wshadow]
74 |         Array_IStream (const uint8_t* data, size_t size, const char fileName[]):
|                                             ~~~^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:93:16: note: shadowed declaration is here
93 |         size_t size;
|                ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:74:39: warning: declaration of ‘data’ shadows a member of ‘Array_IStream’ [-Wshadow]
74 |         Array_IStream (const uint8_t* data, size_t size, const char fileName[]):
|                        ~~~~~~~~~~~^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:92:24: note: shadowed declaration is here
92 |         const uint8_t* data;
|                        ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In constructor ‘Array_IStream::Array_IStream(const uint8_t*, size_t, const char*)’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:74:52: warning: declaration of ‘size’ shadows a member of ‘Array_IStream’ [-Wshadow]
74 |         Array_IStream (const uint8_t* data, size_t size, const char fileName[]):
|                                             ~~~^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:93:16: note: shadowed declaration is here
93 |         size_t size;
|                ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:74:39: warning: declaration of ‘data’ shadows a member of ‘Array_IStream’ [-Wshadow]
74 |         Array_IStream (const uint8_t* data, size_t size, const char fileName[]):
|                        ~~~^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:92:24: note: shadowed declaration is here
92 |         const uint8_t* data;
|                        ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In constructor ‘Array_IStream::Array_IStream(const uint8_t*, size_t, const char*)’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:74:52: warning: declaration of ‘size’ shadows a member of ‘Array_IStream’ [-Wshadow]
74 |         Array_IStream (const uint8_t* data, size_t size, const char fileName[]):
|                                             ~^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:93:16: note: shadowed declaration is here
93 |         size_t size;
|                ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:74:39: warning: declaration of ‘data’ shadows a member of ‘Array_IStream’ [-Wshadow]
74 |         Array_IStream (const uint8_t* data, size_t size, const char fileName[]):
|                        ~^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:92:24: note: shadowed declaration is here
92 |         const uint8_t* data;
|                        ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In member function ‘virtual void Array_IStream::seekg(Imath_2_5::Int64)’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:86:43: warning: unused parameter ‘pos’ [-Wunused-parameter]
86 |         virtual void    seekg (Imf::Int64 pos){
|                                ~^
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In member function ‘virtual vsg::ref_ptrvsg::Object vsgXchange::openexr::read(const vsg::Path&, vsg::ref_ptr) const’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:238:9: warning: unused variable ‘width’ [-Wunused-variable]
238 |     int width, height, channels;
|         ^
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:238:16: warning: unused variable ‘height’ [-Wunused-variable]
238 |     int width, height, channels;
|                ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:238:24: warning: unused variable ‘channels’ [-Wunused-variable]
238 |     int width, height, channels;
|                        ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In member function ‘virtual bool vsgXchange::openexr::write(const vsg::Object*, const vsg::Path&, vsg::ref_ptr) const’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:287:13: warning: unused variable ‘dataSize’ [-Wunused-variable]
287 |         int dataSize = obj->dataSize();
|             ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:288:13: warning: unused variable ‘space’ [-Wunused-variable]
288 |         int space = width * height * sizeof(float);
|             ^
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:289:13: warning: unused variable ‘size’ [-Wunused-variable]
289 |         int size = sizeof(*obj->data());
|             ^~
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:290:15: warning: unused variable ‘dat’ [-Wunused-variable]
290 |         float dat = obj->data()[0];
|               ^
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:265:108: warning: unused parameter ‘options’ [-Wunused-parameter]
265 | bool openexr::write(const vsg::Object* object, const vsg::Path& filename, vsg::ref_ptr options) const
|                                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In member function ‘virtual bool vsgXchange::openexr::write(const vsg::Object*, std::ostream&, vsg::ref_ptr) const’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:409:101: warning: unused parameter ‘options’ [-Wunused-parameter]
409 | bool openexr::write(const vsg::Object* object, std::ostream& fout, vsg::ref_ptr options) const
|                                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^

I'm reviewing the vsgXchange/src/openexr/openexr.cpp with a view of refactoring it make better use of the VSG and to unify the code a bit more is quite a bit of duplicated code for the write to filename and stream code paths.  An inconsistency I noticed was the method bool openexr::write(const vsg::Object* object, const vsg::Path& filename, vsg::ref_ptr) const has a line:
header.channels().insert("Y", Imf::Channel(Imf::HALF));
While the equivalent line the the bool openexr::write(const vsg::Object* object, std::ostream& fout, vsg::ref_ptr options) const method is:
  header.channels().insert("Z", Imf::Channel(Imf::HALF));

I can't see a reason for a difference, but also don't know what is the correct value - Y or Z?  Or neither?

I have refactored vsgXchange::openexr so it now uses an InitializeHeader and InitialFramebuffer visitors to handle the different vsg::Array2D types in a type safe way. Both the write to file, and write to ostream implementations can use these visitors avoid the code duplication that existed previously, this cuts the openexr.cpp code size by 111.  The changes are: vsgXchange/src/openexr/openexr.cpp.
In testing I found that writing RGBA files work fine, but writing RGB didn't succeed, I don't know if this means RGB isn't supported by OpenEXR so I'll look this up.  The write to ostream doesn't presently check the options extension hint, I'll review this and likely add a check.
The changes to the OpenEXR ReaderWriter also take into account the changes to vsg::Path, as it's now a class in it's own right rather than a std::string.  This does mean that it'll the changes will need a little tweak to work with older versions of the VSG.
Thanks for the clarification on Y vs Z.  I chose the Y as the default for the single channel.  We could easily pass in a preferred channel name via vsg::Options meta value that could be checked against to decide what to override with.

Your implementation looks good.

In testing I found that writing RGBA files work fine, but writing RGB didn't succeed, I don't know if this means RGB isn't supported by OpenEXR so I'll look this up

OpenEXR does not really care about the channel names and such. However currently only RGBA and single image loading is really tested. It might be that something on reading out an RGB image goes wrong. Exporting such a file is defenitly not possible, as only 4 compent arrays are supported currently...

I chose the Y as the default for the single channel. We could easily pass in a preferred channel name via vsg::Options meta value that could be checked against to decide what to override with.

Yes good idea. I also already thought about using the vsg::Options but didnt bother in the end as the current version suited my needs already... For the Y: According to the OpenEXR documentation (https://openexr.readthedocs.io/en/latest/ReadingAndWritingImageFiles.html#luminance-chroma-and-gray-scale-images), Y stands for luminance only so it is perfect for greyscale images (single channel images). Z was only used for extra informations in the tutorials...

Looking at the OpenEXR API it looks like 1 to 4 channel data should be possible, The current reading code is hardwired to single channel or RGBA   I can't see any reason 1,2,3,4 channel images can't be mapped to R, RG, RGB and RGBA respectively so I will have a bash at generalizing the code further.

I have refactored the vsgXchange::openexr::read(..) method to avoid code duplication and then added support for reading 2 and 3 channel images.
vsgXchange::openexr changes
When testing the OpnEXR test dataset I'm getting a new of unhandled exceptions being thrown.  Tomorrow I'll add try/catch around the code to avoid these bringing down the whole application.
I also need to add support for writing 2 and 3 channel images to complete vsgXchange::openexr, after that it should be good to merge with vsgXchange master.

Looking already quite good. If you want to use an even more general solution i would suggest reading out all channels and storing them in a map with the channel name as key. Then create a 1/2/3/4 component array according to the cardinality of the map and the type of the channels and then fill the xyzw compontents of the vsg data array in reverse order (so alphabetically decreasing). Like this you atomatically guarantee that for rgba images the r channel comes first, b channel second ..., for yca images you guarantee that the y channel comes first, then c...
Also then we would not be bound to the names of the channels at all.

I just added copyright information to the openexr header.
Another thing that might be a useful feature for some is our vsg implementation for VkQueryPools: https://github.com/Lachei/VulkanPBRT/blob/master/external/vsg/src/vsg/state/QueryPool.cpp and https://github.com/Lachei/VulkanPBRT/blob/master/external/vsg/include/vsg/state/QueryPool.h, https://github.com/Lachei/VulkanPBRT/blob/master/external/vsg/include/vsg/commands/ResetQueryPool.h, https://github.com/Lachei/VulkanPBRT/blob/master/external/vsg/include/vsg/commands, https://github.com/Lachei/VulkanPBRT/blob/master/external/vsg/src/vsg/commands/ResetQueryPool.cpp/WriteTimestamp.h, https://github.com/Lachei/VulkanPBRT/blob/master/external/vsg/src/vsg/commands/WriteTimestamp.cpp.
Usage of these is then:
            auto commands = vsg::Commands::create();
            query_pool = vsg::QueryPool::create();  // standard init has 1 timestamp place
            query_pool->queryCount = 2;
            auto reset_query = vsg::ResetQueryPool::create(query_pool);
            auto write1 = vsg::WriteTimestamp::create(query_pool, 0, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR);
            auto write2 = vsg::WriteTimestamp::create(query_pool, 1, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR);
            commands->addChild(reset_query);
            commands->addChild(write1);
            pbrt_pipeline->add_trace_rays_to_command_graph(commands, push_constants);
            commands->addChild(write2);
            // do stuff and submit commands
            std::vector<uint32_t> timestamps = query_pool->getResults();

They would provide accurate gpu timing which is especially useful when having multiple pipelines being executed one after another withut cpu sync.

On Thu, 26 May 2022 at 07:26, Lachei @.***> wrote:

Looking already quite good. If you want to use an even more general
solution i would suggest reading out all channels and storing them in a map
with the channel name as key. Then create a 1/2/3/4 component array
according to the cardinality of the map and the type of the channels and
then fill the xyzw compontents of the vsg data array in reverse order (so
alphabetically decreasing). Like this you atomatically guarantee that for
rgba images the r channel comes first, b channel second ..., for yca images
you guarantee that the y channel comes first, then c...
Also then we would not be bound to the names of the channels at all.

Interesting idea.
The vsg::Object meta value system uses an optional vsg::Auxilary object to
hold a map of string to vsg::Object, so you could encode the channels as
separate images that way.  However, it's not something that could be used
for rendering without repacking within the application.  I can see some app
might prefer this, but as a default I think package images would be better.
By default I packing the data into usable R, RG, RGB or RGBA would be my
preference.  Your suggestion of packing in reverse alphabetical order would
pack XYZ as BGR which would be a bit counterintuitive.  Having a set of
mappings of channel combos might make sense.
Do you have examples .exr files that have the various combinations of
channel names?
I do however lots of other work to get on with, I've already spent a day on
OpenEXR that hadn't planned for.

Message ID: @.***>

I also just realized the problem with invers alphabetical order for rgb...
In openEXR the main formats of images stored are given as:

WRITE_RGBA
red, green, blue, alpha

WRITE_YC
luminance, chroma

WRITE_YCA
luminance, chroma, alpha

WRITE_Y
luminance only

WRITE_YA
luminance, alpha

So supporting  these channel names might also be interesting for a general adoption.

but as a default I think package images would be better.

I would also say that this is definitely the way to go. I also had normal packing in mind and not separate images for different channels. My idea was to first read out the channels into a map with separate vectors for each channel, and then in an composing step interleave these channels. The idea for the inverted alphabetic order was just a first idea to automatically interleave the channels correctly. The returned image then would always be an interleaved image.
By doing this you are not bound to the channel names and would get automatically a correctly interleaved image.
I guess for correct ordering you would actually just need a custom comparison operator which does inverted alphabetical order except for "B".

One thing that might be interesting for the raytracing update is the additional support for AABB's (so not just triangles) and custom intersection shader which were implemented in a fork of VulkanPBRT: https://github.com/ohomburg/VulkanPBRT .
If i have time i will check all commits which are relevant to make this work and which also show how to use these things.

I have added try/catch blocks to vsgXchange::openexr which handles some
cases, but am also getting a segfault inside openexr with a couple of the
openexr tests image due toImf_2_5::ScanLineInputFile::readPixels not
checking that that the Iml::FrameBuffer isn't correctly matched to a
channel. I'll need to dig into why this is happening and address this.
I'll aim to wrap up the OpenEXR work this morning as I have lots of other
tasks to get on with.
For the Ray Tracing related modifications that you mention, I'll need to
return this these, hopefully next week as it looks like I won't have time
this week - the OpenEXR detour has gobbled up the time that I had available.

I have completed the work adding handling of invalid files and exceptions
so am ready with merge the openexr branch with vsgXchange master.  One open
issue I haven't tackled yet is a warning:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp: In member
function ‘virtual
void {anonymous}::Array_IStream::seekg(Imath_2_5::Int64)’:
/home/robert/Dev/vsgXchange/src/openexr/openexr.cpp:103:39: warning: unused
parameter ‘pos’ [-Wunused-parameter]
103 |         virtual void seekg(Imf::Int64 pos)
|                            ~~~~~~~~~^
Relating to the [line 103
https://github.com/vsg-dev/vsgXchange/blob/OpenEXR/src/openexr/openexr.cpp#L103
]:
   virtual void seekg(Imf::Int64 pos)
    {
        curPlace = 0;
    };

Is this code what is intended?  If so putting a /* pos */ will be safe way
to quieten the warning.

I've reviewed the code and feel that the below change is appropriate:
diff --git a/src/openexr/openexr.cpp b/src/openexr/openexr.cpp
index 5bb9fee..06fc5ca 100644
--- a/src/openexr/openexr.cpp
+++ b/src/openexr/openexr.cpp
@@ -102,7 +102,7 @@ namespace
};
virtual void seekg(Imf::Int64 pos)
{

       curPlace = 0;

       curPlace = pos;
  };
  virtual void clear(){};

Yes, your changes are appropriate.

On Thu, 26 May 2022 at 14:36, Lachei @.***> wrote:

Yes, your changes are appropriate.

That's a relief as I've already merged with vsgXchange master :-)
There are still improvements that could be made, some which we've discussed
here, but I'm happy enough with what has been merged as a base for future
work, it can be extended when the need arises.
I'm now working on other parts of the VSG, once I'm able to jump back to
reviewing the Ray Tracing functionality I'll look at your links and likely
have more questions.  Ideally I'd like us to get to the point where you
don't need to modify the VSG locally for your purposes.

Message ID: @.***>

Ideally I'd like us to get to the point where you
don't need to modify the VSG locally for your purposes.

That would be of course perfect. I still will keep vsg in my project currently via git subtree to be able to get the newest versions and still be able to quickly try out some new implementations.

For the Query pools i think copy pasting of the current files needed is the easiest. A list of all files that are needed are here: https://github.com/Lachei/VulkanPBRT/issues/39#issuecomment-1138214261.
Unfortunately i added the functionality while also doing a bunch of other updates, which caused the commit where this got added to be very large...
I will come back if anything jumps to my mind.

I've copied the files directly and created a branch from these changes, and assigned you as the original author:
https://github.com/vsg-dev/VulkanSceneGraph/tree/QueryPool

I've also done various house keeping changes to the files to keep them more consent with the rest of the VSG.
It's broken the Android build due to vkResetQueryPool not being defined so I'll add an extension definition and check for this.
I also need to decide what do about what should happen when a QueryPool is used within a multidevice setup.  It might be that we just need to document that timing info needs to be done above subgraphs that are shared between devices.
Do you have an example program that illustrates use of the vkQueryPool functionality?

I have created a vsgquerypool example that puts timing around the main RenderGraph:
https://github.com/vsg-dev/vsgExamples/blob/QueryPools/examples/commands/vsgquerypool/vsgquerypool.cpp

I still need to background reading on this feature, and fix the build on Android, but as it's end of working day here in Scotland so I'll return to finishing up tomorrow.

Thanks for the info.  Tomorrow I'll read up and do more tinkering.  I think getting the device properties in the main would be useful example as well.

I have replaced the QueryPool::getResults() with the methods that better map to the vkGetQueryPoolResults features:
Added more complete support for getting 32 and 64 bit results.
    VkResult getResults(std::vector<uint32_t>& results, uint32_t firstQuery  = 0, VkQueryResultFlags resultsFlags = VK_QUERY_RESULT_WAIT_BIT) const;
    VkResult getResults(std::vector<uint64_t>& results, uint32_t firstQuery  = 0, VkQueryResultFlags resultsFlags = VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_64_BIT) const;

The usage is now in form:
    std::vector<uint64_t> timestamps(2);
    if (query_pool->getResults(timestamps) == VK_SUCCESS)
    {
        auto delta = timestamps[1] - timestamps[0];
        std::cout<<"delta = "<<delta<<std::endl;
    }

I will now look up the device properties.

Touching base, VulkanSceneGraph-1.0 is very nearly ready, my plan is tag the 1.0.0 these at the end of October, possible this coming Sunday.
I noticed that there hasn't been recent commits of VulkanPBRT master.  Does this mean the project is mothballed for now?

Hello Robert,
currently the work on VulkanPBRT is on hold, yes.
I might come back to developing things further here, however I am currently working on other projects which demand my full attention and will take up a few months to finish. I will try to merge in all the changes (which look very promising), however am not sure when i will have time/will take the time to do so.
Best,
Josef


Remove ember-rfc176-data patch

The required Ember._memo mapping for { memo } from '@glimmer/tacking' has not yet been added to ember-rfc176-data. This is why we use patch-package to patch this in, just so we can get our feet off the ground. For a "stable" release, we need to remove this hackery and land the required change upstream.
These commits need to be reverted:

a94754369e38c19576bee8166609d0a5e3066540
e35b96414dd164b4aeeb4bf3747e5bb2fddf12f3
4ac2e1ff07fa01f2d5c0b1aaf717613bb023cd1a

I opened https://github.com/ember-cli/ember-rfc176-data/pull/322 to add the mapping.

Unfortunately it seems that (at least with yarn) the postinstall script is not (properly) invoked and the patch for ember-rfc-176-data included in this package is not applied in the host project. To be honest, this is probably for the better any way. 😂
I tried patching the package in index.js as well, like so:
function patchRFC176Data() {
  const mapping = require("ember-rfc176-data");
  const hasMemoMapping = Boolean(mapping.find(
    (m) => m.module === "@glimmer/tracking" && m.export === "memo"
  ));
  if (hasMemoMapping) return;
  mapping.push({
    global: "Ember._memo",
    module: "@glimmer/tracking",
    export: "memo",
    deprecated: false,
  });
}

However, this does not work, as ember-cli-babel spawns its workers in child processes, which have their own require.cache. 🙁

Seems like another option is to add an afterInstall blueprint in which we ask the user, whether they would like us to setup up the patch-package hack in their repo.
Another, possibly much cleaner option could be adding this export to ignore and then transpiling it ourselves.

Hmm, when installing this locally via yarn, it worked, without applying the patch I believe. (at least the import did not work, I used it directly from Ember._cached). However, now on our CI on Github Actions, it is failing on the install step yarn --frozen-lockfile with:
[5/5] Building fresh packages...
error /.../node_modules/ember-cached-decorator-polyfill: Command failed.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Exit code: 1
Command: patch-package
Arguments:
Directory: /.../node_modules/ember-cached-decorator-polyfill
Output:
patch-package 6.2.2
Applying patches...
Error: Patch file found for package ember-rfc176-data which is not present at node_modules/ember-rfc176-data

I did nothing but ember install this addon, and it is weird that it works locally with yarn but not on CI. But I guess it is somehow related to this issue here.

Yeah, it seems that patch-package is behaving weirdly. :/
I would like to find some hack to completely avoid it. The most probable solution would be disabling the transpilation of the @glimmer/tracking import, and then either transpiling it ourselves (to avoid issues with embroider's resolution system) or registering a faux @glimmer/tracking modules via require.define().
I can push and release a fix, that would at least disable the patch-package stuff when this package is installed as a dependency. Then you can patch yourself or use Ember._cached and CI should work again.

That would work for me, at least :) So if that is OK, then I'd be all for that!

I've removed patch-package and replaced it with some ember-cli-babel h4xx in #12.
It's released in v0.1.0-3. 🚀
For reference I also raised https://github.com/ember-cli/babel-plugin-ember-modules-api-polyfill/issues/133 to improve the underlying infrastructure for future polyfills.


Update rails.md

Sorry, the first version was bad.
Here is the fixed one
@BiNZGi

Sorry, the first version was bad.
Here is the fixed one
@BiNZGi

I have verified your changes on the website and everything is correct. Thank you for the support of the project.

I have verified your changes on the website and everything is correct. Thank you for the support of the project.

I have verified your changes on the website and everything is correct. Thank you for the support of the project.

I have verified your changes on the website and everything is correct. Thank you for the support of the project.


[FEATURE] Generate Newsletter

Describe how this feature will help us improve
Currently we need to scrape the git log manually for our regular newsletter. As discussed in the core team, we want to automate this process.
Is your proposal related to a problem?
No.
Describe the solution you'd considered
There should be a script that parses the git log between two tags and renders the commits grouped by category (features, fixes, refactorings, breaking changes, other) in a copy & paste-friendly format.
Additional context
None.

@aniamusial How would you like the following format? I think Markdown would serve us well because we could use it for GitHub directly.
With the script I'm about to finish you could generate this by running:
node scripts/create-gitlog @storefront-ui/vue@0.5.0<EMAIL_ADDRESS>
The last part (with the two dots ..) can be anything that git understands as a revision range. So the most common case would be two tags but it also understands things like:

"last 10 commits" -> node scripts/create-gitlog -10
"everything since last tag" -> node scripts/create-gitlog $(git describe --tags --abbrev=0 @^)..@
_"... in reversed order" -> ... --reverse
and so on.

💚 Storefront UI Newsletter Mar 21 2020 💚

✨ NEW FEATURES

(5f0065bb) feat(example): Thank you page (#742)
(e8ad2c96) feat: add SfProductCardHorizontal (#716)
(bd505235) feat(example): error page (#759)
(6df9f810) feat: add font-display: swap rule to google fonts (#771)
(da1a32ce) feat: add v-focus directive (#753)
(efb079ee) feat: pull request template update (#749)
(486a1599) feat: add quantity to cart icon in SfHeader (#734)
(c708062b) feat: add default aria-label to SfQuantitySelector (#735)
(cbb59c31) feat: add required slots to SfTabs (#736)
(9241efb5) feat: add hasCarousel prop for mobile SfGroupedProduct (#715)
(58d67f1d) feat: add stylelint for .scss in shared packages (#732)
(d362cf68) feat: add isMobile observer (#701)
(3584689f) feat: add SfBadge to SfProducCard (#693)

💥 BREAKING CHANGES

(15a6fcd5) BREAKING CHANGE: adjust css variable to default pattern (#744)
(a06d9aca) BREAKING CHANGE: replace SCSS variable to CSS variable (#673)

🐛 FIXES

(2c1059ff) fix: ssr in SfScrollable (#855)
(53322009) fix: ssr error in SfHeader(#854)
(3d1f1d58) fix: badge icon radius (#811)
(9f622edb) fix: title props name in SfSidebar (#810)
(8f2c01ae) fix: a11y for SfTab component (#787)
(8c5e8440) fix: missing hasCarousel prop in stories (#798)
(1dcb2ba3) fix: add transparent bcg to SfButton outline modifiers (#791)
(df1ad2f7) fix: too bright hover color on SfButton(#793)
(57b07712) fix: add openTab in SfTabs stories (#789)
(f0f84020) fix: add type to show-password button (#786)
(cc7e7903) fix: position of SfProductCard add to card button (#779)
(a89b96a8) fix: set initial slide in SfGallery (#760)
(0bc6ac0d) fix: small ssr bugs (#776)
(3601b27f) fix: docs for CSS custom properties (#775)
(b15eea45) fix: overlay transition opacity conflicting (#773)
(d21c8f7e) fix: add variable for z-index (#725)
(e39fb8ee) fix: docs build fails due to outdated links (#751)
(362fc233) fix: Add aria-label in SfCircleIcon stories (#727)
(b995ae01) fix: a lot imports of global CSS variables (#731)
(05b5ca6b) fix: double pictures is not adjusted to size (#683)
(8422bc05) fix: prevent glide mount for empty container (#694)
(9c2b9c4a) fix(ui): cheating lerna
(554c6d73) fix(ui): rever sfui css
(01b24d17) fix(ui): sfui css

♻ REFACTOR

(08fca6a1) refactor: remove sfui.scss file (#794)
(7f0475aa) refactor: SfModal and SfSidebar on mobile (#755)
(17aefa55) refactor: updated SfColor stories (#774)
(de923891) refactor: change is-active and is-disabled to modifiers (#770)
(46fb4f26) refactor: remove SfOptions component (#769)
(421ba48e) refactor: remove calc from SfChevron (#758)
(fc6f2f8e) refactor: adjust SfFooter to SfHeader and MegaMenu (#741)
(50f18938) refactor: chang logic for showing content in SfTabs (#738)
(7134e418) refactor: remove all unused --secondary modifiers (#691)
(d40be4bb) refactor: add isSticky props to SfHeader (#739)
(13382bd0) refactor: clean organisms stories (#707)
(c7a82ce6) refactor: replace camelCase slot names with kebab-case (#717)
(c5f6d536) refactor: remove usage of yarpm and require yarn (#730)
(d1fa6988) refactor: remove SfCounter component (#705)
(8cb79dc6) refactor: add label to SfBottomNavigation (#706)
(568f6e42) refactor: remove min from SfQuantitySelector (#720)

📝 DOCS

(25da463e) docs: reorder core team members
(1ec9a24d) docs: updated github labeling guide (#785)
(a9929a20) docs: update github guideliness (#784)
(7f90034c) docs: update installation guide (#778)
(c0eb91d9) docs: add Storefront UI gitflow (#756)
(18ef34fc) docs: addjust docs to CSS custom properties (#748)
(5728e2ee) docs: add Marta Radziszewska to core team (#762)
(0fb6fafb) docs: update contributing guide (#745)
(671fd685) docs: add colors palette and sizes to documentation (#609)

🔔 Other Noteworthy Goodies

(1a90e48b) chore: small improvements in examples (#796)
(b0294e11) chore: rename ReviewOrder to ConfirmOrder (#695)
(21b7e368) chore: remove unused nuxt package (#692)
(2d984f53) test(unit): fixing tests for component with provide/inject pattern (#662)
(397a1ced) test: add render test to missed components (#644)

@EduardDopler wow, what a great work you've done! I love the new markdown, I'll check the PR later in the day, but I can already say thath I'm IMPRESSED! :) Thank you!


boards: sam4cmp-db: Update nsh/defconfig

Summary

This commit removes SMP features from nsh/defconfig
because it's still unstable

Impact

None

Testing

None

https://github.com/apache/incubator-nuttx/pull/4049#issuecomment-873320945

The build fix here: https://github.com/apache/incubator-nuttx/pull/4051


added a 'both' option for format command backend

@ironcladlou
Fixes #84

Thanks! Can you also add a little more detail to the config comment and also update the readme to describe more precisely what "both" will do?

@ironcladlou Updated the doc

:+1: this would be awesome.
On a side note, this project is terrific. You should add the word "golang" to the description so that it's easier to find on https://packagecontrol.io/.

Thanks for the feedback. I'll see if I can make the project more discoverable with the description tweak you suggested.

@stevekuznetsov
I sanity checked this locally and while it works as advertised, I noticed some unseemly main UI thread blocking when using both or goimports (goimports is the culprit). I think the next thing that'll need done after this merge will be to

Refactor GotoolsFormat#run to deduplicate the tool execution stuff and,
Make the formatting operations asynchronous.

I'm going to go ahead and merge this to master but I'm going to try and address 1 and 2 before tagging a new release for package control.


OpenStack fix tenant <-> image membership

Fixing tenant <-> image membership taking in account if
image is public and members of the image.
Fixes BZ:
https://bugzilla.redhat.com/show_bug.cgi?id=1285463

@Ladas please rebase and push again


Upload file Viet Hung University of Industry

@khoafrancisco First stage of verification passed, official domain is viu.edu.vn as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@khoafrancisco Thank you for your patience while waiting for a review and processing your request. Pull request merged.

Thank you so much for taking the time to review and merge my pull request.


Unified api documentation generation

Modifying grape_doc gem to create documentation for multiple APIs.
Our APIs will need to use this version of the grape_doc gem.

This was intended to be PR'd in our fork, sorry for the confusion.

All good, @mjafshar, no worries :)

@AlexDenisov, I would like to contribute this to your project in the near future. If you are interested I can create another PR after we have reviewed it and you can review/comment. Cheers


[FLINK-13237][table-planner-blink] Add expression table api test to blink

What is the purpose of the change
Add expression table api test and fix bugs.
Verifying this change
ut
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

Hi @JingsongLi , can you rebase this pull request?

Thanks @JingsongLi , this looks good to me now.
However, there are cases failed on travis, could you have a look again?

@wuchong I ignored this cases and created JIRA: https://issues.apache.org/jira/browse/FLINK-13580
I think it can be supported in 1.10.

Thanks @JingsongLi .

Merging...


PSAT cli tool result less cookie than extension

Run test on single url and sitemap the result for total cookies and blocked cookies show massive different.
The result from cli tool.

And the extension for single url. ( CDP enabled)

Is there any reason that cli tool show much lower than extension?

Hello @Joeyindigital
Thanks for getting in touch!
The difference you’re seeing between the CLI and PSAT extension results might be due to things such as  the environment, duration, user Interaction as described on our wiki page.
Additionally, using a regular Chrome profile can cause issues because cookies remains such as orphaned cookies and unmapped cookies.
To avoid this, we recommend creating a separate Chrome profile specifically for using the PSAT Chrome extension. This keeps things clean and consistent.
For instructions on setting up an evaluation environment, Please check our wiki page


Fix build break - remove unused template method

https://github.com/Microsoft/ChakraCore/commit/c9eb5975e10050e6cf48d915187765ae8e91995b had removed 'ForEachOwnArrayIndexOfObject' from both header and cpp files.
#1982 have force brought the definition back to cpp file.
Removing the method definition back as the method was removed and no consumer on core and full projects + no definition on any header file

This looks good to me. This fixes the build issue introduced by pull request #1982. This is essentially a re-merge of pull of the major changes introduced by pull #1762.

Looks good to me

@kphillisjr  @agarwal-sandeep Thanks for the review


fix(prometheus): Avoid appending duplicate pods

Hi, I noticed an incorrect pod count that causes incorrect results. I fixed the issue in this PR by simply converting the pod list to a set.
Here's my results before and after the fix:
❯ yq '.scans | map(select(.object.name == "node-exporter")) | .[0].object.pods | map(select(.deleted == false)) | length' before.yml
27
❯ yq '.scans | map(select(.object.name == "node-exporter")) | .[0].object.pods | map(select(.deleted == false)) | length' after.yml
8
❯ kubectl -n monitoring get pods | grep node-exporter | wc -l
8

Without filtering out deleted pods:
❯ yq '.scans | map(select(.object.name == "node-exporter")) | .[0].object.pods | length' before.yml
153
❯ yq '.scans | map(select(.object.name == "node-exporter")) | .[0].object.pods | length' after.yml
42

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


include iOS/tvOS 12 as supported versions

I would like to use SwiftSubtitles as a dependency in a project that has iOS/tvOS 12 as minimum supported version in its target.
The aim of this PR is simply to change the version value in the SPM package manifest file.
I have already tested the compatibility of the source files when building for a target with v12 support.
The source files of SwiftSubtitles (including its dependencies DSFRegex and TinyCSV) compile gracefully when added as compilation sources to a target with minimum version 12.
I see that in this specific commit it was explicitly coded that the minimum supported version is set to 13. Was there a specific reason for this? If not then please consider changing this value to what the PR suggests.

Thank you!

Thank you for providing the library and the quick response!


Fix up typo and minor grammar

This change is

Coverage remained the same at 91.926% when pulling d3c86b88bac2ccb588b0c27dd0ea3dcb2587133f on shepmaster:patch-2 into e27a6ffbde87a35a367cd3c5b7369ef8173d0e7a on kbknapp:master.

Thanks! @homu r+


Only cleanup fs when necessary

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Yiran Wang seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Add testing for is_contract and is_caller_origin

@athei @agryaznov I've added an example contract to the ink-waterfall which will run as part of the CI ‒ thus demonstrating that is_contract and is_caller_origin work as intended. Do you think we can now stabilize those two methods in pallet-contracts?

CI fails due to https://github.com/paritytech/ci_cd/issues/343. It runs locally though.


Config should use slug names

The configuration for which pipelines to watch should use the pipeline's slug name, not the name itself.

Oops, resolved by #23

Oops, resolved by #23


Implement @BluebirdMethod decorator for async functions

What do you think about adding @BluebirdMethod decorator for async functions? We could still use all the ES6/TypeScript features and get all the benefits of bluebird. I really like your work, guys. I can't imagine my life without Filtered Catch feature. But writing like
class Foo {
  bar = Bluebird.method(async function(){})
}

in 2019 is kinda moveton. We could bring new life to bluebird with decorators 😄
class Foo {
  @BluebirdMethod
  async bar(): Promise<boolean> {
    return true;
  }
}

The problem is that decorators can't change the return types of functions in TypeScript

You are right, this is typescript issue opened since 2015
https://github.com/Microsoft/TypeScript/issues/4881
I think somewhen they implement it. Until then, we can put this on the users ' shoulders.
class Foo {
  @BluebirdMethod
  async bar(): Bluebird<boolean> {
    return true;
  }
}

Since bluebird is fully native promises compatible, there won't be problems if user specify Promise type. But if user try to use bluebird-specific methods with returned value, TS will emit an error and won't compile, so the user will know about the error in compile-time and will change return type to Bluebird.


@wasmer/wasmfs on npm is missing dist

It is also missing the rollup.config.js, so it cannot be built.

I was using an older version that was cached.


[v2.6] KDM Update for K8s June patch release

KDM Updates
TO BE RELEASED: Enabled OOB post Rancher v2.6.13

New Kubernetes Version
Min Rancher Version
Min RKE Version

1.24.15-rancher1-1
2.6.7-patch0
1.3.13-rc0

Rancher System Images & Add-ons
Note: Please update system images and add-ons in the template as needed.
TBD
Developer Changelog

Add templates for new K8s versions. If a template that hasn't been released yet already exists, update it in place.
Update the default K8s version, and add or update the version information (MinRancherVersion and MinRKEVersion) in k8s_version_info.go for new K8s versions if needed (Use table from above).
Confirm versions for system images, add-on templates are correct using versioning reference table from below (expand details to view the table). Update the table if new versions are introduced.
Confirm add-on template version constraints in template.go are correct using versioning reference table from below (expand details to view the table). Update the table if needed.

Versioning Reference

Expand for system images & add-on templates versioning table

Note: Truncated repository names with a * indicates there are multiple images with that prefix. All repository names that match a truncated prefix should be checked for the same version stated in the table.
For example: rancher/weave-* matches weaveworks/weave-kube and weaveworks/weave-npc, and they should both have the same version.
v1.24.15-rancher1-1

Repository
Tag

rancher/mirrored-coreos-etcd
v3.5.4

rancher/hyperkube
v1.24.15-rancher1

rancher/rke-tools
v0.1.87

rancher/mirrored-k8s-dns-*
1.21.1

rancher/mirrored-cluster-proportional-autoscaler
1.8.5

rancher/mirrored-coreos-flannel
v0.15.1

rancher/flannel-cni
v0.3.0-rancher6

rancher/mirrored-calico-*
v3.22.0

weaveworks/weave-*
2.8.1

noiro/* (All ACI images)
<IP_ADDRESS>.1d150da

rancher/mirrored-pause
3.6

rancher/nginx-ingress-controller
nginx-1.2.1-rancher1

rancher/mirrored-nginx-ingress-controller-defaultbackend
1.5-rancher1

rancher/mirrored-jettech-kube-webhook-certgen
v1.1.1

rancher/mirrored-metrics-server
v0.6.1

rancher/mirrored-coredns-coredns
1.9.3

rancher/mirrored-cluster-proportional-autoscaler
1.8.5

rancher/kubelet-pause
v0.1.6

rancher/mirrored-k8s-dns-node-cache
1.21.1

Add-on Name
Add-on Template Version Constraint

Calico
calicov319

Canal
canalv319

Flannel
flannelv115

CoreDNS
coreDnsv183

KubeDNS
kubeDnsv116

MetricsServer
metricsServerv050

Weave
weavev120

Aci
aciv500

NginxIngress
nginxIngressv110Rancher3

Nodelocal
nodelocalv121

Backport of https://github.com/rancher/rancher/issues/41751

Fresh install checks - PASS

On rancher version v2.6.13, KDM pointing to dev-v2.6-2023-06-patches branch, cluster creation succeeds for k8s v1.24.15-rancher1-1 on all network providers - canal/flannel/weave/calico
Network checks look good
Canal network checks look good

Upgrade checks - PASS

On rancher v2.6.13, KDM pointing to release-v2.6, cluster creation succeeds for k8s v1.24.13-rancher2-2 version with all network providers.
Pre-upgrade checks look good.
KDM points to dev-v2.6-2023-06-patches branch.
Upgraded cluster to k8s versions - v1.24.15-rancher1-1
Post upgrade checks look good.

RKE checks using v1.3.22-rc1 passed for k8s version - v1.24.15-rancher1-1

Minimum rancher version checks - PASS

On rancher v2.6.7, KDM pointing to dev-v2.6-2023-06-patches branch, cluster creation succeeds for k8s v1.24.15-rancher1-1
Network checks look good.
Canal network checks look good.

RKE default k8s version -
dev-v2.6-2023-06-patches branch, should have the default as v1.24.15-rancher1-1
 "RKEDefaultK8sVersions": {
  "0.3": "v1.16.3-rancher1-1",
  "default": "v1.24.15-rancher1-1"
 }


Shipping Page: Styling Issues with formly

Actual Behavior

Radio buttons and labels are not in one line.
Space between radio buttons and labels are too large.

Expected Behavior

Radio buttons and labels are in one line.
Space between radio buttons and labels are 4px (see payment page).

Steps to Reproduce the Bug
Steps to reproduce the behavior:

Go to 'Checkout'
Click on 'Shipping'
See shipping options

Environment Details

PWA 1.0.0 - Public Demo Server
Browser: Chrome

Additional Context, like Screenshots, Log File Snippets etc.
Desktop:

Mobile:

AB#65986

Hi, @M-Behr , thanks for finding this. One question: The distance between button and label is the same as it was before so nothing should've changed there because of formly. Can you or @iwiederhold tell us what the proper distance should be?

Hi, @M-Behr , thanks for finding this. One question: The distance between button and label is the same as it was before so nothing should've changed there because of formly. Can you or @iwiederhold tell us what the proper distance should be?

Hi @MaxKless! Unfortunately, I could not check what it looked like before. I took the payment page as reference. There the radio buttons have 4px margin on top and right. So 4px space is correct - discussed with @iwiederhold.
On the shipping page, the form label has an additional 18px margin on the left, which should be removed (see screenshot). When I remove the top margin of the radio buttons, the radio button and the label seem to be in line.


Dependency material-dialogs:0.3.1 is no longer on jCenter

For whatever reason com.afollestad:material-dialogs:0.3.1 is no longer available from jCenter, but com.afollestad:material-dialogs:0.3.2 is, so it might be good to upgrade.

Krt16s,
Thank you very much for this information. I will update the project's gradle file in the next version.

John

Dependency has been updated.