collecting average performance of multiple runs

I want to perform performance degradation tests using ReFrame. Therefore each application need to run multiple (X) times and afterwards the average performance need to be compared with reference values.
I tried to implement the test as follow, but there seems to be a conceptual issue.

instantiate the test class (X times)

def _get_checks(**kwargs):
    PDT_rep = 2
    ret = []
    for i in range(1,PDT_rep+1):
       ret.append(IorCheck(i, PDT_rep, 64, '4m', '8g', '/scale_akl_nobackup/filesets/nobackup', 'POSIX', **kwargs))
    return ret

each instance add the performance value to an array

 self.perf_patterns = {}
        self.perf_PDT_values['write_%d'%count] = sn.extractsingle(
                r'^Max Write:\s+(?P<write>\S+) MiB/sec', self.stdout, 'write', float)

the X instance calculate the mean value and uses perf_pattern to compare

        if count == PDT_rep:
            sum_r = ''
            sum_w = ''
            self.perf_patterns['PDT_read_{0}_{1}_{2}'.format(procs,t_size,b_size)] = ""
            for i in range(1,PDT_rep+1):
               #sum_r += self.perf_PDT_values['read_%d'%i]  ## this also does not work
               self.perf_patterns['PDT_read_{0}_{1}_{2}'.format(procs,t_size,b_size)] += self.perf_PDT_values['read_%d'%i]

as a result I get:
  for m in finditer(patt, filename, encoding):
 File "/scale_akl_persistent/filesets/home/schoenherrm/projects/NeSI_ReFrame/reframe/utility/sanity.py", line 533, in finditer
   with open(filename, 'rt', encoding=encoding) as fp:
TypeError: expected str, bytes or os.PathLike object, not NoneType

Could you clarify the issue or do you have a simple solution running the application multiple times and evaluating the performances?

Hi @mand35, the error you are getting it seems to be caused by an implicit evaluation of a sanity expression that has happened early (perhaps in your __init__). FYI, a sanity expression (which is actually an expression whose evaluation is deferred) may be implicitly evaluated if (a) you try to iterate over it, (b) take its truthy value by calling bool() explicitly or implicitly and (c) if you try to print its result. In your code snippets I can't see any of these cases, so I'd like to see the full stack trace and the test file to check exactly the cause of this problem.
Nonetheless, even if this was working what you are trying to do wouldn't work for several reasons:

The self.perf_PDT_values is an instance variable of each of your tests. How do you intend to share this?
Sharing variables across tests is not straightforward as well, because the instances that are returned by _get_checks() are not those that are actually run by the framework. The framework deep copies those every time for each programming environment it tests. You may perhaps achieve sharing using global variables inside your test file.
The order that tests returned by _get_checks() will run is not guaranteed if you use the asynchronous execution policy, so the X-th test may not be actually run last.

Thus, the easiest way to achieve what you want is to wrap IOR in a shell script that would invoke it many times and use ReFrame to run this script and collect the produced data.

Hi @mand35, did you finally manage to achieve your result?

Hi @vkarak, no actually not.
Sure, I could outsource the multiple runs into a script OR analyze single Reframe runs with an external tool, but I would prefer not to do that.
I still look forward to solve the issue. I would like to define and analyze single tests in Reframe, as well as having the single results available in the logs. Furthermore, I would like to be able to analyze over all the runs and compute the average run time.
Since you mentioned, that the framework deep copies the instances, I don't see how global variables solve the issue. Actually, I always get back to the point, where I just have deferred expressions, thus I can not compute with these values.
Do you have another idea?

Hi @mand35, would multiple job steps inside the generated job script help? For example, if the generated script was sth like the following, would that be acceptable for you?
#SBATCH -N 4
...

srun my_bench 100
srun my_bench 200
srun my_bench 300
...

You could then, in a single ReFrame test, analyse the aggregate output as you wish. Though not completely straightforward, it is possible to achieve it currently and in a portable way, i.e., not to hardcode the multiple sruns. Your original request would require to support dependencies among different tests, which is in our roadmap, but not yet implemented.
Could you share a stand-alone stripped down version of your tests that demonstrate the problem you're getting, so that I can have a better look?

Hi @vkarak, yes multiple generated job steps in the generated job script would help. We could then search for all instances of the performance objective (which can be done by using sanity.extractall).
We would loose the single values, which would be nice to store, but this could be acceptable.
Nevertheless, the idea also is: once defining complex benchmarks with a complex setup, use this as the usual BM case and additionally simply create a multi-run on top of that.
Is there an easy solution I can define multiple job steps in a single ReFrame test?

Hi @mand35,
Here is the code snippet that would allow you to use multiple sruns inside the generated script:
    def setup(self, partition, environ, **job_opts):
        super().setup(partition, environ, **job_opts)
        launch_cmd = ' '.join(self.job.launcher.command(self.job))
        self.job._pre_run += ['%s cat /proc/cpuinfo' % launch_cmd,
                              '%s nvidia-smi' % launch_cmd]

The use of _pre_run is a bit hacky for the moment, but there is no other way. At some point recently, we have moved the pre_run/post_run to the RegressionTest, hiding their counterparts inside the job instance and we "lost" this functionality. I've scheduled this to be fixed in the upcoming release.
Now, regarding your test, I was able to run it successfully (i.e., without any errors) both with 2.12 and the current master (2.13-dev0). The only change I had to make (apart from adding my system) was to create unique test names. From 2.12 onward, we don't allow loading tests with the same name, because this creates problems with the asynchronous execution policy. Which version were you using?
Here is my change:
    def __init__(self, count, PDT_rep, **kwargs):
        super().__init__('hostname_check_%s' % count, os.path.dirname(__file__), **kwargs)

Btw, in the upcoming release, there will be no need to use this boilerplate code or the _get_checks() method to define your tests.

Hi @vkarak,
thanks for the hints.
I don't get it completely, what is the difference between _pre_run and pre_run?
The pre_run idea is nice, I used it already a couple of times, but never with a parallel code.
Unfortunately, in my case I don't get anything back from self.job.launcher.command(self.job)
In the created job script I only see at that position [].

I don't get it completely, what is the difference between _pre_run and pre_run?

The job._pre_run is just a copy of the self.pre_run in your test. This is a private field and, generally, you should not use it... I've just proposed it as a workaround until we add proper support for multiple parallel launches.

Unfortunately, in my case I don't get anything back from self.job.launcher.command(self.job)
In the created job script I only see at that position [].

If you are running on your login nodes or with --force-local, that's expected. Are you sure that it happens also when your scheduler is SLURM?

@mand35 I'm closing this, since it's practically fixed in 2.13.


Wifi menu dosent render with the correct width and height

it has a weird form in the left corner of the screen and with wrong width and height

the wofi theme its not the problem ig, i tried without the style.css

I'm not sure what might be going on. Which Wayland compositor are you using? I haven't even done anything with wifi4wofi in a bit since I don't even use it myself anymore (part of the reason I haven't done any work on it lately) but I can definitely investigate a bit more.

OK, I'm at a little bit of a loss here. I didn't think I'd need to ask, but which Linux distribution are you running?
Since it's happening for you in both Sway and Hyprland, I don't think I'll need those versions but give those to me just in case, too.
I'm here on Hyprland on NixOS Unstable Branch and it's working fine for me.
Which Wofi theme is that, too? Just so I can replicate what you've got on my system.

im on arch linux, on sway-1:1.8.1-1 version, and the wofi theme its catpuccin theme from catppuccin's official github

thank you!

Just to be sure, what does your ~/.config/wofi/wifi look like? I don't think that's the problem, but I just want to be sure.

Config for wofi-wifi-menu
position values:
1 2 3
8 0 4
7 6 5
POSITION=3
#y-offset
YOFF=10
#x-offset
XOFF=-65
#fields to be displayed
FIELDS=SSID,IN-USE,BARS,SECURITY

OK, thanks. Just tested it out and that doesn't seem to be the problem. I will keep investigating.

Where did you get the catpuccin theme for wofi, btw? Becasue I cannot find it on the catpuccin github.

Awesome! Thank you!

this is smth that appears when i run the script, if it helps,
(wofi:40981): Gtk-CRITICAL **: 19:34:55.470: gtk_widget_set_size_request: assertion 'height >= -1' failed

That happened with the original script I forked it from too.
So I installed the catpuccin theme. My YOFF=17 and XOFF=0. XOFF=-65 put it partially off of the screen for me.
But that's not what is happening for you. Your window size is just not quite right. I just did a temporary work around where it forces the height to 500px. I will need to work on the script further to make this more customizable. I'll have this pushed in a bit.

OK, pull the latest and let me know if it fixes the issue for you.

strange, the same thing

maybe i dont have a package installed, or smth, idk whats the problem

I'm not sure. It seems to me that there might be something in some configuration keeping it from being 500px but I'm not sure what it would be.
Do you have something that's common in both the Sway and Hyprland configurations that might possibly be effecting it? Just a guess.

Actually I'm finding the height setting I'm putting in seems to have no effect on my system too. Investigating further.

So it seems there's something going on your system's configuration (probably something with the compositor configs themselves, both Sway and Hyprland) and I don't have that going on here, so I can't really replicate the issue.
So until I know more, I won't be able to fix this specific issue. Perhaps someone else might know what's going on with it.
I did fork the script and worked on it initially while on Arch Linux, and I don't think the distribution is the issue, even though I'm not on Arch anymore.


Removed the last bits of dependencies on localization manager

Removed localization manager dependencies for initialization of EntitySpawnWindow.

Hi, this PR is a follow up to the issue on removing localization manager dependencies (specifically, using the other EntitySpawnWindow constructor that does not take in a localization manager, in AdminMenuWindow and SandboxManager ). However during the build test, there seems to be some issue with SpriteComponent's icon. The following log message was shown:
Content.Client/GameObjects/Components/Kitchen/MicrowaveBoundUserInterface.cs(92,92): Error CS1061: 'SpriteComponent' does not contain a definition for 'Icon' and no accessible extension method 'Icon' accepting a first argument of type 'SpriteComponent' could be found (are you missing a using directive or an assembly reference?)
Any help is appreciated!

you need to update the submodule. this error come from a recent pr removing the iconcomponent. you're content-repo is up to date, your submodule is not.

Got it, thanks!


How can I implement the mod?

As the title suggest, I don't know how to implement this mod.

Hello?????

