Issue about the python implementation of AlphaZero

When I compare our implementation of AlphaZero with the pseudocode of paper, I find two different, maybe it will have a slight influence on the performance.
The first is the Dirichlet noise:

In the pseudocode of AlphaZero, the noise is added before MCTS simulations, so it will have the same noise in different simulations.

def run_mcts(config: AlphaZeroConfig, game: Game, network: Network):
    root = Node(0)
    evaluate(root, game, network)
    add_exploration_noise(config, root)

    for _ in range(config.num_simulations):
        node = root
        scratch_game = game.clone()
        search_path = [node]

        while node.expanded():
            action, node = select_child(config, node)
            scratch_game.apply(action)
            search_path.append(node)

        value = evaluate(node, scratch_game, network)
        backpropagate(search_path, value, scratch_game.to_play())
    return select_action(config, game, root), root

In our MCTS,  different noise is added in every simulations.
https://github.com/deepmind/open_spiel/blob/master/open_spiel/python/algorithms/mcts.py#L399
https://github.com/deepmind/open_spiel/blob/master/open_spiel/python/algorithms/mcts.py#L314

   root_player = state.current_player()
    root = SearchNode(None, state.current_player(), 1)
    for _ in range(self.max_simulations):
      visit_path, working_state = self._apply_tree_policy(root, state)

  def _apply_tree_policy(self, root, state):
    visit_path = [root]
    working_state = state.clone()
    current_node = root
    while not working_state.is_terminal() and current_node.explore_count > 0:
      if not current_node.children:
        # For a new node, initialize its state, then choose a child as normal.
        legal_actions = self.evaluator.prior(working_state)
        if current_node is root and self._dirichlet_noise:
          epsilon, alpha = self._dirichlet_noise
          noise = self._random_state.dirichlet([alpha] * len(legal_actions))
          legal_actions = [(a, (1 - epsilon) * p + epsilon * n)
                           for (a, p), n in zip(legal_actions, noise)]

different noise between simulations may have better exploration, but I don't know whether it will make it unstable?
(Edit after review: I find the sample batch of the games in pseudocode is sampled with the probability according to the length of the game, the second one is just different in implementation detail.)
The second one is the sample batch for training.

In pseudocode of AlphaZero, games are saved as the sample, when sampling from replay buffer, it sample num_batch of game, and random choice a game_pos in every game.

    def sample_batch(self):
        # Sample uniformly across positions.
        move_sum = float(sum(len(g.history) for g in self.buffer))
        games = numpy.random.choice(
            self.buffer,
            size=self.batch_size,
            p=[len(g.history) / move_sum for g in self.buffer])
        game_pos = [(g, numpy.random.randint(len(g.history))) for g in games]
        return [(g.make_image(i), g.make_target(i)) for (g, i) in game_pos]

In our implementation, we save every game position as the sample, and we just random sample from game position
https://github.com/deepmind/open_spiel/blob/master/open_spiel/python/algorithms/alpha_zero/alpha_zero.py#L164

  self.replay_buffer = dqn.ReplayBuffer(replay_buffer_capacity)
  def _self_play_single(self):
    """Play a single game and add it to the replay buffer."""
    state = self.game.new_initial_state()
    trajectory = []

    while not state.is_terminal():
      root = self.bot.mcts_search(state)
      target_policy = np.zeros(self.game.num_distinct_actions(),
                               dtype=np.float32)
      for child in root.children:
        target_policy[child.action] = child.explore_count
      target_policy /= sum(target_policy)

      trajectory.append(model_lib.TrainInput(
          state.observation_tensor(), state.legal_actions_mask(),
          target_policy, root.total_reward / root.explore_count))

      action = self._select_action(root.children, len(trajectory))
      state.apply_action(action)

    terminal_rewards = state.rewards()
    for state in trajectory:
      self.replay_buffer.add(
          model_lib.TrainInput(state.observation, state.legals_mask,
                               state.policy, terminal_rewards[0]))

In the implementation of pseudocode, sampling from games will make it fair for the games which have different length, and our implementation is fair for every data point.
Maybe the different implementation can all work well, but I think we should have careful consideration or it may also need to have some experiments.
@sbodenstein @lanctot

OK, I find the sample batch of the games in pseudocode is sampled with the probability according to the length of the game, the second one is not a difference.