Hi, sorry for the wait. The mod is implemented through the Modrinth repository.
maven.modrinth:seasons-api:{version}

https://support.modrinth.com/en/articles/8801191-modrinth-maven


Support consuming a configured delete key

Some devices with physical keypads still do not provide a native "delete" key—they may only provide something like "back" which just returns to a previous screen.
Maybe K9 should consume the delete key by default, allowing devices without the built-in support of a delete key to perform deletes.

This may not be necessary after all—I have some reports from Qin F21 users that the key mapping solves this problem.

Is this something that could be added in an update?  I've tried a few different keymappers and couldn't find one that deletes text.  Love your work!

@SlingShot713 What phone are you using?  Do you know which key you want to use for delete and which keycode it's sending in Android?

@danielshorten I'm using a f22 Pro (android 12).  I'd like to use the back button for backspace while using the keyboard.  I believe it's keycode 4 & 67.

@SlingShot713 Have you tried the procedure I outlined in the README for updating the key mapping for K9T9?  It seems that F21 users have been able to get the back key working this way.

Just to follow up.  I was able to get working backspace functionality by using the "Key Mapper" app.  I set the back button (trigger) to input code 67 (action) when the K9T9 keyboard is chosen (constraint) & long press the back button to "go back".  Retains full functionality of the back button and gives me access to backspace.
Love your keyboard man.  Look forward to multi-tap in a future update.  Any way to donate to you?

It does, I just tested that too.  I saved a text file in the same folder as adb and can just copy paste the text for now until I can figure out a more elegant solution.,

@mbg71, @SlingShot713 Thanks for the feedback.  Sounds like there's room for improvement on the delete key handling.  I'll look into that.
@SlingShot713 Thanks for the kind words!  Right now life is only set up for me to work on this in my very limited free time, as a labour of love.  In the future if things open up a bit donations may be helpful 🙏

@mbg71 @SlingShot713 I'm having a tough time reproducing this on my devices—different key setup!  However, I did a bit of digging, and I published an updated version with a patch to the handling of the "key up" event for the back key.  Looks like the default implementation in InputMethodService (which I was using) requests some hiding/cancelling for KEYCODE_BACK.  I made a change to avoid calling that code if the IME says it managed to delete something.
Would one of you be able to give that version a try and let me know if there is any improvement on the F21/22?

Sure!  But I’ll be out of town for a few days .  Wouldn’t be able to test until I get back on Monday.  Happy to help.

@mbg71 Thanks for giving it a shot.
Yeah, I've looked through that code a few times and it's still unclear to me what's being done to handle the back key differently.  That IME is pretty aggressive in its key interception.  I'm trying to only be as aggressive as I need to be.  I'll keep this on my radar and try to think of a way I might be able to reproduce it on a device on my end.

@mbg71 I tried again to reproduce this—even installed it on my Samsung A5 and mapped delete to the back button... and it seems to work normally.
I remembered a comment I got from another F21 user on Reddit, suggesting that the back button going back in the UI instead of deleting a character was only happening in the default messaging app and not elsewhere in apps or the OS.  Is that the case for you?

Hi Daniel,
Thank you so much for creating this app. I am a total ignoramus in code... I managed to get ADB working so that is good. I don't quite understand how I am meant to push the file over, it comes up with an error.
PS C:\Users\meirr\OneDrive\Desktop\Acts 5\platform-tools_r33.0.2-windows\platform-tools> .\adb push k9t9.properties /storage/emulated/0/Android/data/com.shortendesign.k9keyboard/files/k9t9.properties
k9t9.properties: 1 file pushed, 0 skipped. 0.0 MB/s (433 bytes in 0.009s)
adb: error: failed to copy 'k9t9.properties' to '/storage/emulated/0/Android/data/com.shortendesign.k9keyboard/files/k9t9.properties': remote No such file or directory
I have been trying to chop and change the file directory to head towards the device.
I have tried copying the file manually to the device as a properties file in the folder suggested, I even made a folder called "k9t9.properties" but it didn't do anything.
I changed the code in the file to have both:
key.DELETE=67
key.DELETE=4
didn't work.
I am assuming that I have to push the file but I am clearly making some mistake,
please help me out!
I have got a Xiaomi zmi Z1
thanks

@Meir96 Firstly, the program expects that you'll only have one key code configured for DELETE, so I believe you'll want the key.DELETE=4 line for your ZMI Z1.
The method of copying the settings file is admittedly a bit awkward, and I know that I've had to adjust the path for certain devices that I tested with.  However, I'm fairly certain that the path I listed in the the README worked when I tested on my own ZMI Z1.  Have you installed the K9T9 APK before attempting to copy the settings file?

@Meir96 You might also try
adb push k9t9.properties /mnt/sdcard/Android/data/com.shortendesign.k9keyboard/files/k9t9.properties

Hi,
Thank you for responding so quickly!
Yes the app is installed, and I tried to copy the file across afterwards. I saved the file as a TXT doc and then renamed it to k9t9.properties.
I then tried using that pathway but it didn't work.
I don't have an SD card to work with currently.
Can't I just copy and paste the file to the destination?

Does your ZMI Z1 allow access to that part?

@Meir96 No, that's why I had to push it using adb.

Ok so why in the world do I see it on my zmi

I have been trying to force stop the app, reset the app via adb. still no go, I will try that pathway again and see if it works

Something I don't understand in the pathway is the "emulated" part

Is there a way to re-map the keycode directly via ADB?


Print more useful error msgs to syserr for service provider errors

Fixes #859
For example, incorrectly configuring a remote enclave/key vault results in a generic Provider com.quorum.tessera.p2p.P2PRestApp could not be instantiated msg presented to the user.  By also printing the cause's msg, the BeanCreationExceptions msg is printed, showing the user the exact cause of the error.
This change reintroduces behaviour present pre-0.10.0.

Codecov Report

Merging #858 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #858      +/-   ##
============================================
+ Coverage     99.44%   99.45%   +0.01%
  Complexity     2076     2076
============================================
  Files           311      311
  Lines          6096     6095       -1
  Branches        312      311       -1
============================================
  Hits           6062     6062
  Misses            5        5
+ Partials         29       28       -1

Impacted Files
Coverage Δ
Complexity Δ

.../quorum/tessera/sync/SyncResponseMessageCodec.java
100% <0%> (+3.22%)
5% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Create a software version section for stable v21 release.

Preview is available here:http://developers-pr589.previews.kube001.services.stellar-ops.com

@mollykarcher,  could you please take a look at the Platform software versions?

Preview is available here:http://developers-pr589.previews.kube001.services.stellar-ops.com


Revision delays

I've found using Shopify's Hydrogen (with React 18 server components) that caching (or some other mysterious goings on) is causing previews to not be immediately up to date. This option allows for a delay between revisions and the automatic reload to compensate for this.

I wonder if we could simplify this config API by making the value of revision: boolean | number
You'd need to make sure the plugin evaluates 0 as 0 ms as well :)
If you agree, IWBN if you could update the Readme as well and we'll merge :)


Django Sites usage with single-site projects

Hi there! I'm considering using django-activity-stream for my project, it seems to fit perfetcly except one little hiccup — Django Sites framework requirement.
I noticed that django.contrib.sites is only being used in a couple of feed view methods. Would it be possible to only require Sites for projects that do have multiple sites (i.e. already have Sites installed) and for simpler projects use domain information from the request?

Also for the multiple-site projects there're alternative approaches (e.g. http://niwinz.github.io/django-sites/latest/) and it would be nice to not have to use a single package but have some flexibility. Although this is not my problem currently, just a thought.

I guess that's a no then :smile:

Oops closed by mistake

Hi!
I'm also interested in this feature. @justquick, would you be open to a PR?
Thanks,
Guillaume

yes please PR any ideas


remainder inside the makeInstallment function

We see that there can be remainder when distributing installments.
Seems the remainder can also be after _distributeTokensForPrivateOffering function working.
I'd propose to calculate that as well and then return it to stake[PRIVATE_OFFERING].

Fixed in https://github.com/poanetwork/dpos-token/commit/85edf0db060aa42f4fca16128029d3668887ac90

@maxaleks There are too many changes in that commit, so they require to review the entire code. Could you please revert the changes from https://github.com/poanetwork/dpos-token/commit/85edf0db060aa42f4fca16128029d3668887ac90 and then add them again through opening a pull request. I'm not sure they are all required for this fix. We just need to calculate remainder inside the _distributeTokensForPrivateOffering and add it to stake[PRIVATE_OFFERING] (there should be 3-4 lines of code changed).

Done in #28.


Values of exported variants of instantiated resources are not consistent depending on when they are accessed.

Tested versions
v4.2.stable.official.46dc27791
System information
Godot v4.2.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3080 (NVIDIA; <IP_ADDRESS>34) - Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz (16 Threads)
Issue description
Issue:
When a packed scene is instantiated, exported variables have the default value during the _init() function, but have the correct exported value when accessed from another script.
Expectation:
I would expect the value in all 4 outputs to be the same in the reproducing steps, but when the value is accessed from _init() or a function called from _init() it is different.
Applicability:
This means that in order for an object to calculate some value before it is added to the tree, the instantiating script must call a function rather than the instantiated object being able to call the function from _init()
Steps to reproduce
An object with the following script, saved as a packed scene with the test_var set to any other value (1).
extends Node3D

@export var test_var:int = 0

func _init():
	print("Object init says var is: " + str(test_var))
	check_test_var()

func check_test_var():
	print("Object function says var is: " + str(test_var))

A spawner with the following script
extends Node

func _ready():
	var instanced_object = load("res://test_object.tscn").instantiate()
	print("Spawner says var is: " + str(instanced_object.test_var))
	instanced_object.check_test_var()

Produces the output
Object init says var is: 0
Object function says var is: 0
Spawner says var is: 1
Object function says var is: 1

Minimal reproduction project (MRP)
MRP_init_test.zip
(Not necessary, works in brand new project)

This is expected, exported variables are assigned after _init (before NOTIFICATION_SCENE_INSTANTIATED):

@dalexeev thanks, I needed to automatically run something but needed exports to be set. Is there any equivalent for custom resources?


Accept kwargs to endpoints

See https://github.com/rigetti/rpcq/pull/80.

Specifically: we'd like to eliminate the Request objects from the message spec by promoting their slots to keyword arguments. This requires a bit of migration / BC work, which this issue is the first step toward.


IOS blocked by a firewall

the stream was unable to connect due to a network error. make sure your connection is not blocked by a firewall

@nitocolombia I'm facing the same problem. Did you find the solution?

Hi it's 2018 October now, I'm facing the same problem ? can any one using this repository answer to me?


[Bug] white screen, and dev tool got two error message

Describe the bug
white screen, and dev tool got two error msg
"Uncaught (in promise) TypeError: Cannot read properties of null (reading 'noty') at app.js:14678:38"
"Uncaught ReferenceError: $app is not defined at about:blank:1:1"
I tried re start my computer
I tried to re-install it and tried current and one previou version and it still no work.
This issue after I update the new driver for my GPU but I tried to downgrade back to previous version.
I also tried strart as admin administrator
......
To Reproduce
Any time run it
Screenshots

What version you are running
Version [20230918, 20230730]
system: windows 11 22621.2428

I del the userdata file in C:\Users****\AppData\Roaming\VRCX and it work now

Only the userdata folder? or everything in Roaming\VRCX?

Oh interesting, thanks for the info.

I'm sorry, I might have made an incorrect judgment maybe. I just tried cover my old VRCX.sqlite3 for restore my data and it cause crash, but the userdata folder I deleted, so I can not try it again. Maybe it not because of the userdata, is VRCX.sqlite3

really helpful


Error while trying to run 0xPolygonID/js-sdk-example script from GitHub.

We're trying to run 0xPolygonID/js-sdk-example script from GitHub. It works fine for all networks we've aimed to support but not Polygon zkEVM Testnet for a reason which is still unclear to us. Basically, we're getting this error when trying to call transitState method of the StateV2 contract: "Zero-knowledge proof of state transition is not valid" We're unsure why zk proofs are invalid considering that we're using the exact same script as we did with other networks, the only difference is the prefix of the DID and the SC address. Could someone assist us in resolving this?( https://0xpolygon.slack.com/archives/C03KR37115L/p1697792791158479)

which type of identity is used?  (polygonid:zkevm:test)
Ans:polygonid:zkevm:test
2.are you sure that verifier code that you deployed on zk evm testnet is the same as verifier on polygon.
Ans: yes
3.can you give a contract address, so we can reproduce the issue.
Ans: 0x07c5a5b65d9bfc8f6f40d74d14da64561204e5e7

ZK EVM at the moment do not support parting, so zk verification is not possible. Soon it will be supported, but before it will be available it is not possible to verify ZK proofs on ZKEvm

Closed: reason -  support of  ecPairing on ZKevm


[bug] Layout Issue for Dashboard

Make sure layout is rendering correctly

@hkacha any updates on this task?

this issue is occurring on the Ipad Safari web application, the sidebar is not showing the proper category names in portrait mode. similarly, the UI of the graphs is not proper or messy in mobile web app.


-v / --verbose does not behave as specified in --help

Output of restic version
restic 0.14.0 compiled with go1.19 on linux/amd64

How did you run restic exactly?
$ restic backup --help
$ restic backup <source> --repo <target> --verbose 3

What backend/server/service did you use to store the repository?
Local.
Expected behavior
I expect -v / --verbose to be able to handle --verbose n form without the need for = symbol.  The reason for this is not only the help text suggests its usage this way (on the left, it says -v, --verbose n, on the right it illustrates as --verbose=n) but virtually all other flags are able to handle their arguments this way.
Actual behavior
Only --verbose=n form is accepted at the moment.  Using it in the form of --verbose 3 results in ignoring the flag and its argument:
3 does not exist, skipping
open repository
enter password for repository:

Steps to reproduce the behavior
As described above, just pass down a level after the --verbose flag with at least 1 whitespace character between the flag and its argument.
Do you have any idea what may have caused this?
Without looking at the source, I  imagine this is caused by the fact the -v / --verbose can be defined multiple times, as well as it can take an explicit argument.
Do you have an idea how to solve the issue?
The simplest solution would be to set expectations right - if -v / --verbose should use the = then that's how it should be presented in the --help.
The more complex solution would be to support the above form described in the 'Expected behaviour' chapter which would very likely mean removing the support to specify -v / --verbose multiple times in favour of the explicit level / times form.
The most complex solution would be to support all forms, defining the flag n times, as well as, being able to specify the level explicitly in both -v=n and -v n forms.
Did restic help you today? Did it make you happy in any way?
So far, definitely :heart:

The simplest solution would be to set expectations right - if -v / --verbose should use the = then that's how it should be presented in the --help.

I guess you're referring to   -v, --verbose n                     be verbose (specify multiple times or a level using --verbose=n, max level/times is 3)? As mentioned in https://github.com/restic/restic/pull/2805 the initial --verbose n help text is generated by the library we use to build the CLI and cannot be changed (https://github.com/spf13/pflag/issues/267).
Breaking the CLI backwards compatibility of the verbose flag is not really an option. This rules out the alternatives to fixing the help text. So essentially, we're stuck here until the formatting for the flag is fixed in cobra (the CLI library).

If Cobra is unable to generate proper help text nor is able to handle the two (or three) different forms then I believe you are right, there's not much you could at this point -- other than migrate to another library if there's any (I'm only slightly familiar with the Go ecosystem).  But that might be too much of a hassle for this flag alone (unless there are others which suffer a similar fate).
On the subject of backwards compatibility -- not sure what your attitude to deprecation warnings and a given time period is, but that might be a solution to slowly remove the repetition pattern and use the explicit form only.  (After all the issue you linked is more than 2 years old and who knows when that bug will be fixed.)
If neither migration nor deprecation is viable, perhaps it's worth explaining in the help text that due to a current limitation in the argument handler the explicit value must be passed down with the = symbol.  Demonstrating it alone is not enough because many, many CLI tools out there are able to handle both --flag value and --flag=value interchangeably, which could easily lead to confusion, like in my case, when one expects based on the generated left hand side and the handwritten right hand side that this might be the case.

On the subject of backwards compatibility -- not sure what your attitude to deprecation warnings and a given time period is, but that might be a solution to slowly remove the repetition pattern and use the explicit form only. (After all the issue you linked is more than 2 years old and who knows when that bug will be fixed.)

I don't see how we could detect this pattern without manually parsing the command line parameters, which is a horribly idea. And requiring everyone to adjust their scripts to work around a single misleading character in the help output seems to be absolutely excessive.

If neither migration nor deprecation is viable, perhaps it's worth explaining in the help text that due to a current limitation in the argument handler the explicit value must be passed down with the = symbol.

Do you have a specific suggestion on how to change the help text?

Demonstrating it alone is not enough because many, many CLI tools out there are able to handle both --flag value and --flag=value interchangeably,

This interchangeability is a result of --flag being configured to require a parameter. If that were the case for the verbose flag, then we'd already have the same behavior.

Do you have a specific suggestion on how to change the help text?

Along the lines of what I said above, something like this could work:

-v, --verbose n    Sets the verbosity level of restic's output.  The maximum
                   level is 3.  This flag can be used in two forms: it can be
                   specified multiple times (without a value) to increase the
                   level, or it can be supplied with an explicit level using
                   the `--verbose=n` form.  (Mind the `=` symbol without the
                   surrounding whitespace - due to a current implementation
                   constraint in the argument handling, the generated example
                   on the left which uses whitespace as delimiter between the
                   flag and the value (`--verbose n`), is in fact invalid.)

But I'm no technical writer, perhaps this could be explained shorter :man_shrugging:

Hmm, that's far too long as help text.
A different idea: would it help to change the left hand side of the option description to the following? Or would that be worse than the current state? I've also included an alternate suggestion for the description, although I'm not particularly keen on nesting brackets.
  -v, --verbose =n                     be verbose (specify multiple times or a level using --verbose=n (including the `=` symbol), max level/times is 3)


It is not possible to build / serve app using parameters for i18n ($$_gendir)

This error prevents any production build that uses the translation tool in cli!
This is not solved by: https://github.com/angular/angular-cli/issues/7113#issuecomment-317523744
Bug Report or Feature Request
- [x] bug report -> please search issues before submitting
- [ ] feature request

Versions.
@angular/cli: 1.2.4, node: 8.1.3, npm: 5.3.0, os: win32 x64
All next in 4.3.1: @angular/animations, @angular/common, @angular/compiler,
@angular/core, @angular/forms, @angular/http, @angular/platform-browser,
@angular/platform-browser-dynamic, @angular/platform-server, @angular/router,
@angular/upgrade, @angular/compiler-cli, @angular/language-service

Repro steps. (windows)
ng new itest
cd itest
npm cache verify
npm install
ng build --aot (result: OK)
edit itest/src/app/app.component.html
<h1> changed to <h1 i18n>
ng xi18n --locale en --output-path localize -xmb --out-file messages.en.xmb (result: OK)
ng build --aot --locale en --i18n-file localize/messages.en.xmb --i18n-format xmb (result: ERROR)
The log given by the failure.
ERROR in Unsupported
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'c:\angular\itest\src'
 @ ./src/main.ts 3:0-74
 @ multi ./src/main.ts

Desired functionality.
build or serve application without any error
Mention any other details that might be useful.
The same error when I try to run ng serve with i18n options.
Related to comments: https://github.com/angular/angular-cli/issues/7125#issuecomment-317683022 and https://github.com/angular/angular-cli/issues/7125#issuecomment-317715095
Steps also here: https://stackoverflow.com/questions/45291642/angular-cli-with-i18n-localization-xmb-file

@ocombe can you take a look? It seems that something is not supported, but I don't know what.

Closing this as obsolete/fixed in Angular 5.


Horizontal scrollbar is hard to use and see in dark mode

Issue Type: Bug

Open a SQL file with long text lines in and do a find for some text that appears part way through a long ling.
The text will be highlighted but a tiny hoizontal scrollbar thumb will appear not even a whole bar like the vertical one and only then when you happen to hover over it with the mouse. It's like half the number of pixels in height as the width of the vertical scroll bar.

Because of the difference between it and the vertical scrollbar I'm calling this a bug.
If it's by design then it's a poor UX.
SQL Operations Studio version: sqlops 0.31.4 (e026ab85a72c190cc4ccc834503aa9fe36dd6407, 2018-07-18T02:14:21.826Z)
OS version: Windows_NT x64 10.0.17134

System Info
Item|Value|
|---|---|
|CPUs|Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (8 x 3392)|
|GPU Status|2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: unavailable_softwarevideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled|
|Memory (System)|15.96GB (6.29GB free)|
|Process Argv|C:\Program Files\SQL Operations Studio\sqlops.exe|
|Screen Reader|no|
|VM|0%|
Extensions (3)

Extension
Author (truncated)
Version

ssmskeymap
kev
0.2.0

agent
Mic
0.31.4

profiler
Mic
0.1.2

@peterlukerow thanks for the issue.  This looks like a duplicate of https://github.com/Microsoft/sqlopsstudio/issues/1964.  Please reactive if this is a different problem.

Okay thanks - glad to see it's on October roadmap. If you know anybody on the SSMS team can you give them a prod and tell them to hurry up and finish dark mode - you still need SSMS for various things.


Low performance to get the endpoints for the service

Hi,
We met with low performance issue when create a service and try to visit the service port using kube-proxy.
After some debug, we found that it'll take a long time to retrieve the endpoints information of the service, here is the output using "kubectl describe service", and the "Endpoints" will be "" for more than 1 minute, and we can visit the service port successfully once the endpoints is available.
Could you shed me some light about how we should do the troubleshooting for this kind of issue? seems it's caused by the low performance of api-server? and the endpoints information take long time to be saved to etcd?
Thanks a lot！
root@iZ253wunw7zZ:~# kubectl describe service hw1-avplz --namespace=nkwanglei
W0602 22:22:55.291240    2800 request.go:291] field selector: v1beta3 - events - involvedObject.name - hw1-avplz: need to check if this is versioned correctly.
W0602 22:22:55.291350    2800 request.go:291] field selector: v1beta3 - events - involvedObject.namespace - nkwanglei8lrp: need to check if this is versioned correctly.
W0602 22:22:55.291374    2800 request.go:291] field selector: v1beta3 - events - involvedObject.kind - Service: need to check if this is versioned correctly.
W0602 22:22:55.291414    2800 request.go:291] field selector: v1beta3 - events - involvedObject.uid - b80a60af-0932-11e5-b82c-00163e0057bf: need to check if this is versioned correctly.
Name:			hw1-avplz
Labels:			name=hw1-avplz
Selector:		name=hw1-avplz
IP:			<IP_ADDRESS>
Public IPs:		<IP_ADDRESS>
Port:			port-rrs7-46102	46102/TCP
Endpoints:		port-rrs7-46102	<none>  -> long time to see the endpoints here!
Session Affinity:	None
No events.