Going to loop in @elkhrt and @tewalds to this conversation.
Good catch! Based on those two lines, I'm inclined to agree: I think you are right, we should probably only be noisifying the root once before the simulations. @tewalds, can we try moving that the noise to before the simulations and see if we can easily reproduce internal results?
Also, btw, there will be some upcoming changes to the AlphaZero code structure (in next Monday's update) that might affect you. Tagging @tewalds in case you have any questions, but please keep an eye on the commits. In case there is anything that breaks your code, maybe save it somewhere before pulling from master.

Tagging also @TWAnthony who might have experience with this from ExIT.

Yes, this looks like a bug - well spotted!

Isn't it only noisifying the root once? It only happens when the current node has no children and is the root, which should only happen the first time. It then saves that noise in the tree. The second time the root will have children, so it'll use the noise saved in the tree.

Btw, your second point is slightly different, in that it samples without replacement, as compared to with replacement in the pseudocode. I asked the author of AZ whether it was important that it was with replacement. He said it was simpler with replacement but shouldn't make a difference. It may well be true in that without replacement is harder in their code layout, but it's much easier without replacement here, so I left it.

Ahh, yes I missed this: https://github.com/deepmind/open_spiel/blob/f5eabb654690081991a212cc6c2e8cbd46cefaa6/open_spiel/python/algorithms/mcts.py#L311
Ok, I think I agree @tewalds, seems like this case will only be hit once. Thanks.

I run the code and it just hit once, sorry for the mistake.
btw, whether place the exploration noise before the simulations loop will make the code easier to understand?
I will close this issue soon.

That would require duplicating some code for node expansion, but feel free to raise a PR to suggest it. If you manage to make it clean enough it could be worth integrating.

ok, got it.


Connect stat parts with dots

@Raynos @kriskowal

lgtm.

@kriskowal good feedback. there's another fix coming soon for typed-request-client so I'll take care of that then


Nginx configuration is being overwritten

Since there are several roles that are deployed on the same machine (workbench), and since several of these roles modify the nginx configuration via template, this results on only the last configuration to be present. The other ones are overwritten on template copy.
SOLUTION: Create a general nginx config template with all of them merged, or instade of templating appending to the file.

I've been thinking about that... Wouldn't it be easier/cleaner to deploy those overlapping roles in separate machines? Arvdock does that (not what the docs say):
https://github.com/curoverse/arvados/tree/master/docker

I probably would, yes. Problem is if we want to deploy such a cluster in a "regular" workstation, creating so many VMs would require a lot of horse power, wouldn't it?


⭐🤵 Person and People components

Use https://github.com/hejny/webgpt/pull/121 instead of AI components


Inconsistent behavior of Environment binding properties in SCS parent-child contexts

The Environment instance in the SCS parent and child contexts are ApplicationServletEnvironment and SystemEnvironmentPropertySource respectively, which causes the property values they obtain to be inconsistent with expectations, for example: for a property spring.cloud.azure.eventhubs.connection-string, if configuring SPRING_CLOUD_AZURE_EVENTHUBS_CONNECTIONSTRING, then it cannot be got by env in sub context, see the logic from checkPropertyName
Describe the issue
I can see the parent context using SystemEnvironmentPropertyMapper to map candidate to find the property value; but the sub context does not leverage the mapper,

To Reproduce
Steps to reproduce the behavior:

Base on Kafka binder usage, registry a configuration for sub context, such as spring.cloud.stream.binders.kafka.environment.spring.main.sources=com.reproducer.MyConfig
Define a connectionString bean with the condition @ConditionalOnProperty("a.b.connection-string")
Configure an environment variable, A_B__CONNECTIONSTRING=connection-string-value
Run the app, the connectionString bean is not registered into sub context.

Version of the framework Spring Boot 3.3.5 & Spring Cloud Stream 4.1.3
Expected behavior To get same candidates against SystemEnvironmentPropertyMapper  mapped.
Screenshots

Additional context
N/A

The SystemEnvironmentPropertyMapper is not a s-c-stream class and comes from boot.
That said, indeed there are few few workarounds that we had to do to deal with parent/child context and our current mechanisms may work, but it would be preferable if you had a reproducible sample. You can create a small project and push it to github somewhere.

@moarychan Please provide a reproducer project so we can diagnose otherwise this issue will be closed as non-actionable

@olegz , thanks for your update!
I added a sample with introduction, please try this reproducer.


Can this library be used for ASP.NET Webforms?

Can you please let me know if ReactJS.NET library be used for ASP.NET Webforms? I couldn't find any tutorial or documentation for ASP.NET Webforms in https://reactjs.net/ website. It shows examples only for ASP.NET Core and MVC, but not for Webforms. If it cannot be used, then are there any other ways to integrate ReactJS into existing ASP.NET Webforms application, please let me know. We have a legacy ASP.NET Webforms application and have a requirement to integrate a React component into it. if you have any information related to this, please share it. Thanks in advance. I couldn't find an option to ask question here, so submitting a new issue.

Hi there 👋
WebForms is not supported by this library directly, but a few others have attempted making it work. You might find some helpful guidance in this issue: #55

Thanks for quick response. I am not sure if the proposed solution will
support integrating a complex a React app into an existing ASP.NET Webforms
app, but will look into that.
On Tue, 12 Mar 2019 at 20:42, Dustin Masters<EMAIL_ADDRESS>wrote:

Hi there 👋
WebForms is not supported by this library directly, but a few others have
attempted making it work. You might find some helpful guidance in this
issue: #55 https://github.com/reactjs/React.NET/issues/55
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/reactjs/React.NET/issues/756#issuecomment-472038960,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ArYbVQ9ahwlQLmFGWqdIrUBy06Jk1Bp8ks5vV8P4gaJpZM4brBUo
.


Add comments to MemAccessUtils.h.

The name doesn't mean "memory access" colloquially. It specifically
refers to memory operations that take part in formal access scopes
marked by begin_access/end_access instructions. If you aren't working
with those instructions it really doesn't make sense to use it.

@swift-ci smoke test

@swift-ci smoke test and merge


Add Shebang to Binstubs

This issue was originally filed by @kaendfinger

A shebang is needed for the binstub script on pub for it to work well. I have added this in a code review.
https://codereview.chromium.org/600583003

This issue has been moved to dart-lang/pub#1142.


Custom static entity view metamodel for filtering and sorting

The idea is to generate a static metamodel for an entity view e.g.
public interface PersonView {

    @IdMapping("id")
    public Integer getId();
    public String getName();
}

public class PersonView_ {

    public static final SingularAttribute<PersonView, Integer> id = new DefaultSingularAttribute<>(PersonView.class, "id");
    public static final SingularAttribute<PersonView, String> name = new DefaultSingularAttribute<>(PersonView.class, "name");
}

so that the use site can be statically checked by the compiler.
entityViewSetting.addAttributeFilter(PersonView_.name, "John%");

Also experiment with extracting parameter information out of entity views into a static metamodel. Would be cool if parameters could be set in a type safe manner. We could even generate a static factory for entity view settings in that metamodel that requires the parameters to be set.


user defined node

Is there a way that user can define a new node without the compiling of the whole package. I have worked like this:
//! @brief A energy node
//! @ingroup NodeEnergy
class NodeEnergy :public Node
{
public:
    //! @brief The data variable indexes, DataLength is used internally
    //! @ingroup NodeEnergy
    enum DataIndexEnumT {mFlow, Pressure, Temperature, DataLength};
    static Node* CreatorFunction() {return new NodeEnergy;}

private:
    NodeEnergy() : Node(DataLength)
    {
        setNiceName("energy");
        setDataCharacteristics(mFlow, "mFlow", "mdot", "mFlow", FlowType);
        setDataCharacteristics(Pressure, "Pressure", "p", "Pressure", IntensityType);
        setDataCharacteristics(Temperature, "Temperature", "T", "Temperature");
    }
};

However, the whole program broke down when I pull this new component on the screen.

Have you implemented this new node inside a custom component library or directly inside the Hopsan source code?
The original intention was to be able to add nodes inside custom component libraries, but I am not sure if it still works.
If you have implemented it directly in the Hopsan code then you must recompile everything.
If you have implemented it inside a custom component, then HopsanGUI should be able to recompile that component library if you right click the library and choose recompile (in the library widget). But this requires that the source code files are listed in the library xml file.
Do you get any error messages when trying to connect ? Turn on debug output also (the blue/purple button in the message widget) ?
Can you make the source code available (on github or zip file)? Then I may be able to to find the issue.
What are you trying to connect to? You will need two components with ports using this new node type.
Possibly these components need to have read/write ports configured (if this is used as a signal node) or PowerPorts if you are attempting to implement C/Q components with the TLM method.

hmmm I tried to add your code to the example library and add two components, but the ports does not show up at all on the new components.
Is this the same problem that you face, that there are no visible ports to connect to ?

I think I found the problem. Hopsan did not find a matching port icon, and then no graphics item shows up.
I have a test branch, https://github.com/peterNordin/hopsan/commits/fix-add-custom-node
I dont know if you have already built the entire hopsan package, then can test that branch?
Otherwise you will have to wait until I have time to build a snapshot release.
What version are you using? build from source, Ubuntu or Windows ?
I also added a quick test of your code in commit: https://github.com/peterNordin/hopsan/commit/365a931dce7eea0def103d0d06d516043011fd97
But my other port graphics fix is needed for it to work.

Thanks a lot, I will try your test branch.


Instructions on how to set custom keys on the chip

I see in config file default keys (all zeros) are being used, but how to change them when configuring the NTAG 424 DNA chip (through TagWriter/TagXplorer interface)? Any instructions for that? Thanks in advance, man!

Hello,
using TagWriter I think it's not possible (software not capable of changing keys), but using TagXplorer it should work fine through this interface (look at the right side, first you need to authenticate with zero key and then you can go to Change Keys). Unfortunately I haven't used TagXplorer yet, so I can only instruct you "theoretically".

In my setup, I use my custom Android application (implemented according to the datasheet and application notes) that performs key changing.

Wow, that was fast, thank you for the answer! So I just go there and select "AES Auth", "Application Auth" and click on "Authenticate First", then I go to "Change Key" section and input there some random key and save. I'll try it once I get my hands on those tags and report you back.

Sure. If you would report back whether it worked or not then it would be very helpful :)

@icedevml I have one question not much related to this, so sorry for digression. I was wondering, how do you calculate the offsets if the app doesn't do that for you? In the instructions you provided for TagWriter it's indicated that the offset number is found automatically when you set a pointer in the URL, but I don't see that being the case in TagXplorer (you have to manually input the number). How should I do this?

One question - do I have to set custom keys after I've configured URL or before, or that doesn't matter?

Before I do this, I need to clear out two things:

When I need to change those default SDM keys - before, or after configuring an URL?
After I do that, do I need to change anything in the picture below related to SDM keys:

Settings marked 16-21 are responsible for configuring the scheme of SDM. I.e. the SDM URL might have many different formats, e.g.:
http://myserver.example/tag?picc_data=EF963FF7828658A599F3041510671E88&cmac=94EED9EE65337086

or
http://myserver.example/tag?picc_data=FD91EC264309878BE6345CBE53BADF40&enc=CEE9A53E3E463EF1F459635736738962&cmac=ECC1E7F6C6C73BF6

or many different options. These checkboxes determine the particular format you will be using, more details are available in the NTAG 424 DNA datasheet.
Settings marked with 17-19 are numbers of keys used for particular features, namely:

17 - key used to compute CMAC (the digital signature)
18 - key used to encrypt EncFileData (if present)
19 - key used to read the value of the counter

depending on the URL format chosen (settings 16-21), some keys are meaningless or have altered functions, again you need to consult datasheet.
I think it's the best to first change the encryption keys and then perform any additional configuration, but that's up to the user.

Okay, thank you for the answer again! Since I'm a total newbie on this matter I'll take one-two chips and play with configuring if I fail to set it up properly from the start. If I succeed I'll notify you here, or if I get stuck, I will bore you again. 😃

Hello icedevml,
i do not manage either to generate a working URL with TagXplorer.
Can you post what settings you are using to write your tags?
Thanks

Tested it finally and I can confirm that this method of key changing works! Thank you once again @icedevml for the help!

You're welcome, thanks for confirming!


NOP backend

This is a simple NOP backend which does nothing. It will be used to benchmark backend call overhead.
There were a couple of unit tests that actually passed with this backend so I "fixed" them so they now fail with NOP as they should. Backend tests can't be run with this backend because everything will fail.

@shssf I believe @rkimballn1's original motivation for moving it out of backend_test.in.cpp is that it's not actually a backend test. The expected failure occurs in type propagation, and we never even hit the backend.
The reason I'd favor scrapping it is that it seems to be redundant due to the existence of https://github.com/NervanaSystems/ngraph/blob/d9f615b7a9ca5b4d2611744eade4687f7e01cc29/test/type_prop.cpp#L37 .
It is true that these are not technically testing quite the same thing: the shapes/axes are different, the removed test has the op construction inside the constructor call for Function, and the removed test is a bit less specific about the exception. I don't think the removed test represents any particularly important boundary values, but if we're not sure then we could move it over to type_prop.


Unable to teleport from in game log window

When an alarm is triggered and the location in the map is pasted in the in game chat window, I'm unable to teleport to said location, I checked in config and all options are marked, but when clicked in the game log window it only opens up the map but doesn't teleport nor changes class, idk if this is a bug or was removed in favor of the gather window, but I found the chat teleport/class change easier than the gather window who's more in game intrusive. I just want to confirm if it's a bug or was removed or if there's some other way to enable it.

Yes, this is a map link, not a custom "gather this location" magic thing.
If you want to gather the last triggered alarm, use /gather alarm.

idk if this is a bug or was removed in favor of the gather window
nothing was removed, this was never an option.

When Dalamud someday enables context menus, you'll be able to right-click the item name to gather that, though.

Really? I remember clicking in the alarm in the un game window and teleporting, weird, guess I was delusional


[SPARK-12818] Polishes spark-sketch module

Fixes various minor code and Javadoc styling issues.

Also went through generated Javadoc to fix all visibility and style issues.

cc @cloud-fan @rxin

LGTM.
@cloud-fan should review too

Test build #50399 has started for PR 10985 at commit 605b011.

LGTM, thanks a lot!

Test build #50399 has finished for PR 10985 at commit 605b011.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
final class BitArray
class BloomFilterImpl extends BloomFilter implements Serializable
class Utils

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/50399/
Test PASSed.

Thanks for the review, merging to master.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/50403/
Test FAILed.


Remove quotes around PostgresRecordManager table create statement

Wrapping the table name in quotes locks the creation of tables to the default schema in postgres. Removing the quotes enables the creation of tables in other schemes enabling flexibility

Fixes # (issue)

This will probably break people who supply a table with a capital letter right? Could we instead also support an additional param?
CC @MJDeligan

This will probably break people who supply a table with a capital letter right? Could we instead also support an additional param?

Yes, it would be a breaking change, but I like the idea of being able to pass a schema param for flexibility!

@jacoblee93 @MJDeligan thanks for the feedback! I will make an update later this morning  to provide an optional parameter for schema, if not supplied we can fall back to the original implementation with quotes

Updated with schema param @MJDeligan @jacoblee93

I think the combined name of schema and table needs to be used in ever query right? The tests fail for me locally, because the CREATE INDEX queries still have the double quotes around the identifier even though the identifier itself already has it. If I fix that then I get errors because the table does not exist, probably because the schema is not added in other queries? I'm not too familiar with postgres' search path across schemas.
We could add the schema param in the constructor to use it throughout the RecordManager.
A small sanity test for this would also be nice.

Good call out on the double quotes @MJDeligan , that was a typo on my end. I fixed this and also refactored the param out from the createSchema method to the constructor as an optional argument and applied this to the remaining queries in the Record Manager.  Also wrote a quick smoke test as requested to validate this change.

Thanks for the update! Functionality looks good, tests are passing. Couple of things: The schema parameter in the constructor can be part of the config object param, since it's related to the rest of the config. It would be nice to have the finalTableName as a property on the record manager, so that we don't repeat the logic for each query and we make it easier to check what the actual relation name is. For the test, it would be good if a new variable was used for the record manager with schema and we'd immediately end it within the test. That way we do not need to reinitialize after each test. Thoughts? @jacoblee93
Good work!

I agree with everything @MJDeligan said! Not a fan of positional args personally unless they're very thoughtful as you can end up with horrible stuff like this:
https://github.com/langchain-ai/langchainjs/blob/main/langchain-core/src/language_models/chat_models.ts#L185

Sounds good! I agree the config would be a more appropriate location for the schema option - i will update this and the test when I’m back in front of my machine Monday. Thanks again for your feedback!
todo:

[ ] refactor schema out of constructor and into config object
[ ] Set ‘finalTableName’ as property on ‘PostgresRecordManager’
[ ] Update test with new ‘PostgresRecordManager’ variable to avoid reinitialization; also close connection within test

Updated with requested changes @jacoblee93 @MJDeligan

Looks great, thank you!


Improve profiler

Reduce lock scope and avoid do memory allocation inside lock
when possible. Limit symbol name to 32 chars
Add two environment variables to control profiler. This enables
profiling without change any code.
MXNET_PROFILER_MODE = [0|1] to select 'all' or 'symbolic'
MXNET_PROFILER_AUTOSTART = 1 to enable profiler automatically
Output pid & tid as unsigned int.
Get number of GPUs during runtime
Add Profiler support to cmake build and enable it by default

nnvm is merged into master now


Improve error message on tag resolution failure

Digester currently uses HEAD requests to look up image digests.
If the image registry returns an error, there is no response body to provide additional information about the error.
As long as the HTTP status code was not 429, digester could fall back to a GET request in order to get the error message and surface it to the user.

This has already been implemented in the gcrane package, please see https://github.com/google/go-containerregistry/blob/main/pkg/crane/digest.go#L45


'score:' command does not work for E621

Clarification: Shavisi has trouble with > (less than) operator

potentially fixed in https://github.com/andrew1421lee/ShavisiBot/commit/9c8794afac8dc9c9dd5e2213166ecd7b39cb4a99


Body class for full-page examples in dev:lite