This should be very quick-- so my guess is that it's the pods that are slow to come up. They won't be included until they're running and healthy.
If that doesn't answer your question, to help you narrow it down your config .json/.yml files, and your controller-manager log would be helpful.

Hi lavalamp, thanks for your kindly help, as I can see the pods should already be started and running normally. I can check the container log and saw the server started.
Here is the json file for service and replicator:
Service
'''{
"kind": "Service",
"apiVersion": "v1beta3",
"metadata": {
"name": "hw1-0qjo0",
"namespace": "nkwanglei8lrp",
"selfLink": "/api/v1beta3/namespaces/nkwanglei8lrp/services/hw1-0qjo0",
"uid": "d4517856-09c7-11e5-8d1b-00163e0057bf",
"resourceVersion": "10348506",
"creationTimestamp": "2015-06-03T08:09:16Z",
"labels": {
"name": "hw1-0qjo0"
}
},
"spec": {
"ports": [
{
"name": "port-74ni-40231",
"protocol": "TCP",
"port": 40231,
"targetPort": 80,
"nodePort": 0
}
],
"selector": {
"name": "hw1-0qjo0"
},
"portalIP": "<IP_ADDRESS>",
"type": "ClusterIP",
"publicIPs": [
"<IP_ADDRESS>"
],
"sessionAffinity": "None"
},
"status": {
"loadBalancer": {}
}
}
'''
Replicator
'''
{
"kind": "ReplicationController",
"apiVersion": "v1beta3",
"metadata": {
"name": "hw1-0qjo0",
"namespace": "nkwanglei8lrp",
"selfLink": "/api/v1beta3/namespaces/nkwanglei8lrp/replicationcontrollers/hw1-0qjo0",
"uid": "d4508db8-09c7-11e5-8d1b-00163e0057bf",
"resourceVersion": "10348504",
"creationTimestamp": "2015-06-03T08:09:16Z",
"labels": {
"name": "hw1-0qjo0"
}
},
"spec": {
"replicas": 1,
"selector": {
"name": "hw1-0qjo0"
},
"template": {
"metadata": {
"creationTimestamp": "2015-06-03T08:09:16Z",
"labels": {
"name": "hw1-0qjo0"
}
},
"spec": {
"containers": [
{
"name": "hw1-0qjo0",
"image": "<IP_ADDRESS>:8080/test/hello-world:latest",
"ports": [
{
"containerPort": 80,
"protocol": "TCP"
}
],
"resources": {
"limits": {
"cpu": "50m",
"memory": "64Mi"
}
},
"terminationMessagePath": "/dev/termination-log",
"imagePullPolicy": "IfNotPresent",
"capabilities": {},
"securityContext": {
"capabilities": {},
"privileged": false
}
}
],
"restartPolicy": "Always",
"dnsPolicy": "ClusterFirst",
"serviceAccount": ""
}
}
},
"status": {
"replicas": 0
}
}
'''
What log level I should use to collect controller-manager log? for now, I can only some warnings below:
'''
E0603 16:24:25.981512   19888 resource_quota_controller.go:74] Error synchronizing: resourcequotas "dl528888" cannot be updated: the resource was updated to 10359640
E0603 16:24:26.031636   19888 resource_quota_controller.go:74] Error synchronizing: resourcequotas "wangh" cannot be updated: the resource was updated to 10359687
E0603 16:24:26.081357   19888 resource_quota_controller.go:74] Error synchronizing: resourcequotas "wjp719" cannot be updated: the resource was updated to 10359648
E0603 16:24:26.131424   19888 resource_quota_controller.go:74] Error synchronizing: resourcequotas "xds2000" cannot be updated: the resource was updated to 10359646
E0603 16:24:26.182200   19888 resource_quota_controller.go:74] Error synchronizing: resourcequotas "yorkoliu" cannot be updated: the resource was updated to 10359729
E0603 16:24:26.231436   19888 resource_quota_controller.go:74] Error synchronizing: resourcequotas "seanliang" cannot be updated: the resource was updated to 10359678
'''
Thanks!

I think -v=4 should be good to get this message: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/service/endpoints_controller.go#L256
This should help us narrow down whether the endpoint controller is slow, or something else is wrong.
How large is your cluster? Approximately how many pods are you running?

We're running more than 300 pods in a 10 nodes cluster by now, will change the log level and put the log here later, thanks a lot!

Hi  lavalamp, we found that it's probably caused by the low performance on kube-proxy side, we tried the scenarios below:

On all minions/slaves, we start the kube-proxy service; and on a separate host, we also start flannel and kube-proxy service, use this host as the publicIPs of k8s service, so any request will come from this host, so we can hide the k8s master/slave behinde this proxy host.

We stopped the kube-proxy service on all k8s slaves, and use the separate proxy host as the single proxy.

I'm not sure what's the recommended approach to support large number of services, do we need to have multiple kube-proxies and masters to have better load balance?
BTW, we'll use publicIPs and a random service port to create these services and associated rc/pods, and each user can use the publicIPs and port to access there service.
Thanks.

Hi lavalamp, here is the log from kube-controller-manager log using "--v=4", and I'm creating a service with name "hw123":
https://github.com/nkwangleiGIT/docker-node-hello/blob/master/kube-controller-manager-bak.log
The creation of service is about "22:08:42.376079":
I0604 22:08:42.376033   18689 replication_controller.go:351] Finished syncing controller "zzwangsh/mysql-2c1pz" (80.497µs)
I0604 22:08:42.376079   18689 controller_utils.go:119] Controller hw123-sbegc either never recorded expectations, or the ttl expired.
I0604 22:08:42.376194   18689 controller_utils.go:133] Setting expectations &{add:1 del:0 key:nkwanglei8lrp/hw123-sbegc}

The time to finish syncing service is about "22:10:29.636040"
I0604 22:10:29.535102   18689 endpoints_controller.go:258] Finished syncing service "294168881r6vs/lvyao-fg06q" endpoints. (502.314888ms)
I0604 22:10:29.636040   18689 endpoints_controller.go:258] Finished syncing service "nkwanglei8lrp/hw123-sbegc" endpoints. (503.760573ms)
I0604 22:10:29.837167   18689 endpoints_controller.go:258] Finished syncing service "294168881r6vs/wp-host-fckv5" endpoints. (502.568419ms)

So it tool almost 1min 47s  to have the service available, anything we should check futher for this issue?

Thanks a lot!

Thank you for all the details!

The creation of service is about "22:08:42.376079":

The log snippet you included shows replication controller manager creating pods for a replicationController, not a service being created. apiserver's log is probably the best place to look for the canonical service creation time.

The time to finish syncing service is about "22:10:29.636040"

So it takes about half a second for the service's endpoints to be generated. So the time is being lost in either some sort of propagation delay or in starting the pods themselves.

low performance on kube-proxy side

Can you explain how you observed this low performance, and what nature it took?
After looking at your log, I have some more questions so I can better understand your scenario and maybe try to reproduce. How many services do you have? How many replication controllers? Approximately how frequently on average do you start/stop your replication controllers and services?

Hi  lavalamp,
Actually, we're not quite clear about how kube-proxy works, seems it's just create some routing rules in iptable on each kube-proxy node. Looking at the kube-proxy log, seems these rules was created quickly.
The number of services and replication controllers are both over 300, actually we don't start/stop the rc or service frequently, would like to have them running as long as possible.
Thanks.

BTW, is there any performance tuning parameters we can use on api-server or kubelet? thanks!

@nkwangleiGIT I'm writing a test to start a RC with a single pod and wait for it to be ready; then start a service that will point at that pod & measure latency until the endpoint is updated. I'm still not quite clear if this is what you're doing or not and my most likely candidate for the delay you see is the delay until the pod(s) become ready.
If you start the RC & service at the same time, the endpoints won't get updated until the pod's image has been pulled and is running. If there's another source of delay, hopefully my test will find it.
There aren't generally performance tuning flags; one thing you can try is to set etcd's GOMAXPROCS env var to something higher than 1. It may or may not help.