Can we add a class to the <body> element for full-page examples? We style the body element here https://github.com/patternfly/patternfly-next/blob/master/build/gulp/ws-lite.css#L1-L4 but need to remove those styles on full page examples - so the selector would change to something  body:not(.full-page-example) {...}

cc @redallen

A couple lines of logic needs to change here: https://github.com/patternfly/patternfly-next/blob/master/build/gulp/html.js#L114
I can do it when I have a minute.

:tada: This issue has been resolved in version 2.66.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Implement preflight check for ubuntu distribution

I tried to run crc on ubuntu and it failed.
First of all, I had to install libvirt manually to make crc setup working. Otherwise, it tried to install libvirt via yum and it failed.
When I installed libvirt, crc start failed because of some networking issue. I played a lot with NetworkManager and dnsmasq before it started work.
This issue is about implementing preflight check for ubuntu distribution.
Diagnostics

cat /etc/os-release
serg@sergpad:/etc/NetworkManager/dnsmasq.d$  cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

crc setup --log-level=debug
serg@sergpad:/etc/NetworkManager/dnsmasq.d$ crc setup --log-level=debug
INFO Caching oc binary
DEBU oc binary already cached
INFO Setting up virtualization
DEBU Checking if the vmx/svm flags are present in /proc/cpuinfo
DEBU CPU virtualization flags are good
INFO Setting up KVM
DEBU Checking if /dev/kvm exists
DEBU /dev/kvm was found
INFO Installing libvirt service and dependencies
DEBU Checking if 'virsh' is available
DEBU 'virsh' was found in /usr/bin/virsh
INFO Adding user to libvirt group
DEBU Checking if current user is part of the libvirt group
DEBU Current user is already in the libvirt group
INFO Enabling libvirt
DEBU Checking if libvirtd.service is enabled
DEBU libvirtd.service is already enabled
INFO Starting libvirt service
DEBU Checking if libvirtd.service is running
DEBU libvirtd.service is already running
INFO Installing crc-driver-libvirt
DEBU Checking if crc-driver-libvirt is installed
DEBU crc-driver-libvirt is already installed in /usr/local/bin/crc-driver-libvirt
INFO Setting up libvirt 'crc' network
DEBU Checking if libvirt 'crc' network exists
DEBU libvirt 'crc' network exists
DEBU Checking if libvirt 'crc' network definition contains crc-rv4tg-master-0
DEBU libvirt 'crc' network definition contains crc-rv4tg-master-0
INFO Starting libvirt 'crc' network
DEBU Checking if libvirt 'crc' network is active
DEBU libvirt 'crc' network is already active
INFO Writing Network Manager config for crc
DEBU Checking NetworkManager configuration
DEBU NetworkManager configuration is good
INFO Writing dnsmasq config for crc
DEBU Checking dnsmasq configuration
DEBU dnsmasq configuration is good
INFO Unpacking bundle from the CRC binary

crc start --log-level debug
serg@sergpad:~/.crc$ crc start --log-level debug
INFO Checking if oc binary is cached
DEBU oc binary already cached
INFO Checking if Virtualization is enabled
DEBU Checking if the vmx/svm flags are present in /proc/cpuinfo
DEBU CPU virtualization flags are good
INFO Checking if KVM is enabled
DEBU Checking if /dev/kvm exists
DEBU /dev/kvm was found
INFO Checking if libvirt is installed
DEBU Checking if 'virsh' is available
DEBU 'virsh' was found in /usr/bin/virsh
INFO Checking if user is part of libvirt group
DEBU Checking if current user is part of the libvirt group
DEBU Current user is already in the libvirt group
INFO Checking if libvirt is enabled
DEBU Checking if libvirtd.service is enabled
DEBU libvirtd.service is already enabled
INFO Checking if libvirt daemon is running
DEBU Checking if libvirtd.service is running
DEBU libvirtd.service is already running
INFO Checking if crc-driver-libvirt is installed
DEBU Checking if crc-driver-libvirt is installed
DEBU crc-driver-libvirt is already installed in /usr/local/bin/crc-driver-libvirt
INFO Checking if libvirt 'crc' network is available
DEBU Checking if libvirt 'crc' network exists
DEBU libvirt 'crc' network exists
DEBU Checking if libvirt 'crc' network definition contains crc-rv4tg-master-0
DEBU libvirt 'crc' network definition contains crc-rv4tg-master-0
INFO Checking if libvirt 'crc' network is active
DEBU Checking if libvirt 'crc' network is active
DEBU libvirt 'crc' network is already active
INFO Checking if /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf exists
DEBU Checking NetworkManager configuration
DEBU NetworkManager configuration is good
INFO Checking if /etc/NetworkManager/dnsmasq.d/crc.conf exists
DEBU Checking dnsmasq configuration
DEBU dnsmasq configuration is good
INFO Extracting the crc_libvirt_4.1.6.crcbundle Bundle tarball ...
Checking file: /home/serg/.crc/machines/crc/.crc-exist
INFO Creating VM ...
Found binary path at /usr/local/bin/crc-driver-libvirt
Launching plugin server for driver libvirt
Plugin server listening at address <IP_ADDRESS>:41065
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(crc) Calling .GetMachineName
(crc) Calling .DriverName
Running pre-create checks...
(crc) Calling .PreCreateCheck
(crc) DBG | About to check libvirt version
(crc) DBG | Validating network
(crc) Calling .GetConfigRaw
Creating machine...
(crc) Calling .Create
(crc) Downloading /home/serg/.crc/cache/crc from file:///home/serg/.crc/cache/crc_libvirt_4.1.6/crc.qcow2...
(crc) DBG | Verifying executable bit set on /home/serg/.crc/machines/crc
(crc) DBG | Setting executable bit set on /home/serg/.crc/machines/crc
(crc) DBG | Verifying executable bit set on /home/serg/.crc/machines
(crc) DBG | Setting executable bit set on /home/serg/.crc/machines
(crc) DBG | Verifying executable bit set on /home/serg/.crc
(crc) DBG | Verifying executable bit set on /home/serg
(crc) DBG | Verifying executable bit set on /home
(crc) DBG | Defining VM...
(crc) DBG | Adding the file: /home/serg/.crc/machines/crc/.crc-exist
(crc) DBG | Starting VM crc
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 0/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 1/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 2/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 3/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 4/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 5/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 6/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 7/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 8/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 9/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 10/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 11/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 12/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 13/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 14/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 15/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 16/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 17/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 18/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 19/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 20/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 21/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 22/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 23/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 24/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 25/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 26/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 27/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 28/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 29/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 30/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 31/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 32/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 33/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 34/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 35/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 36/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 37/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 38/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 39/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 40/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 41/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 42/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 43/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 44/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 45/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 46/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 47/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 48/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 49/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 50/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 51/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 52/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 53/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 54/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 55/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 56/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 57/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 58/60
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Waiting for machine to come up 59/60
(crc) Unable to determine VM's IP address, did it fail to boot?
(crc) Calling .GetConfigRaw
(crc) Calling .DriverName
(crc) Calling .DriverName
Waiting for machine to be running, this may take a few minutes...
(crc) Calling .GetState
(crc) DBG | Getting current state...
Machine is up and running!
Machine successfully created
Created /home/serg/.crc/machines/crc/.crc-exist
(crc) Calling .GetState
(crc) DBG | Getting current state...
Found binary path at /usr/local/bin/crc-driver-libvirt
Launching plugin server for driver libvirt
Plugin server listening at address <IP_ADDRESS>:43277
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
INFO Verifying validity of the cluster certificates ...
(crc) Calling .GetSSHHostname
(crc) DBG | GetIP called for crc
(crc) DBG | Getting current state...
(crc) DBG | Fetching VM...
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /home/serg/.crc/cache/crc_libvirt_4.1.6/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null core@ -o IdentitiesOnly=yes -i /home/serg/.crc/cache/crc_libvirt_4.1.6/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
About to run SSH command:
date --date="$(sudo openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate | cut -d= -f 2)" --iso-8601=seconds
SSH cmd err, output: exit status 255:
ERRO Error occurred: ssh command error:
command : date --date="$(sudo openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -enddate | cut -d= -f 2)" --iso-8601=seconds
err     : exit status 255
output  :
Making call to close driver server
(crc) Calling .Close
Successfully made call to close driver server
Making call to close connection to plugin binary
Making call to close driver server
(crc) Calling .Close
Successfully made call to close driver server
Making call to close connection to plugin binary