On a 2 node cluster, I did 200 trials of the test I mentioned, 16 at a time in parallel. Median time between service creation and endpoint generation was 1.1s, 99th percentile was 3.3s. I think these numbers are fine. I will shortly package this test up in a PR.

I think if you pull my change in that branch something like the below should work to run just this test against your cluster:
$ hack/build-go.sh
$ go run hack/e2e.go -v -check_version_skew=false -test -test_args=--ginkgo.focus=.*latency |& less -r

This will tell us if the delay you see is service creation -> endpoint generation or something else.

@nkwangleiGIT could you please respond or close the issue? Thanks!

cc/ @dchen1107

Hi lavalamp,
Thanks for your test case for troubleshooing

I tried GOMAXPROCS on etcd, seems it didn't do much help
About the step below:

$ hack/build-go.sh
$ go run hack/e2e.go -v -check_version_skew=false -test -test_args=--ginkgo.focus=.*latency |& less -r

Kubernetes build system is on another host that is different with the environment that has this issue, could you point me how I can run this test agains a remote kubernetes system?
Thanks!

@nkwangleiGIT you should be able to run it anywhere that you can run e.g. kubectl get pods. I just tested myself and after building, the below command worked for running it against a normal (non-e2e) cluster:
KUBE_CONFIG_FILE=config-default.sh hack/ginkgo-e2e.sh --ginkgo.focus=.*latency

But it now occurs to me that rather than me guessing, perhaps the easiest way to figure this out is for you to condense your config that shows the problem into a short script? Can you make an example bash script that shows the problem, using gcr.io/google_containers/pause as the image that it runs?
Also, can you say what version of kubernetes you're running? I should have asked earlier.

Hi lavalamp,
The endpoints update seems some quicker now, around 10s, so I'll take a look at your test case and try it later. For now, we just upgraded to 0.18.2.
And we found some performance issue of kube-proxy, and more discussion here:
https://github.com/GoogleCloudPlatform/kubernetes/issues/9673
I think we can close this issue for now, and will open another one if it's an issue, thanks.

Ah-- I recently rewrote the endpoint controller, if you were running anything <= 0.16 (I think?), it probably would have been slow. :)


2D Model

Hi, where can I find the 2D model? I don't mean the weights, I mean the code.
I see only mfnet3d.py  file...
Thanks.

yeah , i want to get the 2D model code too ,Thanks !

2D MF-Net is implemented by MXNet, where the code is inside the released .tar files: GoogleDrive
Or, you can simply delete the 1st dimension of all 3D convolution layers in mfnet3d.py to get the PyTorch implementation of 2D MF-Net.


As a business customer I want to group my metering points, so that I can easily get an overview of my electricity consumption per group/location

Lukket grundet forældelse


(SERVER-555) Update branching strategy document post 2.0.0

Without this patch the branching document is out of date because we've released
2.0.0 and master is now taking over responsibility for 2.1.x.
Conflicts:
README_BRANCHING.md

Under the "MOST IMPORTANT THING TO KNOW" section, I'd change the reference about the freeze of stable to master from Puppet Server 2.0 to Puppet Server 2.1.

:+1: with a few wordsmithing suggestions...

PR comments addressed, ready for another pass.

:+1:

is it worth calling out the distinction between our compatibility with the Puppet code on the server-side vs. agent side?

Addressed in a4d83b4


New Feature: Redirect Map Manager

This is based on some concepts we've been exploring at a client. Rather than using vanities which have several limitations including:

Performance
Maintainability (e.g. how do I see all the vanities)
Cross-site / domain capabilities

Or httpd Redirect Map text files, which have limitations including:

Requiring apache restarts to update
Requiring CAB / infrastructure support to update
Performance for very large files

We instead used properties in AEM to produce a redirect map and then have a script to download the file to an Apache Redirect Map DBM file as such:
wget http://{SERVER}:4503/etc/acs-commons/redirect-map/{instance}.redirectmap.txt -O /tmp/redirectmap.txt >> /var/log/update-redirect-map.log 2>&1
httxt2dbm -i /tmp/redirectmap.txt -o /etc/httpd/conf/redirectmap.map >> /var/log/update-redirect-map.log 2>&1
Finally, we can reference this file in our Apache configurations:
# Rewrite rules
RewriteMap map.legacy dbm:/etc/httpd/conf/redirectmap.map
RewriteMap lc int:tolower
RewriteCond ${map.legacy:${lc:$1}} !=""
RewriteRule ^(.*)$ 		${map.legacy:${lc:$1}|/} [L,R=301]
This has the following benefits:

Since we can create multiple of these configurations, we can manage the redirects / vanities for different sites through a single mechanism
Since it uses a DBM instead of TXT configuration, the redirect maps can be updated as quickly as activating a file
We can specify using the same mechanism:

Vanity (same site)
Legacy (old site -> AEM)
External Redirects

Redirect maps can be previewed prior to activating the files / pages
AEM entries containing whitespace (which cause issues in Redirect Maps) are excluded and displayed in a warning in preview

Coverage decreased (-0.3%) to 30.203% when pulling 36c5a91101ed3885c7c7af47d26a938590a4a15d on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

Coverage decreased (-0.2%) to 30.264% when pulling 4eaf5831cf4e9e2a1ce6aa076aa4ea074aea85a7 on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

Coverage decreased (-0.2%) to 30.264% when pulling 4eaf5831cf4e9e2a1ce6aa076aa4ea074aea85a7 on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

@klcodanr this looks very cool. is it possible to increase the coverage rate?

Coverage increased (+0.7%) to 31.183% when pulling ff3c17f4cf946feef8d8625c6532e4866b361464 on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

Coverage increased (+0.7%) to 31.183% when pulling ff3c17f4cf946feef8d8625c6532e4866b361464 on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

Coverage increased (+0.7%) to 31.187% when pulling ff3c17f4cf946feef8d8625c6532e4866b361464 on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

@justinedelson Updated to increase code coverage. Lots of mocks ;-)

Hey @davidjgonzalez and @justinedelson any updates on this PR?

sorry @klcodanr . been a busy few weeks. It's on my todo list...

Know the feeling @justinedelson, thanks!

@klcodanr sorry for the delay. This looks pretty good to me. I did find it a little non-intuitive at first. WDYT about making the following changes

Add some text above the upload button explaining the file format. Per https://httpd.apache.org/docs/current/rewrite/rewritemap.html#txt, this could be something as simple as "This file should be a space-delimited file with the first column containing the source path and the second column containing the redirect destination."
Add some explanatory text to what the path and property fields do ("The property and path fields are used to form a query to find available redirects. For example, specifying / as the path and sling:vanityPath as the property will load all vanity paths in the system.")
Add a copyable link to the redirect file itself. Maybe even use the externalizer to create the publish URL.

Coverage increased (+1.3%) to 31.764% when pulling 7784cbb4e5a640a1b6ce7312a3531d93c9b714ab on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

Coverage increased (+1.3%) to 31.764% when pulling aafe5dbc863638307a29fc483d27f0c63886084c on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

Coverage increased (+1.3%) to 31.764% when pulling 3e646d3417831d02f67ae74555e5578da4b964f5 on klcodanr:feature/redirect-manager into 5f81d835f329be3874636691bb9dd3bf60f5dfbe on Adobe-Consulting-Services:master.

Thanks!

@klcodanr now that this has been released, can you submit a PR for https://github.com/Adobe-Consulting-Services/adobe-consulting-services.github.io with the documentation? thx.

Awesome will do! Probably tomorrow.

@justinedelson provided in: https://github.com/Adobe-Consulting-Services/adobe-consulting-services.github.io/pull/108


SystemVerilog translators

Implement SystemVerilog translators. The following constructs are name-mangled:

an array of components
an array of interfaces
all signals inside an interface

The implementation in this pull request uses the following SystemVerilog features:

struct to implement user defined structs
typedef to match the python struct name with the SystemVerilog struct name
always_comb and always_ff
logic

TODO:

Support nested interfaces
Add PyMTL upblk source code to translated .sv

Are we going to support an array of components in a future PR or it's not in the plan?

Are we going to support an array of components in a future PR or it's not in the plan?

An array of components is supported -- just replicate all components

Are we going to support an array of components in a future PR or it's not in the plan?

An array of components is supported -- just replicate all components

Ok. I think I wasn't clear in the original question. Do you plan to generate a list of components in SV instead of name mangling them?

Are we going to support an array of components in a future PR or it's not in the plan?

An array of components is supported -- just replicate all components

Ok. I think I wasn't clear in the original question. For a list of pymtl3 components, do you plan to generate an array of components in SV instead of name mangling the pymtl3 components into a bunch of SV XXX_0 XXX_1 modules?

The current plan is to name mangle that python list of components.

Are we going to support an array of components in a future PR or it's not in the plan?

An array of components is supported -- just replicate all components

Ok. I think I wasn't clear in the original question. For a list of pymtl3 components, do you plan to generate an array of components in SV instead of name mangling the pymtl3 components into a bunch of SV XXX_0 XXX_1 modules?

The current plan is to name mangle that python list of components.

But eventually?

Are we going to support an array of components in a future PR or it's not in the plan?

An array of components is supported -- just replicate all components

Ok. I think I wasn't clear in the original question. For a list of pymtl3 components, do you plan to generate an array of components in SV instead of name mangling the pymtl3 components into a bunch of SV XXX_0 XXX_1 modules?

The current plan is to name mangle that python list of components.

But eventually?

Eventually we want to use generate statements. The tricky part of that is all index operations on an array of components should be transformed into index operations on an array of wires, which is the reason why we should implement that later...

@ptpan hmmm do you think every backend should be implemented in the same way as your SV backend which contains different levels corresponding to RTLIR level?

@ptpan hmmm do you think every backend should be implemented in the same way as your SV backend which contains different levels corresponding to RTLIR level?

No that is not necessary -- we did this because it helps testing and matches our development narratives.
If the backend is relatively simple it is fine to just have all callback methods in a single file. On the other hand if someone is trying to implement a complicated backend and he/she finds our development narrative helpful, he/she might also adopt our approach.

So maybe we should develop the yosys backend in that way?

So maybe we should develop the yosys backend in that way?

I'm not 100% sure about that yet... We are already name-mangling interfaces and components in SystemVerilog backend which means for yosys we only need to add array and struct name mangle support. If the new part is not too large we might as well overwrite a few methods in a single class.


Autocomplete sporadically stops working

The auto-complete feature seems to sporadically crashes, and it seems to be communicating to the omnisharpserver.
I'm currently using the "Roslyn" branch of the OmniSharp-sublime plugin, as the default package used to show annoying syntax errors (that weren't actually errors, as the project would still build).
I have had auto-complete working previously, but I've made no changed to sublime for it to stop working.
I'm currently using Linux Mint 17, and I've changed the default shell from dash to bash to ensure that kvm.sh runs correctly at login.
Error message shown in the sublime console:
OmniSharp Error:

response: "/home/justin/Development/juzzbott"
request: http://localhost:33186/autocomplete
======== request params ========
 b'{"WantReturnType": true, "line": "38", "wordToComplete": "Try", "WantSnippet": true, "buffer": "using System;\\nusing System.Collections.Generic;\\nusing System.Linq;\\n\\nusing MongoDB.Bson;\\nusing MongoDB.Driver;\\n\\nusing Juzzbott.Models;\\n\\nnamespace Juzzbott.Services\\n{\\n    public class BlogService\\n    {\\n\\n        // The mongo client\\n        private MongoClient _mongoDb;\\n\\n        public BlogService () \\n    \\t{\\n            _mongoDb = new MongoClient();\\n        }\\n\\n        public IList<BlogPost> GetLatest(int count) \\n        {\\n\\n            // Get the latest blog entries\\n\\n\\n            // return the blog posts\\n            return null;\\n\\n        }\\n\\n        public BlogPost GetSinglePost(string id) \\n        {\\n            throw new NotImplementedException();\\n\\n            Int32.Try\\n        }\\n\\n    }\\n}", "column": "22", "WantMethodHeader": true, "filename": "/home/justin/Development/juzzbott/src/Juzzbott/Services/BlogService.cs"}'
[2015-03-03 17:23:12,360 - WARNING  - OmniSharp.lib.urllib3.connectionpool] Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionRefusedError(111, 'Connection refused'))': /autocomplete
[2015-03-03 17:23:12,361 - WARNING  - OmniSharp.lib.urllib3.connectionpool] Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionRefusedError(111, 'Connection refused'))': /autocomplete
[2015-03-03 17:23:12,362 - WARNING  - OmniSharp.lib.urllib3.connectionpool] Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionRefusedError(111, 'Connection refused'))': /autocomplete
Traceback (most recent call last):
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connectionpool.py", line 529, in urlopen
    body=body, headers=headers)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connectionpool.py", line 334, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "./http/client.py", line 1065, in request
  File "./http/client.py", line 1103, in _send_request
  File "./http/client.py", line 1061, in endheaders
  File "./http/client.py", line 906, in _send_output
  File "./http/client.py", line 844, in send
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connection.py", line 155, in connect
    conn = self._new_conn()
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connection.py", line 134, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/util/connection.py", line 87, in create_connection
    raise err
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/util/connection.py", line 78, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/omnisharp.py", line 38, in run
    response = http.urlopen('POST', url, body=data)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/poolmanager.py", line 153, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connectionpool.py", line 595, in urlopen
    release_conn=release_conn, **response_kw)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connectionpool.py", line 595, in urlopen
    release_conn=release_conn, **response_kw)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connectionpool.py", line 595, in urlopen
    release_conn=release_conn, **response_kw)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/connectionpool.py", line 575, in urlopen
    _pool=self, _stacktrace=stacktrace)
  File "/home/justin/.config/sublime-text-3/Packages/OmniSharp/lib/urllib3/util/retry.py", line 271, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
OmniSharp.lib.urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=33186): Max retries exceeded with url: /autocomplete (Caused by ProtocolError('Connection aborted.', ConnectionRefusedError(111, 'Connection refused')))
======== response ========
None
None
CALLBACK_ERROR

Looks like the server isnt running.

I have the same error, I just got it working and every 5 minutes, OmniSharp stops working and I have to restart sublime to restart OmniSharp

Closing due to inactivity.


Adjust imports for Python 3.11

sre_parse and sre_constants are deprecated in 3.11, see https://github.com/python/cpython/issues/91308
This fixes a DeprecationWarning when running python3 -Wall -c "import lark" with Python 3.11.0a7.
I couldn't run the tests on Python 3.11 due to https://github.com/PiotrDabkowski/Js2Py/issues/282, but it looks like at least lark works without deprecation warnings with this change.

Thanks for contributing!

Any timeline on a release?  As far as I can tell this is the last thing stopping me from testing with -Werror on Python 3.11.


Some functions that I found/made that might be useful!

Most of these functions are from my beta addon, Avatar Addon (shameless plug), and all are meant for the <IP_ADDRESS> version, although some (most of the vector math) will work without it. Note, some of the functions are supposed to be subscribed to their corresponding event like so: world.events.beforeChat.subscribe(msg => beforeChat(msg));
The new "vector" functions are:

calcVectorOffset
normalizeVector
magnitude
calculateDistance
calculateKnockbackVector
createShockwave

And the other functions are:

emojiReplacements
checkItemAmount
delayedFunc
fullMoon
playerSpawn
traceLine

Thanks for the PR! Before I merge can you fix all the errors flagged by the checks please? Like import interfaces from jsdocs e.g import("@minecraft/server").Vector3.

I'll fix the imports, but I'm not sure what you mean by mismatched function text!


Kacey/input adornment

Needs some more work and there is a lot of room to expand here but wanted to get an initial PR out to get some feedback on  approach. The overall change here is focus management is controlled by a inner Input component and then controls the styling of the container element based on focus and blur. This allows for some generalizing of other input components (i.e. select) down the line where we can adopt similar adornment patterns for those ones. We do this already at my job and it works well where there is a lot of shared logic between Select and Input.
I have tested a couple things to ensure there is at least no regressions compared to whats on the site:

Tabbing through and focus management
Safari tabbing through and focus management
Placeholders

Is there anything else significant that I should test?
Some things that I am not sure on:

Button adornment:

Should these share some context with the input component itself? If an Input is disabled, should the button be disabled as well?
Styling for the button adornments (and regular adornments as well)

I imagine this can probably be moved to its own package now; safe to do in a future PR or should I include that in this one?
There is some grouping of components together via styleable which works fine for tamagui but I am thinking to make it more headless, these can be split out a bit more.

I have not tried or done anything on running the site/docs locally; I would still need to update docs to include docs on adornments and usage. Any thoughts on this?

This probably need significant reworking:

Mapping over children and checking them is an anti-pattern in React, because now you can't abstract them. For example if I put an adornment inside a parent component, it will break, which is a common pattern. For this reason you'd need to have some sort of context based solution.
Not a fan of throwing Button in there, as we want to try and keep all the components pretty modular so people can opt-in to as many or few as they want. Instead it should be easy for a user to just grab a Button (or any other component) and somehow wrap it so it works with this.
We have the concept of Group which handles these sorts of border radius things, I think we'd want to use that internally.
This adds a decent bit of depth to the render tree if you're not actually using adornments, it's now costing a bit more in performance, which is not great. Maybe we'd have it as a whole new thing like <SegmentedInput />, or there'd need to be a <Input acceptsDecorations /> or something.

It's definitely something nice to get in and really appreciate the effort, we may just have to workshop it a bit.

This probably need significant reworking:

Mapping over children and checking them is an anti-pattern in React, because now you can't abstract them. For example if I put an adornment inside a parent component, it will break, which is a common pattern. For this reason you'd need to have some sort of context based solution.
Not a fan of throwing Button in there, as we want to try and keep all the components pretty modular so people can opt-in to as many or few as they want. Instead it should be easy for a user to just grab a Button (or any other component) and somehow wrap it so it works with this.
We have the concept of Group which handles these sorts of border radius things, I think we'd want to use that internally.
This adds a decent bit of depth to the render tree if you're not actually using adornments, it's now costing a bit more in performance, which is not great. Maybe we'd have it as a whole new thing like <SegmentedInput />, or there'd need to be a <Input acceptsDecorations /> or something.

It's definitely something nice to get in and really appreciate the effort, we may just have to workshop it a bit.

I don't mind spending a decent amount of time on this as a lot of it is inspired by implementation we use on our own design system using tamagui core so appreciate all the feedback :)

Hmm I will have to poke around with this. I get your reasoning in your example but for our design system it would never make sense to use the component in any other way other then the way its used here so I feel like mapping over the children is ok in that sense. With that said though, with an open source design system like tamagui, I can get behind the idea of having it more flexible and not requiring the adornments to be limited to one depth level down using some context based thing. Not sure what that will end up looking like but I will experiment.

I can take it out for sure. There are some specific stylings needed on buttons when they are an adornment hence why I wanted it as part of the input component (Input.Start.Button vs just Button). I think if I can figure out a way to do it without mapping over children, I can do this as well and just have Button.

Will look into this, have not used the grouping stuff much since it was first introduced.

I like keeping Input as a sole component if possible but I do think there are ways to reduce the render tree. Will poke around this as well

@natew I simplified a lot of the logic here based on your feedback and leave a lot more control to the user as well.
Input by itself should now have a much smaller footprint on the DOM when not using adornments and now the user has control of where to place the control element of the Input:
<Input>
<Input.Start>
<Button>Start Button</Button>
</Input.Start>
<Input.Control/>
<Input.End>
<Button>End Button</Button>
</Input.End>
</Input>

I am still not quite sure on how to handle providing child elements styles while keeping Input specific logic out of their implementations. For example, I need to modify the height and border radius of child elements based on if they are within an Input but I don't want to add that logic to the components themselves.
I can always plug in some extra styles via cloning elements and I think I could do it in a generalized way too to make it fairly robust since all components from my understanding would support plugging in borderRadius values. Do you think that would be the right approach? It sorta goes back to the idea of mapping through children in a way but not as bad I guess.

@kaceycleveland sorry this has gotten a bit stale, I'd like to come back to it and get it merged. Let me know your thoughts on latest status. I can clean up some stuff.

Any news about? that would be very interesting

@wallacerenan
I can take a look this weekend; I remember I left in a decent place but with all the changes in the past 2 months, will definitely need to revisit.
@natew
I will update and tag you when its in a good spot for you to take a look again, maybe sometime next week.


sky2pix and pix2sky now can take sky2pix(shape, wcs...)

PR #23 cleaned up the type system a lot, enabling us to now have the sky2pix and pix2sky functions accept shape, wcs as the first two arguments. One can still pass an Enmap as the first argument instead, i.e. sky2pix(my_enmap, coords...).

Codecov Report