there was work done in #190 (#97). please comment on the PR or issue.
duplicate


Bigsur installation problem

On big sur 11.01 only few apps allow me to use halmak as input source, such as terminal and different ides. For example in Safari I am unable to select halmak as source even id it's appear in every select option.

Yes that is a big problem! It automatically switches the input source. No warning (not that it would make it better).
Version 11.1 (20C69)

Same issue here.

Same issue here.

@dimaqq please can you explain a little more about how you copied the files without the bundle? I'm finding that opening any new app switches my keyboard back to Qwerty British.

Sure, I took individual files from https://github.com/MadRabbit/halmak/tree/master/macos/Halmak.bundle/Contents/Resources that is from inside the bundle, and dropped them into the system dir, with the following result
> ls -hl /Library/Keyboard\ Layouts/
total 84K
-rw-r--r-- 1 root wheel 38K Jan 18 19:06 Halmak.icns
-rw-r--r-- 1 root wheel 41K Jan 18 19:06 Halmak.keylayout

Oh and I had to reboot the laptop after adding the files. Without reboot I had the same issue: some 1st party (Safari) kept reverting to a standard keyboard automatically.

hey folks, thanks for reporting the issue. unfortunately im not using OSX anymore, so i cant really fix this. if anyone makes a patch please make a PR, i'd merge that happily

I had to install it, reboot, add it to my available layouts, and then reboot again, but after that it worked for me under Monterey 12.3. I also had to put the bundle in ~/Library/Keyboard\ Layouts/ rather than the global one.


Vscode don't show hints in JavaScript addEventListener witch querySelector

Type: Bug
When I use (Windows and Linux)
addEventListener  with document.querySelector('#id')
addEventListener doesn't show event hints, but with
document.getElementById('id') it works fine. Can it be fixed?
I would like to use document.querySelector('#id')
instead getElementById('id')
VS Code version: Code 1.74.2 (e8a3071ea4344d9d48ef8a4df2c097372b0c5161, 2022-12-20T10:27:19.253Z)
OS version: Linux x64 5.4.0-135-generic
Modes:
Sandboxed: No
Extensions (9)

Extension
Author (truncated)
Version

vscode-intelephense-client
bme
1.8.2

simple-react-snippets
bur
1.2.7

prettier-vscode
esb
9.10.3

live-sass
gle
5.5.1

vscode-language-pack-pl
MS-
1.74.12140928

material-icon-theme
PKi
4.23.1

LiveServer
rit
5.7.9

sass-indented
syl
1.8.23

JavaScriptSnippets
xab
1.8.0

See, for example, https://stackoverflow.com/a/64732930/836330.  Probably same thing.

See, for example, https://stackoverflow.com/a/64732930/836330. Probably same thing.

I saw this thread (and others) unfortunately not, thanks


Script error: Cannot bind argument to parameter 'Path' because it  is null

I get this error:
[+] Starting LNK rescue - Script version: v2
[+] Saved Result:  ScriptResult=Failure (1), TimeStamp=2023-01-17T08:51:24.2825358Z, NumLinksFound=0, HKUAppSuccess=0, HKUAppFailure=0,  HKLMSuccess=0, HKLMFailure=0,  ScriptError=Cannot bind argument to parameter 'Path' because it
is null. in registry HKLM:Software\Microsoft\ASRFix
I am running the script from powershell ISE, elevated as administrator.

Same with me. Have tested on three machines.
[+] Starting LNK rescue - Script version: v2
[+] Saved Result:  ScriptResult=Failure (1), TimeStamp=2023-01-17T15:25:23.6599639Z, NumLinksFound=0
, HKUAppSuccess=0, HKUAppFailure=0,  HKLMSuccess=0, HKLMFailure=0,  ScriptError=Cannot bind argument
to parameter 'Path' because it is null. in registry HKLM:Software\Microsoft\ASRFix

Possibly could be related to https://github.com/microsoft/MDE-PowerBI-Templates/issues/35 where path existence isn't being tested for LNK files?

Not related to https://github.com/microsoft/MDE-PowerBI-Templates/issues/35 as this issue only occurs in v3


🚀 Feature: Better Deployment model

🔖 Feature description
There should be a better deployment model than running an npm commamd. This model isn't particularly user friendly, less so when the user isn't familiar with npm.
Alternatively, should be made available as a container if possible.
🎤 Context
From the standpoint of a sysadmin, this deployment model feels sketchy and reliant on dev tooling (yarn dev). If this could be packaged and instalable from a .deb or .rpm package, it would greatly streamline the process of getting started.
✌ Possible Implementation
Packages aren't hard to make, and by the looks of things, this could be a rather simple installer. There would also need to be a systemd service to handle the running of the app as well, probably under a system user created for running the app.
Alternatively, if this system is available as a container then that would also simplify things greatly. If it's already containerized, it needs added to the getting started docs.
I have some experience with orchestrating similar architected apps, so I am willing to share my experiences.
👀 Have you spent some time to check if this feature request has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else. Or maybe so, with assistance.

The primary way of deploying your own Backstage project is through a Docker image that you build yourself. Although if you don't deploy with Docker you can also use the lower level artifacts provided by the frontend and backend bundle commands.

So is there an official docker image then? It looks like there is in the kube instructions, but why advertise to build yourself? I'm okay with development steps, but just using the software should be a little more packaged.

@GregJohnStewart Backstage is a framework for building developer portals, not an application that you can run directly. I'll note that there are some ongoing initiatives to change that, but that's the current state.

Open-source Backstage is a framework, not a pre-packaged one-size-fits-all product. What you get is a monorepo whose code you iterate on, and a lot of nice APIs and abstractions and plugins are available to you.
There may a bit of a misapprehension of what type of solution this is. You don't have a one-size-fits-all product image of WordPress either, if I may make a bit of a clumsy parallel.

@freben something like Docusaurus might be a better example, it doesn't have an official docker image :p

Interesting, I had assumed a more Jenkins-style thing where you can heavily configure a core deployable product. I'll just have to keep working on it then, thanks for the info!


[SPARK-18134][SQL] Comparable MapTypes [POC]

What changes were proposed in this pull request?
This is a small POC to see if we can make MapType orderable, and thus usable in aggregates and joins. The key idea in this PR is that there is a difference between an unordered and an ordered map (an ordered map is can be compared), and that ordered is a property of MapType.
A map can be converted from an unordered map to an ordered map by injecting a SortMap expression. The analyzer will inject SortMap expressions whenever we use a map in a binary comparison and when we use it in an aggregate. Note that the SortMap expression is far from optimized, it should however perform reasonable.
How was this patch tested?
No tests yet. This will probably fail tests.

cc @cloud-fan we discussed something like this earlier today

Test build #68968 has started for PR 15970 at commit edec2d8.

Test build #68968 has finished for PR 15970 at commit edec2d8.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class SortMap(child: Expression) extends UnaryExpression with ExpectsInputTypes

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/68968/
Test FAILed.