Merging #25 (775acba) into main (0fbd19f) will increase coverage by 0.49%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##             main      #25      +/-   ##
==========================================
+ Coverage   63.01%   63.50%   +0.49%
==========================================
  Files           3        3
  Lines         365      348      -17
==========================================
- Hits          230      221       -9
+ Misses        135      127       -8

Impacted Files
Coverage Δ

src/enmap_ops.jl
59.87% <57.14%> (+0.57%)
:arrow_up:

src/enmap_geom.jl
100.00% <0.00%> (ø)

src/enmap.jl
59.47% <0.00%> (+0.35%)
:arrow_up:

Continue to review full report at Codecov.

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


Add filter to endpointslice

Please provide a description of this PR:
Seems we forgot to filter endpointslice before.

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster_istio
477e895c0286238a7f56cda46cb7a21eda407ec3
link
true
/test integ-security-multicluster_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-security-multicluster_istio

In response to a cherrypick label: new pull request created: #38962

In response to a cherrypick label: new pull request could not be created: failed to create pull request against istio/istio#release-1.13 from head istio-testing:cherry-pick-38961-to-release-1.13: status code 422 not one of [201], body: {"message":"Validation Failed","errors":[{"resource":"PullRequest","code":"custom","message":"A pull request already exists for istio-testing:cherry-pick-38961-to-release-1.13."}],"documentation_url":"https://docs.github.com/rest/reference/pulls#create-a-pull-request"}

In response to a cherrypick label: new pull request created: #38963

In response to a cherrypick label: new pull request could not be created: failed to create pull request against istio/istio#release-1.14 from head istio-testing:cherry-pick-38961-to-release-1.14: status code 422 not one of [201], body: {"message":"Validation Failed","errors":[{"resource":"PullRequest","code":"custom","message":"A pull request already exists for istio-testing:cherry-pick-38961-to-release-1.14."}],"documentation_url":"https://docs.github.com/rest/reference/pulls#create-a-pull-request"}


Intellisense does not work when opening a folder with an UNC path.

I had an ongoing issue that intellisense did not work.
I realized that if I moved the project folder to my local machine or mapped the folder as a
network drive, intellisense was working. I know that normally you would download a local repository
and everything would be swell, and that the network share mapping is a suitable workaround. However
still i think it should work.
I confirmed that it is also an issue with smaller projects such as the HelloWorld sample.

Thanks, we will look into it.


fix(content-block): aside element take 3 columns only

Related Ticket(s)
[Content block] Aside elements should take 3 columns #6081
Description
{{Add a human-readable description / detail summary of what the PR is changing and any details around how and why}}
{{If applicable, include a screenshot indicating an example or examples of what the PR is changing in the application}}
Changelog
New

{{new thing}}

Changed

{{changed thing}}

Removed

{{removed thing}}

A few unexpected changes:

WC: content group banner layout was broken:

React: still starting on the wrong column:

React, sm: missing right side hanging rule


Add neo-tree and typescript-tools

This appears to be a pull request of a personal repo opened in mistake, closing.


packer task icon

@bishal-pdMSFT,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Upgrade material-ui to its latest stable version

Upgrading material-ui and material-icons to their latest stable versions is the goal of this issue.
Keep in mind that after upgrading ensure the application is not broken and client:test passes before submitting a pull request.
Good luck!!!

let me take a stab on this

@viettrung9012 sure please go ahead.

@viettrung9012 there is a new version of material ui, I think 4.5.0. Please could you update this? Thank you.


vbump dacpac, schema compare, and sql projects after Jan release

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.02%) to 42.035%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/dialog/configurePython/configurePathPage.ts
1
57.02%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
28641

Relevant Lines:
63283

💛  - Coveralls


LUN-216: Split write exercise into two components

This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword LUN.

Nice refactoring


Metrics - CPU Core

Hi! Thank you for creating this.
Is it possible to get information per CPU core? Like this in Unraid:

Hello there, I don't see why not, I'll look into it when I get the chance.

@sivertheisholt QA Build is available if you'd like to test it or suggest any changes.


Finalize S3 logs options

Append to existing log file?
Metadata?
Non-daemon thread to avoid data loss?

Switched to non-daemon threads with atexit cleanup in #61


Fix a typo

Looks like this is the only occurrence https://github.com/apache/arrow/search?q=learna&type=Code


False positive Unnecessary semicolon (standard:no-semi)

The following gets flagged by the no-semi rule:
enum class Test {
  ;

  val test = ordinal + 1
}

Also the ; is removed when using the auto format option; however then it is a compile error since the ; is required. So for enums that contain NO entries but variables or other statements the ; is required.

Tnx for reporting. Out of interest, what is your use case for using an enum class without values?

I store my Feature Flags in my enums. After a while I purge them when I've activated them and they are working fine. And it just happened to be that right now I don't have any Feature Flags but I want to keep my logic around them (computed properties).


Dependency resolution based on attributes

To minimize the need to update build definitions & version catalogs it's handy to use dynamic version resolution such as wildcards or ranges, however:
implementation("io.arrow:arrow-core:1.0.+") will resolve to io.arrow:arrow-core:1.0.6-alpha.1 when the intention was to use the latest release, ie a semver without a pre-release label, which would be io.arrow:arrow-core:1.0.1. This is also the case with our internally published artifacts which is of more concern.
There seems to be no way to select the latest non pre-release artifact except using a custom ComponentSelectionRule, not ideal.
A more appealing approach would be to use the latest version selector along with the org.gradle.status attribute and populate this attribute as per docs:
At the moment, the only attribute with meaning here is org.gradle.status. It is therefore recommended to only modify this attribute, if any, on the component level. A dedicated API setStatus(value) is available for this.
It would be easy & convenient to be able to set org.gradle.status based on the project.version and publish our artifacts to Maven repo using our own custom status scheme (or even just following Ivy's: milestone/integration/release)
However, despite being in the documentation for more than 2 years it doesn't appear to work in my own testing and according to this unresolved issue: https://github.com/gradle/gradle/issues/12600
Is there any way to get this resolved or another way to publish the desired org.gradle.status in the artifact? Or is there a completely different way to achieve this?

This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary.

Like you say, this issue https://github.com/gradle/gradle/issues/12600 prevents you from publishing with a status other than release to Maven.
I don't see another way of changing this because we base the status on the version number always and ignore the attribute when publishing to Maven.
This is a dupe of https://github.com/gradle/gradle/issues/12600.  I've added that issue to 9.x, but we won't be able to fix this in 8.x


IDVA6-814 api integration resend email

Link to Jira:
https://companieshouse.atlassian.net/browse/IDVA6-814
Changes:

Code refactored to use API call to resend email with invitation
No longer needed functions removed

CI: No security warnings found

CI: No security warnings found


Can't connect Zwift to Gymnasticon

I'm sure I'm missing something obvious, but I've been beating my head against the wall for the past 2 days and have come here begging for help :)

bike: Flywheel IC5
Image  (v1.4) from Github loaded onto SD card (using Raspberry Pi Imager 1.7.1) and installed in Raspberry Pi 4b
Gymasticon appears to be working (I can see "Gymnasticon" as a bluetooth option on my phone)
I can successfully calibrate the bike (which shows as "Flywheel 1") via the web app (using an android device)
In Zwift (using an android device) I CANNOT get gymnasticon to show up as a sensor (specifically, I'm trying to add it as a power sensor)

troubleshooting attempted
a) Scoured the internet, found almost nothing relating to my issue (which is usually a pretty good indicator that I'm doing something wrong)
b) I've tried two independent SD cards, two RP 4bs, and two andriod devices (running zwift) to eliminate possible hardware issues
c) Even though I am able to calibrate the bike, I still swapped out the D batteries just to be safe
d) Of note (maybe?): I can not calibrate the bike while Gymnasticon is running (I assume that implies the bike is busy talking with Gymnasticon?); as soon as I turn Gymnasticon off (i.e., remove power to the pi), "Flywheel 1" pops up in the calibration app (and rpm, power, and resistance all vary correctly on the app display after calibrating).
e) I've tried physically relocating the bike, Pi, and android devices (maybe the Pi is too far from the bike?  Maybe it's too close to the bike?  Maybe the moon is in the wrong phase??)
f) I connected a keyboard/mouse to the Pi; logged in using pi/raspberry ... then realized I don't speak Linux... nor Pi... so I ventured no further.
g) Tried installing v1.3 (grasping at straws)
Disclaimers:

I have almost no Pi experience
I have never used Zwift before this trial

ANY help would be greatly appreciated -- thanks in advance!
v/r,
Mike

Hi Maustin- have you tried an alternative app (in case it’s a zwift issue)?? RGT or Sufferfest etc…
did you allow all privacy settings on installing zwift (eg Bluetooth etc?) try uninstalling and reinstall app..

You haven’t Paired gymnasticon in your phone/tablets system settings have you?? - because you only need to pair in the app eg zwift..

Thanks @nealjane!  Great ideas.  I haven't solved my issue yet, but I'm closer (and suspect it's a Zwift issue).
I had originally planned to installed the Wahoo app (Systm)  to further troubleshoot, but it required subscribing (i.e., putting in my CC info) before starting the trial, so I didn't follow through with it.  I assumed that installing Zwift on two separate devices (including one re-install) would be sufficient to eliminate Zwift, but clearly I was wrong :)
I installed Systm today and it immediately recognized Gymnasticon.  I still can't get my android devices to work with Zwift, but now that I know Gymnasticon seems to be working properly, I'll focus my efforts on Zwift.
Again, thanks for the help!  (BTW if you have any tips on getting Zwift to work with Android devices, I'm all ears :)  -- Samsung S20 Ultra and/or Samsung Galaxy Tab S6).
v/r,
Mike

Thanks @nealjane! Great ideas. I haven't solved my issue yet, but I'm closer (and suspect it's a Zwift issue).
I had originally planned to installed the Wahoo app (Systm) to further troubleshoot, but it required subscribing (i.e., putting in my CC info) before starting the trial, so I didn't follow through with it. I assumed that installing Zwift on two separate devices (including one re-install) would be sufficient to eliminate Zwift, but clearly I was wrong :)
I installed Systm today and it immediately recognized Gymnasticon. I still can't get my android devices to work with Zwift, but now that I know Gymnasticon seems to be working properly, I'll focus my efforts on Zwift.
Again, thanks for the help! (BTW if you have any tips on getting Zwift to work with Android devices, I'm all ears :) -- Samsung S20 Ultra and/or Samsung Galaxy Tab S6).
v/r,
Mike

Sorry - Apple user in afraid. Samsung android tablets tend to also have ANT+?? = may be worth checking out (you will need the additional ant+ usb dongle and micro to standard USB adapter if your phone does have ant+)....

I was struggling to get this to connect to Zwift on my android but it was connecting to Zwift on my macbook. I had only Nearby devices permission enabled for the Zwift app on android but I needed to enable  Location permission as well and that allowed me to connect.

I'm having the similar issue with the same setup. I tried similar troubleshooting steps.
One difference is that I was able to use it dozens of times initially and then, seemingly randomly during a ride, my cadence and power went to 0. After a reboot the next morning, it worked again for another 20+ rides. Then, it did a similar thing, except now, multiple reboots and a different SD card hasn't gotten it working again. I tried it on Rouvy, but that didn't work either. Calibrate works fine. I can see Flywheel bike on Bluetooth, but not Gymnasticon.
I'm trying to get a new Raspberry Pi but they're out of stock. Any ideas?

Update: I got it working with a different computer running Debian and a Bluetooth USB adapter (Zexmte). So I think it is my Raspberry Pi 4 that is bad.


Refactor Seamless File Handling

[x] Remove upload and download methods from BaseSession.
[x] Keep constructor argument remote_file_handler: Optional[Any] = None
[x] Test Meshing session in the Ansys Lab
[x] Test Solver session in the Ansys Lab
[x] Implement design change related to launcher.py.
[x] Test local Meshing session
[x] Test local Solver session

@seanpearsonuk This PR is ready now.

Overall looks good


Consider not persisting validators in the client

Currently, there is not implemented a way to delete validators using the Lighthouse client API. Consider not persisiting the validators in the docker volume, so it fetches from the web3signer every single time

You're right. We can just disable validators on the flight via
PATCH /lighthouse/validators/{{pubkey}}
{
    "enabled": false
}

done

done


How did you get libclang.dll and libLLVM.dll

(I'm not sure an issue is the right way to deal with this but I didn't see any contact or discussion forum here or at www.clangsharp.org.)
I see at LLVMSharp that you have a nice script to generate libclang.dll and libLLVM.dll by first putting related libs into a library, running dumpbin to get the defined symbols, filtering for only the symbols you're interested in, placing them into a DEF file, and then linking the library to produce a dll.
Before I go down that path, can you tell me: If I chose to filter differently could I expose from a libclang.dll and/or libllvm.dll, that I create from a built clang/llvm, other valid entry points, such as the C++ interface to libTooling, or libASTMatchers?
Thanks!  -- David
(P.S., I do have your email address due to your answer to a previous issue but I wasn't sure I was invited to use it for questions.)

Creating an issue is fine.
The powershell script you are referring to is only there to generate libLLVM.dll because unlike libClang.dll (which is btw created by Clang's build scripts) libLLVM.dll is not supported by current LLVM build scripts on Windows; they are able to create libLLVM.so on Linux just fine -- so that script is really a workaround for a limitation in LLVM's build scripts.
libTooling and the ASTMatchers are C++ code, and are therefore significantly harder to interface with. For starters you would need the mangled names (https://github.com/mjsabby/ClangSharp/blob/master/Generated.cs#L1703) for the constructor, methods and destructor, hold on to the this pointer, and when you're calling an instance method, pass that in ... and all of that is the easy part :-)
There are more C++ ABI subtleties and compiler vendor nuances that will affect your ability to effectively work with it from C#.
If you don't need semantic analysis from Clang, and only need syntactic level detail, you can visit all Clang AST Nodes from ClangSharp, you just have to write a bit more code, but I feel very productive in C# and would have probably spent more time writing C++ despite using ASTMatchers, but that is me.
However, I understand where you're coming from: the ability to use ASTMatchers from C# would really make C++ code analysis a joy.
To that end I'm working to mirror the AST in ClangSharp and build an ASTMatcher-like framework, but it's a few months out. For semantic analysis, I'm going to use C++/CLI and expose the Clang sema class, and while I'm at it I'll probably also expose all the ASTMatchers, but it'll be Windows only solution where you must compile Clang with MSVC.

Thanks! I had not discovered for myself that clang builds libclang.dll (doh!).  I have just been investigating that and discovered how it exports symbols via Platform.h and Index.h.
I also discovered to my surprise that VC++ honors __declspec(dllexport) on incomplete class declarations (i.e., forward declarations)!  So that means that to export (C++ mangled) symbols for classes you simply create a header containing forward declarations of all the classes you'd like to export, each decorated with __declspec(dllexport), and then arrange for that file to be included in a certain few strategic header files (I haven't discovered those yet) so that it will be always read before any of its C++ classes are properly declared.
And after that I think using C++/CLI for shim or proxy classes is the way to go, as you suggest.  (Hopefully with a generator that creates them from the header files.)


Melons are too powerful

Melons are far too rewarding in their food output. Solution is probably to reduce melons from 1/3 to 1/6 shank. This preserves their use for chickens but makes them way less of an uber food for the player.

Feedback thread: http://www.sargunster.com/btwforum/viewtopic.php?f=14&t=10112

Melons may no longer be sliced by hand and now require a saw. For now that will solve some of the power of melons, awaiting a future rework of melons as a whole


Clarify vim.g.deprecation_warnings behavior

The previous wording was a little clunky (disable disabling). This removes the double negative.

Makes more sense indeed :)


Make journals work with elasticsearch 2.x

Running the specs with elasticsearch 2.1.2 reveals an error in spec/chewy/index/actions_spec#413
rspec ./spec/chewy/index/actions_spec.rb:409 # Chewy::Index::Actions.reset! journaling should not eq 0

Digging into this with pry reveals the following error while executing import
{:create=>
  {{"type"=>"mapper_parsing_exception",
    "reason"=>"failed to parse [created_at]",
    "caused_by"=>{"type"=>"illegal_argument_exception", "reason"=>"Invalid format: \"1474461120\" is malformed at \"20\""}}=>
    ["AVdMuzzyVa0tBwCq2J07"]}}

The problem arises because

the mapping stats, that created_at is a date with the format basic_date_time

see lib/chewy/journal.rb#L10

but is given as epoch

see lib/chewy/journal.rb#L30

This is ok for elasticsearch < 2, because

The date type will also accept a long number representing UTC milliseconds since the epoch, regardless of the format it can handle.

see https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-core-types.html#date

For elasticsearch > 2 it isn't ok, because the given epoch does not match the specified format.
My solution for this is to drop the format specification and let the mapping simply state that created_at is a date

should be ok for elasticsearch < 2, which will recognize the given epoch as before
should be ok for elasticsearch >= 2, because if no format is given it defaults to "strict_date_optional_time||epoch_millis"

see https://www.elastic.co/guide/en/elasticsearch/reference/current/date.html

👍

Thanks!


Restore reset password tokens behavior

Please see Reset Password Tokens No Longer Expire #1008

Following the discussion in #1008, this still forces the default use case (i.e., not Mongoid) to make a local override to handle helpful error messages (all fails return a generic 404).

These changes make sense to me. Merging


Speed up genomecov

Currently, even with sorted data, the algorithm is two-pass. It can reallty be done in one pass. As such, memory and runtime will be reduced.

Is this supported now for BED input? It would be nice if a sorted option would allow it with BED file as input.
bedtools genomecov -sorted -bg -i test.sorted.bed  -g hg38.chrom_sizes.tsv > test.sorted.bg


WIP: Integration test plan

Currently cook relies on the (system simulator)[https://github.com/twosigma/Cook/tree/master/simulator] for integration testing. However, this is problematic because it doesn't cover all the endpoints and the tests are not minimal meaning that it is possible to roll out backwards in-compatible changes without the tests catching it. Further, the simulator does far more than provide integration style testing which often makes it too heavy weight for the integration style testing operators and developers are interested in.
This document outlines what we hope to test, what won't be tested and notes areas that will be difficult to test and how to address it.
Tests
Submission (POST /rawscheduler)

Minimal submission and ensure job completes (see https://github.com/twosigma/Cook/blob/master/scheduler/src/cook/mesos/api.clj#L191 for current definition of minimal. Note, we broke backwards compatible by requiring "name", "priority" and "max_runtime")
Minimal submission of failing job and ensure it fails
Submission with a short max runtime and ensure job fails for exceeding max run time
Check that name regex is fully used (so that we can't make it more restrictive without failing this test) ( https://github.com/twosigma/Cook/blob/master/scheduler/src/cook/mesos/api.clj#L174)
Submit a job with max_retries >1 and ensure multiple instances are run
Submit a job that uses more memory than requested and ensure the job fails because of container memory exceeded. Check the reason code is what is expected (https://github.com/twosigma/Cook/blob/master/scheduler/src/cook/mesos/schema.clj#L857)

Group submission (POST /rawscheduler)

Submit with an implicit group (jobs refer to a group uuid that doesn't exist and isn't in submission)
Submit with an explicit group with all defaults
Submit with an explicit group with straggler handling, ensure the expect job fails because it ran too long (submit 2 jobs, 1 that sleeps 1 second, one that sleeps 100000 seconds)

Job querying (GET /rawscheduler?job=)

Ensure expected keys are there

Job cancelling (DELETE /rawscheduler?job=)

Submit a job, cancel it and ensure it is marked as completed
Submit multiple jobs and cancel all of them in a single request

Job retrying (PUT, POST /retry?job=)

Submit a job, cancel it and then retry it and ensure it runs again
Submit multiple jobs, cancel them and retry all the jobs in a single request
Submit a job and retry it using increment retries (as opposed to setting retries)

Instance querying (GET /rawscheduler?instance=)

Query the instance and ensure the expected keys are there

Instance canceling (DELETE /rawscheduler?instance=)

Kill an instance and ensure another instance is started

Group querying (GET /group)
List jobs (GET /list)
Get share (GET /share)
Set share (POST /share)
unset share (DELETE /share)
Get quota (GET /quota)
Set quota (POST /quota)
unset quota (DELETE /quota)
Not tested

Preemption / rebalancer

We currently have a pretty extensive extensive integration test suite. Closing.


[Noetic] Readd rqt_plot global executable

Reason for adding scripts argument back: https://github.com/ros-visualization/rqt_graph/issues/44

Thanks for the patch.
Partly reverts #59.