Test build #69003 has started for PR 15970 at commit b16ddb8.

Test build #69003 has finished for PR 15970 at commit b16ddb8.

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

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69003/
Test PASSed.

Merged build finished. Test PASSed.

Test build #69023 has started for PR 15970 at commit d570c84.

Test build #69023 has finished for PR 15970 at commit d570c84.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69023/
Test FAILed.

Merged build finished. Test FAILed.

Test build #69136 has started for PR 15970 at commit e4cc4b0.

Test build #69136 has finished for PR 15970 at commit e4cc4b0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ColumnStat(
case class UncacheTableCommand(

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69136/
Test FAILed.

Merged build finished. Test FAILed.

Test build #69141 has started for PR 15970 at commit 7d847b8.

Test build #69141 has finished for PR 15970 at commit 7d847b8.

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

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69141/
Test PASSed.

Any update on this?

cc @hvanhovell

Is there any updates on this PR? This feature is quite useful to us.

@hvanhovell  Are you still working on this? I think this is feature is useful :)

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1530/
Test PASSed.

Test build #97829 has started for PR 15970 at commit 7d847b8.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4313/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4325/
Test PASSed.

Test build #97847 has started for PR 15970 at commit 7d847b8.

Test build #97859 has started for PR 15970 at commit 7d847b8.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4359/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4369/
Test PASSed.

Build finished. Test FAILed.

Build finished. Test FAILed.

Build finished. Test FAILed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/12825/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/15813/
Test PASSed.


New Skin

First of all, thank you so much for the awesome theme!
I see you recently released skins - I love the sunrise skin and plan to use it.
I played around with the colors a while ago and ended up with below results. Here is my main.scss:.
---
# Only the main Sass file needs front matter (the dashes are enough)
---

@charset "utf-8";

// CUSTOM
// For dark text light background
$gray                       : #1976d2 !default; //used most places- changed from #7a8288
$dark-gray                  : mix(#000, $gray, 40%) !default;
$darker-gray                : mix(#000, $gray, 60%) !default;
$light-gray                 : mix(#fff, $gray, 50%) !default;
$lighter-gray               : mix(#fff, $gray, 90%) !default;

$body-color                 : #fff !default;
$background-color           : #f0fff0 !default; //honeydew color
$code-background-color      : $lighter-gray !default; //changed from #fafafa
$code-background-color-dark : $light-gray !default;
$text-color                 : $dark-gray !default;
$border-color               : $lighter-gray !default;

$primary-color              : $gray !default; //changed from #7a8288
$success-color              : #27ae60 !default;
$warning-color              : #e67e22 !default;
$danger-color               : #c0392b !default;
$info-color                 : #03a9f4 !default;

/* links */
$link-color                 : $info-color !default;
$link-color-hover           : mix(#000, $link-color, 25%) !default;
$link-color-visited         : mix(#fff, $link-color, 25%) !default;
$masthead-link-color        : $primary-color !default;
$masthead-link-color-hover  : mix(#000, $primary-color, 25%) !default;

@import "minimal-mistakes";

So I wanted to check if I could submit below as a new skin, maybe call it aqua, before throwing it away.

Looks good. A PR with this as a skin would be great.


Discussion: Could cdk8s just be a cdktf provider?

Description of the feature or enhancement:

I really love the project, but very often you need data that comes from somewhere else. E.g. I want to use secrets stored in Vault. It's super comfortable in cdktf with all the providers, but a pain in cdk8s. There is the CdktfResolver but it's super slow, is annoying to use (encapsulate everything in a TerraformOutput) and he can't handle sensitive data.
On the other hand, writing custom builders and Constructs in cdktf is a pain, because of the naming of classes. Instead using a generic PodSpec there are many different implementations, e.g. DeploymentV1SpecTemplateSpec. So if you want to create your custom PodSpecBuilder you need to implement it many times (for Deployments, StatefulSet, ...).
Could cdk8s not just a much better CDKTF Kubernetes Provider? It has the nice classes of cdk8s and cdk8s-plus and the provider ecosystem of cdktf/terraform.
Use Case:

Proposed Solution:

Other:

[x] :wave: I may be able to implement this feature request
[x] :warning: This feature might incur a breaking change

This is a :rocket: Feature Request

https://github.com/cdktf/cdktf-cdk8s takes cdk8s class and deploys using terraform provider.

Loks not maintained (maybe there is no need) but also don’t find a maven package

Marking this as a p2 feature request. @benkeil another avenue to pursue perhaps is opening a discussion in https://github.com/cdktf/cdktf-provider-kubernetes to migrate the provider to use cdk8s instead of their own custom classes, possibly merging with  https://github.com/cdktf/cdktf-cdk8s, as they are both maintained by terraform.


Feature Request - Modify Add an embedded map command to use location frontmatter property

Been using MapView to help me map out all the restaurants I want to record.
I've made a Restaurant template and QuickAdd button that upon creation, use the "Add geolocation (front matter) to current note, so that this rolls up into an overall MapView page.
However in each Restaurant page I'd also like to have a mini-map of the restaurant embedded for contextual awareness of where that restaurant is and I'm finding it difficult to figure out a way to do this with macros etc.
Am I missing something? Having this would be a great way to reuse the information already in the frontmatter property

Ah yep that works thanks! Is there a way to auto-centre around that location as part of the template?

Hmmm, good question. I think that if you have "Map follows search result" turned on in the plugin settings, it would work for that too. But that's a setting for the entirety of Map View and not just a specific map. It makes a lot of sense to make that something that is saved as part of a specific map and not a global setting.


Implementing empty changelog

-empty CHANGELOG.md can be created in main directory

.gitkeep file can be created in ./changelog/unreleased/

When CHANGELOG.md exists i think the plugin can ask about it and move whole current CHANGELOG.md to ./changelog/archive.md


elf: export NowNanoseconds

NowNanoseconds() is a useful helper func in apps that track, e.g.,
time delta to a time stamp set (using bpf_ktime_get_ns()) by eBPF.
Fixes: #213

@iaguis PTAL?


Avoid server configuration parsing by voter

Reviewing the first commit in isolation would be better as the second one is all about text replaces.

Closing as merged in #853


Add permanently denied option to listener

As discussed in https://github.com/Karumi/Dexter/issues/4

Thanks for your PR @anothem!!! :+1: we will wait for @Serchinastico's approval before to merge the branch.

Nice solution!
I'd change one thing though, it's something we discussed in another PR. Given it's clear we need to change the listener to add these new cool features I'd do it in a different fashion. I'd rather send back a PermissionRequest object in the current three PermissionListener methods instead of a plain String with the name (I'd like to think about creating different subclasses for each method, but that's something for future development). In this way we can add more information to the listeners while keeping backwards compatibility (from the moment we implement it :P). In the other hand, adding more methods to the listener will force subclasses to implement things they might not need at all and will surely break their code with every library upgrade.
Do you mind implementing the callback in this way? To sum up:

Create a new PermissionRequest class field holding the name of the requested permission and a boolean with your perma-denied flag.
Change PermissionListener signature to return the new object in every method instead of the permission name.

Thanks for the PR @anothem!

If we change the parameter type on the listener methods, it would break backwards compatibility anyway, and would require a major version bump. But I guess you're trying to avoid having to do this again in the future, right?
If we do a wrapper object, perhaps it makes more sense to do one for each scenario? e.g. PermissionDeniedResponse and PermissionGrantedResponse.
If we just use one generic wrapper class, I'm concerned about it having fields that wouldn't make sense in all the contexts where it's used (e.g. boolean neverAskAgainSelected makes sense for when it's denied, but not for when it's accepted).

Yep,  we are going to break backwards compatibility either way so let's try to do it better this time :)
I have the same concerns and that's what I thought as well: seems like a better solution to return 3 different response objects, I just wanted to set aside some time to think if they should share some basic data and, if they do, in which way.
Personally, I'd create 3 different response objects containing an instance of a PermissionRequest class (holding request information like the name and such to keep track of the source of the response). Every Response class would also contain response-specifics like the perma-denied flag or whatever feature we can think of.
I think in this way we can safely continue extending the library.
What do you think? @pedrovgs & @anothem

The PermissionRequest object is not really needed for this PR, I'm just thinking ahead FYI :P

@Serchinastico your approach seems correct. @anothem can we implement the minimum changes needed to match with @Serchinastico's approach to merge this PR and publish a new library version?

Yes, I'll have a look and update :)

Alright, I gave it a shot based on what we talked about. Let me know what you think :)
@Serchinastico there seemed little point in making an extra response object for permanently-denied, since it was being returned in the same method, so I did a single response one with a boolean flag. Hope I didn't misunderstood what you intended.

Besides the very minor issues the PR looks great to me! :+1:

Thanks @anothem! Great PR & discussion!


Define full set of technical requirements for _colors functionality in explorer

We'd like to determine the requirements for the _colors functionality in explorer for inclusion in schema 4.0. More context here.
Please list out the technical requirements so we can pass along to the DP team.

@signechambers1 @dsadgat - while the schema will define the requirements for curators, my understanding is that data-vis is now responsible for creating a CXG validation module that can be called from cellxgene-schema CLI to enforce such requirements. Is there a tracking issue?

I'd recommend just using:
do or do not (there is no try) _colors to document requirements that you want me to include in schema 4. I'll make the appropriate edits.
_colors must be validated is the placeholder issue for your CXG validation.

Alec sent to Signe


feat: add analysis.transformAST hook

TL;DR: Adds a transformAST callback that lets consumers inspect and/or modify the analysis step.
When processing a code bundle, it's often times useful to statically analyse the code to extract additional information, and potentially modify it to conditionally remove dependencies or perform different types of optimisations.
I know that this is not part of the scope of NFT, and there are a plethora of tools out there that let you do this on top of the dependency tracing step, but lexing and parsing are expensive operations that one would avoiding duplicating if possible.
Since NFT is already doing those operations when analysis is enabled, this PR adds an optional transformAST hook that lets consumers read and optionally modify the AST for each file before dependencies are traced. This callback receives the path and the AST root node.
This callback is supplied via the analysis.transformAST property, and it's an optional hook in line with the existing readFile, stat, readlink, and resolve callbacks.
I tried to do this in the least invasive way, with a minimal change in the implementation. If you have any thoughts on how this could be done different, I'll be happy to make those changes. If you'd rather not add this at all, that's also totally understandable, but I think this could be a useful feature so I wanted to propose it.
Thanks!

Thanks for the swift reply! I missed the notification somehow. 🤦🏻

I'm not sure this is solving the problem.

I think it does, because said tool can call NFT and use the transformAST hook to access the AST that NFT computed and, optionally, make changes to it before NFT starts processing it.

Instead, it would be better to have a new hook called parseAST() (similar to readFile() but instead of reading the file it can replace the acorn parse).
This would allow you to reuse an existing AST parsed by another tool (assuming its acorn compatible).

I have also considered that option, and I think the shape of that parseAST() hook would indeed be more aligned with the existing hooks.
I didn't go for it in this PR because I think it makes things more complex. NFT is tightly coupled to the parser, as it extends it with additional modules, provides its own set of options, and uses it to not only parse but also detect the module type using multiple parsing runs.
If we allow the parsing to happen outside of NFT, the calling module would need to have acorn and all its surrounding modules as dependencies, with the right versions, with the risk of breaking the tracing process entirely if there's a new version of NFT that has different expectations about the parser. The only way for the calling module to test for this type of regression would be to run NFT's entire test suite with its own parser, which is not trivial.
In contrast, if we keep the parsing in NFT but expose it via the transformAST() hook, the calling module can assert, as part of its test suite, whether the data it receives on that hook has changed between versions of NFT. It has the guarantee that NFT will continue working, because it's using the parser exactly as it needs, and puts the onus on the calling module, which is easier to work with because it lives in the user space. Also, there will be no additional dependencies (and the hassle of managing their versions) in the user code.

I also don't love the idea of exposing the AST because that means we're stuck on acorn forever and can't easily swap for a faster alternative.

With the solution I'm proposing, you could easily swap acorn with anything else, and it would be up to the consumer to adjust their code to use the new AST format you choose.
Having said all that, I can rework the PR to use whatever option you prefer.
Thanks!


Normalize file paths when checking the compilation database

This is relevant on windows, where the compilation database may contain
paths with forward slashes.

I just realized that, besides my original problem with a mix of forward and backward slashes on windows, the handling of relative paths was wrong. So, I force pushed a new commit fixing both birds with one stone.

Thanks very much.


Google sign in not working

Describe the bug
Unable to sign in using app passwords or account with no 2fa enabled.
Error just shows
Username/Password is incorrect. If your google account has 2FA enabled please generate app password (https://myaccount.google.com/apppasswords). If authentication still fails refer to https://github.com/leikoilja/ha-google-home#troubleshooting
Version of the integration
If you are unsure about the version check the github release here.

1.10

Logs

Add your logs here.

@mossychop, please check Troubleshooting section, especially regarding app password.
Also, please see this thread, since there are known issues even with app-passwords due to Google randomly blocking user requests. Best approach for you is to get master_token in isolation and then use this integration using the master_token instead of username/passowrd

Thanks for the help - I have been through all of the troubleshooting (which is pages and pages linking to other pages). The only solution seems to be to get the master_token which I have followed the instructions and don't seem to have python on my Windows machine, this is a bit beyond my skills.
I have tried multiple google accounts with and without 2FA enabled. Happy to provide whatever logs needed - I've lost a few hours on this so any help appreciated.


Python LightGBM: label attribute of training dataset changes from pandas series to numpy array after model training

Description
As per the output and code below the type of label attribute in the dataset changes from pandas series to numpy array after I use the dataset for training a LighGBM model. This creates an issue if I want to use the label attribute in follow-up evaluation/postprocessing steps. I would expect the algorithm to not change input parameters 😄 .
lgbtrain.label type before training:
 <class 'pandas.core.series.Series'>
lgbtrain.data type before training:
 <class 'pandas.core.frame.DataFrame'>
...
lgbtrain.label type after training:
 <class 'numpy.ndarray'>
lgbtrain.data type after training:
 <class 'pandas.core.frame.DataFrame'>

Reproducible example
import numpy as np
import pandas as pd
import lightgbm as lgb
from lightgbm import Dataset
import cloudpickle

train_df = pd.DataFrame(
    {
        "id": np.arange(0, 20),
        "cont_feature": np.arange(0, 20),
        "target": [0] * 5 + [1] * 15,
    },
)
lgbtrain = Dataset(
        train_df.drop(columns=["target", "id"]),
        train_df["target"],
        free_raw_data=False,
    )

print(f"lgbtrain.label type before training:\n {type(lgbtrain.label)}")
print(f"lgbtrain.data type before training:\n {type(lgbtrain.data)}")

model = lgb.train(
    train_set=lgbtrain,
    params={},
)

print(f"lgbtrain.label type after training:\n {type(lgbtrain.label)}")
print(f"lgbtrain.data type after training:\n {type(lgbtrain.data)}")

Environment info
LightGBM version or commit hash:
lightgbm = "3.3.2"
Command(s) you used to install LightGBM
pip install lightgbm

python = "3.9.7"
cloudpickle = "2.0.0"
pandas = "1.4.1"
numpy = "1.22.3"

I would expect the algorithm to not change input parameter

Thanks for an excellent write-up with clear reproducible example!
For both this issue and #5098 , I think you may have missed a detail of how lightgbm training works. It is not that "the algorithm" is making such changes.
A LightGBM Dataset object is an alternative representation of the provided raw data which has been passed through some pre-processing. You could reproduce this behavior by running lgbtrain.construct() directly in the provided coded.
Please see these descriptions for more details

https://stackoverflow.com/a/66004139/3986677
https://github.com/microsoft/LightGBM/issues/4965#issuecomment-1019344293

I don't recall if it's intentional that .label (the public attribute on Dataset) is stored as a numpy array. Maybe another maintainer will remember. Otherwise, I'll look through the package's code at some point in the future and respond.

Can you provide more specifics on the way you're using the Dataset object, and why .label being stored as a numpy array is problematic?

Dataset attributes like weight, label, init_score have to be re-created after underlying data are passed to the cpp side. I think numpy was chosen as universal format that should be sufficient in the majority of cases.
https://github.com/microsoft/LightGBM/blob/c991b2bcdddf0c38b9120510ec81f58887b0bb72/python-package/lightgbm/basic.py#L2148
Refer to #2390 for the answer why originally passed underlying data might be changed after constructing Dataset object.


Hook DebugInfo.show_tile_labels to real functionality

Since the show_tile_labels in the DebugInfo can now be toggled by a key-chord, that variable should be checked by the system that shows the tile labels

No longer relevant.


Red underline over all code in class

I've got it sometime after code changes. I see message "Test case is not run" even i have someting like
"(new SomeClassTest())->run();" at end of file. I have Windows, just for case.

Yes, this inspection seems to be buggy. I'll probably drop it altogether rather than trying to find out what's wrong. It doesn't add that much value anyway, because Tester already gives a hint if the test doesn't execute any assertions

Agreed, it's super-annoying with minimal value. But do you get this message(missing assertation) even if TestCase is not actually run?

Yes. Provided that Tester recognizes the file as a test (and there is a working inspection for that 😉), it marks the test as failed if it does not execute any assertions. And, trivially, when the contained TestCase is not run, it executes no assertions.


Silkscreen lines don't move when applying manual edit events

/bounty $20

/attempt #84 i think i found a fix


We need Web Arithmetic expression calculation service

Solved in https://github.com/m4tveevm/GoCalc/pull/2


utils: refactor Fetch-Dependencies for future changes

Future work to enable Android SDKs requires fetching additional dependencies (e.g. Android NDK). Refactor the fetch dependencies method to allow us to share the download logic rather than replicating it for each piece. This will also allow us to fetch the Python dependency for the ARM64 toolchain cross-compilation.

@swift-ci please smoke test


signalbackup-tools: use new --config option in build script

Description of changes
Switch from setting environment variables used by build script, to using the new built in --config option.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 198099 run on x86_64-darwin 1

1 package built:

signalbackup-tools

Result of nixpkgs-review pr 198099 run on aarch64-darwin 1

1 package built:

signalbackup-tools

Change made in #202431.


Async combinators

Partially fixes #244 (Probably that issue needs to be broken down in two: 1) for what can be done now 2) what can be done in the future like async closures and taking by ref.
Also unimplements Unpin for all and any combinators becasue now we have a future cached that may not be unpin.

This is very exciting; thanks for putting in the work!

@yoshuawuyts can we r+ #263 so this one can be updated and move on from draft?

@yoshuawuyts fixed, but the for_each example is now cringe. Idk how to dodge this kind of capturing trouble with the support from the language we have at hand r.n.

Dang, it seems that CI went and broke between the last commit and the most recent one. Currently trying to fix parts of it through #280, but I'm thinking I should probably just manually run the tests on this PR to confirm things are good and then merge (:

@montekki could you try rebasing on master?

@montekki could you try rebasing again?

@yoshuawuyts @montekki what is the state of this?

@dignifiedquire this still needed? merged with master, going to do required cleanups a bit later

As far as I know, this was postponed to the next major version: https://github.com/async-rs/async-std/pull/496#issuecomment-552377963 (perhaps because async closure is incomplete)

Ok no rush then.

Ok, at this point I think that I'd rather re-implement it from scratch when time comes than continue attempts to update this PR so closing.


Set star border style

Hi! Thanks for your project!
I need stars to be transparent with white borders when rating not set. Is there any way to do this?

Currently, our plugin is not supporting transparency layer. We will take this as an enhancement in our next release and we will release it.

[Color transparency] (https://github.com/senthilporunan/jRate#color-transparency) feature is added


Game history replay snippet

A simple snippet created with pyglet helping to debug an agent. It takes saved environment's history and re-plays agents' actions and states in visual UI.

gym 0.17.3 requires pyglet<=1.5.0,>=1.4.0, but you'll have pyglet 1.5.8 which is incompatible.
Successfully installed attrs-20.3.0 certifi-2020.11.8 chardet-3.0.4 cloudpickle-1.6.0 gym-0.17.3 idna-2.10 importlib-metadata-2.0.0 iniconfig-1.1.1 numpy-1.19.4 packaging-20.4 pluggy-0.13.1 py-1.9.0 pyglet-1.5.8 pyparsing-2.4.7 pytest-6.1.2 requests-2.25.0 scipy-1.5.4 six-1.15.0 supply-chain-env toml-0.10.2 urllib3-1.26.1 zipp-3.4.0

It installs the packages, but complains about incompatibility. I think it is not a big deal actually but could probably puzzle users a bit.


t! should return &'static str instead of String

Returning probably have a program-wide lifetime hardly encoded string as String is not a good way I think.
Every time I called the t!() it creates and gives me ownership of the same string again and again.
I also can't use it where I need to temporarily create a String and take it's reference .as_str() to the function:
set_toast_message(t!("Saving settings failed").as_str());

Error:
set_toast_message(t!("Saving settings failed").as_str());
    |                         -----------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------- temporary value is freed at the end of this statement
    |                         |                      |
    |                         |                      creates a temporary value which is freed while still in use

I think returning &'static str instead of String for program-wide available translations is good way to go.

Because there have some string template case, need to create new string.
For example:
hello: Hello %{name}

t!("hello", name = "Jason")

You are right 👍🏻
For those who have the same problem, instead of directly using t!() in the function parenthesis, just define a let variable before:
let msg = t!("Saving settings failed);
set_toast_message(msg.as_str());


Replace interface Ford Sync RAPI

API's use different naming with core. Should be renamed to SmartDeviceLink RAPI

Fixed with the merge of #101


Remove misleading sentence from the javadoc

Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle merge

The merge queue build has started. Click here to see all failures if any.


Add default value to ScheduledTasksCleanup initialize argument

Fixes: #2255
What tests have you run against this PR?
unit tests
manual tests

Looking at https://github.com/cloudfoundry/bosh/blob/master/src/bosh-director/lib/bosh/director/jobs/scheduled_events_cleanup.rb I'm wondering if ScheduledTasksCleanup#initialize should look the same, i.e. getting the number of tasks to cleanup as parameter?

@voelzmo the number to delete is calculated at the time of perform, and has_work will use the same calculation. https://github.com/cloudfoundry/bosh/blob/master/src/bosh-director/lib/bosh/director/jobs/scheduled_tasks_cleanup.rb#L25