Jenkins needs to be restarted after installation of plugins

As you might now, handlers runs at the very end of the playbook.
That causes issues while you are using this role and trying to configure
Jenkins with the next role/tasks.
Jenkins restart might happen just after the installation of the plugins.
So that, I can configure some of the plugins by jenkins-cli

Just for my own clarification—does this help in terms of there being other jenkins tasks that would run within the same playbook run, but need to have particular plugins installed/enabled prior to those parts running?

#160 might be related

@geerlingguy exactly

Was there any workaround to this?


Only show directory for Version controlled directories

Note: Not good enough to merge
This change this:

to this:

Its just enabling the dironly flag in case the user is in a git directory. Inspired by gitster.
I'll shift this to a special flag and add support for other version controls, but only if this looks interesting to anyone else.
@b-ryan Thoughts?

Hey @captn3m0 -- it looks like an interesting change and I'm certainly not opposed to it. I don't think I would personally use it, although I will try it out and see how it feels.

The usecase for me is split terminals where the width isn't quite enough to show me the entire path. Seeing just projectname/path instead of ~/projects/personal/github/captn3m0/projectname/path helps a lot :)

I have run into the same issue. I currently have modified the prompt so that my cursor is on its own line, like:

I'm curious what you think of that as an alternative.

For me, usually if I'm inside a repo, it has a unique name. (Since I rarely have two copies of the same project). Thus, even if the newline fix might work, seeing the extra path gives me no useful information. Thus, I prefer trimming the pathname.
Also, its easier for you since you are using the plain-cwd, Even ~/src/boxcutter would take up a lot of space on my prompt because I use fancy.

@b-ryan - I like it! And I was going to poke around and see how to do it, what did you change? Just installed this morning so have not reviewed the python yet.

Haven't tested this in a while. Creating a new segment instead for a cleaner approach (cwd_git)

@vitosans sorry I didn't get back to you! There is now a segment for the newline so you can get the latest powerline-shell and use it!
I think this PR is just too-specific a use-case though. You could use the max_depth option to the cwd segment to only show the top directory, but this would take place at all times. There is also a change I have been considering that could help here. The way the most recent versions of this project work is by looking for a configuration file in a few places. Right now, if there is a .powerline-shell.json file in your cwd, it gets used as the directory. But it would be really interesting to enable the configuration file to override the global configuration, rather than replace it entirely. If this were implemented, you could have a .powerline-shell.json file in each of your repos that just overrides the max_depth option.
Actually a more robust solution might be to change the .powerline-shell.json file to a python file and then you could have code determine how to configure powerline-shell for the particular directory. You could then write custom code in your configuration that checks if you are in a git directory and if so, set the max_depth option accordingly. This actually seems like the most robust solution to me.


Adding configurable maximum subnet variable and more descriptive tagging

For some regions with many availability zones the amount of subnets gets extreme.  This allows the ability to override the max number of subnets to create.  Still defaults to all if nothing is supplied.

@osterman please review

Can you attach the output of a terraform plan? I think that will help visualize the changes.

@osterman  here is the plan
plan-out.txt

@osterman @aknysh  All comments should be addressed now

@dcowan-vestmark
can you address the comments above so we can do final review and merge
thanks a lot!!

Thanks @dcowan-vestmark !


When nesting views, an array of views can be passed to the selector

This failed at line 325 with the error:
Uncaught TypeError: Cannot set property 'isManaged' of undefined seqRender
UploadModal = new Module.Views.UploadModal;
DeleteModal = new Module.Views.DeleteModal;
AddModal = new Module.Views.AddModal;

layout.view("#content", new Module.Views.Main({
  views: {
    '#Modals' : [UploadModal, DeleteModal, AddModal]
  }
});

Tim, we tested your solution again, and it did work! The problem is we didn't add var to the variable declarations, so it looks like that's good to go.

Awesome glad to hear it worked.


GPG key recognized, but flagged suspicious

Gitea version (or commit ref): 1.14.6
Git version: 2.30.2
Operating system: Debian

Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite
[x] MariaDB

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No (because I don't receive the confirmation mail)

Log gist:

https://gist.github.com/Pingger/0a5d2772871b73ce83b04877738427b7

Description

For some reason gitea does not recognize any commits I make properly signed.
 WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS. Is all I get as information.
I looked at #10420 and #2401. But neither did help. (My instance is running in UTC)
My local git says, the signature is good.
...
Screenshots

Issue found:
The mail wasn't verfied yet. And verifying after the commit is made doesn't update the GPG signature checks. I had to remove the gpg key and add it again.

@Pingger This issue and your solution was able to help me out. Thanks!
I was having the same issue after reinstalling Gitea because of webpage corruption on most http requests (likely due to my migration attempt from SQLite to MariaDB). I kept the same configuration file, which caused Gitea to skip the install screen and simply made the first registered account (mine) an administrator. Unfortunately, it did not mark the email address used for registration as activated despite the mailer being disabled.
Adding another email address to my account (which was automatically considered activated) and then deleting and readding my git email address caused Gitea to finally accept my git email as active and caused all my commits to immediately become valid.

Here we see, why one should always post their solution below their own question: There is always someone, who has the same (or very similar) issue.


i18n(zh-cn): Translate recipes/captcha.mdx

What kind of changes does this PR include?

New or updated content
Translated content

Description
Translate recipes/captcha.mdx content to Chinese.

LGTM


created icons with logo

I copied Spotify icons and just put in the YTM logo.  hope it's up to snuff!

Hello @dhitchcock, thanks for your PR. I'm afraid src/icon-xs.svg need more tweaking. I'd remove the white circle and expand the play triangle.
 16×16
 22×22
 24×24

Ahh yeah I see what you mean.  I took another stab at it, tweaked the sm a little too.

Looks good.

Merged, thanks :+1:


Speedup of mask method

I've been trying out regionmask and have hit a few performance bottlenecks. I should say, other than these bottlenecks, I really like the functionality here.
I compared the time it takes to rasterize a the USGS HUC2 river basin polygons to the 1/8th deg grid resolution. I'm finding that the following implementation is roughly 100x faster (2 seconds vs 3 minutes). I suspect I'm using regionmask on a dataset / shapefile collection that is larger than it was designed for.  It is possible that regionmask is doing something that my code is not but I though I'd post my approach here and see if it would be useful to this package.
from affine import Affine
from rasterio import features

def transform_from_latlon(lat, lon):
    '''perform an affine tranformation to the latitude/longitude coordinates'''
    lat = np.asarray(lat)
    lon = np.asarray(lon)
    trans = Affine.translation(lon[0], lat[0])
    scale = Affine.scale(lon[1] - lon[0], lat[1] - lat[0])
    return trans * scale

def rasterize(shapes, coords, fill=np.nan, **kwargs):
    """Rasterize a list of (geometry, fill_value) tuples onto the given
    xarray coordinates. This only works for 1d latitude and longitude
    arrays.
    """
    transform = transform_from_latlon(coords['lat'], coords['lon'])
    out_shape = (len(coords['lat']), len(coords['lon']))
    raster = features.rasterize(shapes, out_shape=out_shape,
                                fill=fill, transform=transform,
                                dtype=np.float, **kwargs)
    return xr.DataArray(raster, coords=coords, dims=('lat', 'lon'), name='region')

with a call that looks like:
# hucs[2] is a geopandas.GeoDataFrame
masks = rasterize(zip(hucs[2].geometry, hucs[2].index),
                  coords={'lon': subset.coords['lon'],
                          'lat': subset.coords['lat']})

Thanks, this looks promising. Still need to test some edge-cases (e.g. point on line). The coordinates need to be 1D and the spacing must be equal, right?

@mathause - yes, I'm sure there are some edge cases that this doesn't cover. Given its performance though, it may be worth adding as a fast-track for regular grids.

alerting @gidden who I think will like this package.
Aside from speed issues - @gidden may be able to give pointers on different rasterization methods

Finally implemented this! It only took two years ;) Thanks.


PEP hint does not work in Python 2.7

Use python 3.6 interpreter ("Python 3.6.6" from Anaconda). It works

Use python 2.7 interpreter ("Python 2.7.16" from Anaconda). It does not work, no popup :(
if I do y = 3 then it deduces type to int and I see the popup completion again

This is b/c internally expression is extracted and parsed as annotation but since parser is created off current configuration it is 2.7 and hence is unable to parse type annotations. The fix is to always parse hints as 3.x.

I did a quick step through of the source, it's constructing the fragment x: int to pass to the parser which then fails this check:
Parse.cs:918
if (PeekToken(TokenKind.Colon) && (_stubFile || _langVersion >= PythonLanguageVersion.V36)) {
It's explicitly checking the python version there.

The fix was to always parse as 3.6+

I just scrolled up after I posted! Awesome, good work.


GAPPS required? Option for no GAPPS?

Home Assistant Android version:
1.6.0 (105)
Android version:
9 (MicroG Lineage Build)
Phone model:
Pocophone
Home Assistant version:
105
Last working Home Assistant release (if known):
Description of problem:
I wanted to try out the new notification feature, however I can't push any notifications to my phone.
The phone shows up under integrations and the "notify.mobile_app_<device_id> is also created and updated just fine.
I installed the app on a different phone with the same procedure and it worked immediately.
The only difference in the setup is, that my main phone runs a microG build, which removes gapps and play services and implements a proxy for some requirements and uses the unifiedNLP for location and backend.
It normally mimics gapps well enough and notifications work for most apps (whatsapp, mail, telegram, etc) but some apps have issues with the missing gapps.
I highly suspect this is the cause of my problems and I would love to see the app work without gapps (what with the whole idea of home-assistant being to take the data into your own hands and not leave it with google and co. ;) )
Happy to test stuff out if you need me to.
Traceback (if applicable):

Additional information:
MicroG homepage for more information on the project:
https://microg.org/

Duplicate of #231. See https://github.com/home-assistant/home-assistant-android/issues/231#issuecomment-571339442


Remove pointer:cursor for disabled selection controls

Having a pointer cursor on the label for an disabled checkbox/radio button gives the indication that you can press it, which is not the case.
You can experience it yourselves by going to https://hedwig-docs.herokuapp.com/posten.html#/Checkbox or https://hedwig-docs.herokuapp.com/posten.html#/Radio-buttons. Scroll down to a disabled example, and see how to cursor becomes a pointer when hovering the label.
I would assume not-allowed would be the best cursor for this scenario.

Yes, you are right, @bockelie93  👍
Thanks for creating an issue on it.
And feel free to add a fix if you have the time 😁

This is also the case for disabled radio buttons

This is now in QA


eth holders to add

Royal Government of Bhutan
https://intel.arkm.com/explorer/entity/druk-holding-investments
unsure of addresses, would be good to crawl company holdings to have an updated list since I know for a fact this isn't updated since Meitu disclosed having around 68k ETH
https://www.coingecko.com/en/public-companies-ethereum

https://www.accesswire.com/943902/cosmos-health-integrates-bitcoin-and-ethereum-as-treasury-reserve-assets

@hanniabu would be great if you could create a PR to the eth_holders.yml file with the wallet addresses (for onchain tracking) or adding individual transactions similar to the Michigan Pension fund we are tracking (for offchain tracking).
If anything seems unclear please let us know so that we can improve the process!

merged your PR (https://github.com/ethismoney-xyz/data/pull/3)
would be great to create additional PRs for any holder to add


git下来不能运行

GET http://localhost:9527/<%= 400 (Bad Request)
localhost/:1 Refused to execute script from 'http://localhost:9527/<%=' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
控制台有这两个错

请确保npm run dev 执行成功。请提供更多信息。

Closing for inactivity.


Added support Debian jessie

root@dev-samm:~  # lsb_release -a 2> /dev/null | grep Distributor | awk '{print $3}'
Debian

@sammcj tried to run the modified script, but there are still some blockers - it fails when installing winexe package.
For now, we could skip installation of winexe package on Debian, but there might be other issues left. I will wait for @sammcj before merging this PR.
It's also worth noting that we only test it on Ubuntu and RHEL / Fedora right now so we can't guarantee everything will always work on Debian.

root@dev-samm:~  # apt-get install winexe
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 winexe : Depends: libc6 (>= 2.15) but 2.13-38+deb7u8 is to be installed
E: Unable to correct problems, you have held broken packages.
root@dev-samm:~ 100 # apt-cache policy libc6
libc6:
  Installed: 2.13-38+deb7u8
  Candidate: 2.13-38+deb7u8
  Version table:
 *** 2.13-38+deb7u8 0
        500 http://apt/security.debian.org/ wheezy/updates/main amd64 Packages
        100 /var/lib/dpkg/status
     2.13-38+deb7u6 0
        500 http://apt/mirror.overthewire.com.au/debian/ wheezy/main amd64 Packages
root@dev-samm:~  # vi lol.sh
root@dev-samm:~  # INSTALL_WINDOWS_RUNNER_DEPENDENCIES=0 ./lol.sh

Installing without the winexe package downloads a lot of packages then fails with:
Installed /opt/openstack/mistral
Processing dependencies for mistral==0.0.5.dev694
Traceback (most recent call last):
  File "setup.py", line 30, in <module>
    pbr=True)
  File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/develop.py", line 27, in run
    self.install_for_development()
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/develop.py", line 105, in install_for_development
    self.process_distribution(None, self.dist, not self.no_deps)
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/easy_install.py", line 673, in process_distribution
    [requirement], self.local_index, self.easy_install
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 589, in resolve
    requirements.extend(dist.requires(req.extras)[::-1])
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 2207, in requires
    dm = self._dep_map
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 2201, in _dep_map
    dm.setdefault(extra,[]).extend(parse_requirements(reqs))
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 2507, in parse_requirements
    line, p, specs = scan_list(VERSION,LINE_END,line,p,(1,2),"version spec")
  File "/opt/openstack/mistral/.venv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 2475, in scan_list
    raise ValueError("Expected "+item_name+" in",line,"at",line[p:])
ValueError: ('Expected version spec in', 'funcsigs;python_version<"3.3"', 'at', ';python_version<"3.3"')

This looks like it could be an issue with using an older version of pip, although we install the latest version in the script, so not exactly sure what is going on.

Related: https://github.com/StackStorm/st2/pull/1774/files

Thanks for the PR. We're re-addressing how we are doing installation, so this is no longer applicable. Will have official Jessie support very soon!


Split the test suite for spec versions

The 2021 version of the spec is going to be finalized soon. The test suite isn't finished yet. However, we want to have a version of the test suite that runs only against 2021, so that people can run the suite without having to worry about features that are in the 2022 draft.
We should figure out some way to enable or disable test suite features. It would also be nice to be able to do this for the extensions, so that people can easily run the test suite without the linear algebra extension, for instance. Perhaps the best way to do this is using pytest marks? Another idea would be to split the parts of the suite into submodules so that people can run pytest array_api_tests/2021 or pytest array_api_tests/2021/extensions/linear_algebra. For vendoring people could remove any submodules that aren't relevant.
I'm guessing pytest marks will be better, but I need to investigate them to see how well suited they are for this.

Something useful I learnt recently—we can specify markers for all test methods in a module via assigning the pytestmark variable once per-file.
pytestmark = [...]

I'll formalise my thoughts later, just to say we added versioning support to Hypothesis in https://github.com/HypothesisWorks/hypothesis/pull/3456, which I'll probably take inspiration from when working on this issue.


how to convert to decibel

Hi I have used FFT(); like this
...
final fftx = FFT(audio.length);
final freqlist = fftx.realFft(audio);
...
that result is  real and imagine number
How i convert to Decibel  ?

Use the magnitudes function to get the amplitudes. Since you're doing real FFT, you probably don't care about the redundant upper half of the frequencies, so you should also use discardConjugates:
final fftx = FFT(audio.length);
final freqlist = fftx.realFft(audio).discardConjugates().magnitudes();

That will give you the amplitudes.
Now, you said you wanted the decibels. Decibels is a logarithmic scale. If you're sure that's what you want, you can use this formula to convert the amplitude to decibels: 20 * log10(amplitude):
final decibels = freqlist.map(amp => 20 * math.log(amp) / math.ln10).toList();

If you want to know which frequency a particular entry in decibels corresponds to, use the frequency function:
for (int i = 0; i < decibels.length; ++i) {
  final freq = fftx.frequency(i, sampleRate);
  print("$freq Hz: ${decibels[i]} dB");
}

Where sampleRate is the sampling rate of your input audio (probably 44100Hz or 48000Hz or something like that).

I have run code on console mode is ok , I try to run on android  but not finished yet .Are you ever implement this library with android ?

It is implemented on android. It's probably taking a long time because your phone is slower than your PC.
What are you using it for? How long is your audio file?
You might want to use STFT instead. That will run a bunch of small FFTs, rather than one big one, and is much faster for long audio files.
https://pub.dev/documentation/fftea/latest/stft/STFT-class.html

i am trying to detect pauses or silence within an audio

@zjjt You don't need FFT to do that. Try just iterating through the audio samples, and if the value stays below some threshold for some amount of time, that's silence.
For more robust results, you can calculate a moving average of the absolute value (or maybe the squared value) of the samples.

@liamappelbe oh ...im struggling to find à way to do this in dart and thought that fftea could help me out. Any ideas how can I access the samples data to start ?

@zjjt Whether or not you use fftea, you'll need to load the MP3s and get the audio samples. That's a separate problem.
flutter_lame looks like it can read MP3 files, but it seems to only work on Flutter. If you're able to convert the MP3s to WAV files, then you can use package:wav (another of my packages 😉) to get the samples.

@liamappelbe you are the one Who have written the wav package? Cool  ...thanks for the tips ill see how I can convert my files to wav I guess it ll be better...For now i load my files feom the assetbundle and use audioplayers package ti olay them.ok let me revert when I am done


KeyErrors

Traceback (most recent call last):
  File "C:\Development\Python\Python3.10.6\lib\threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "C:\Development\Python\Python3.10.6\lib\threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\YumYummity\Desktop\bot\twitch\pjsk.py", line 2201, in refresh_data
    self._event_maps[self.katsu.romaji(title)] = data["id"]
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 299, in romaji
    tokens = self.romaji_tokens(words, capitalize, title)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 222, in romaji_tokens
    roma = self.romaji_word(word)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 322, in romaji_word
    return self.map_kana(kana)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 367, in map_kana
    out += self.get_single_mapping(pk, char, nk)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 420, in get_single_mapping
    return self.table[kk]
KeyError: '彼'

More characters (same traceback, just not including the full thing):
KeyError: '★'
KeyError: '大'
KeyError: '繋'
KeyError: '森'
may find more in the future

Sorry you're having trouble with this, that's a very strange error. Those are all extremely common characters (except ★ I guess), so it seems unlikely cutlet would generally be unable to handle them. In particular, it shouldn't be possible for kanji to be passed to map_kana.
What version of cutlet are you using? How are you initializing the katsu object?
This code worked for me, for example - can you see if it works for you, outside of your application?
import cutlet

katsu = cutlet.Cutlet()

for char in "彼★大繋森":
    print(katsu.romaji(char))

Sorry you're having trouble with this, that's a very strange error. Those are all extremely common characters (except ★ I guess), so it seems unlikely cutlet would generally be unable to handle them. In particular, it shouldn't be possible for kanji to be passed to map_kana.

I am using 0.4.0 of cutlet.

> What version of cutlet are you using? How are you initializing the `katsu` object?
>
> This code worked for me, for example - can you see if it works for you, outside of your application?
>
> ```
> import cutlet
>
> katsu = cutlet.Cutlet()
>
> for char in "彼★大繋森":
>     print(katsu.romaji(char))
> ```

OK, thanks for confirming details and that the code sample ran. Nothing looks wrong with your initialization, so I'm not really sure what could cause this.
I'll try a few more things, but if you can come up with an example I can run that has the same issue I could debug it.
There is one thing I understood - since map_kana is being called at line 322 in v0.4.0, that means that the token is being detected as katakana or hiragana, which is obviously wrong. Are you using a custom dictionary or MeCab build in your actual code that isn't in the short example I gave?

OK, thanks for confirming details and that the code sample ran. Nothing looks wrong with your initialization, so I'm not really sure what could cause this.
I'll try a few more things, but if you can come up with an example I can run that has the same issue I could debug it.
There is one thing I understood - since map_kana is being called at line 322 in v0.4.0, that means that the token is being detected as katakana or hiragana, which is obviously wrong. Are you using a custom dictionary or MeCab build in your actual code that isn't in the short example I gave?

I believe I'm using unidic-lite, with no modifications.

Hm, that's weird. If you're using a standard setup then I'm not sure how I can reproduce it.
The best thing would be if you could find a snippet of code that reproduces it for me to try, though it sounds like that may be hard.
When you say it doesn't happen every time, do you mean that given the same input, sometimes it happens and sometimes it doesn't? If that's the case I guess it could be a threading issue, though I think that shouldn't happen...
If you do have a reproducible case locally, what you can do is drop a breakpoint or print statement to see why the token is being detected as kana. The place to do that would be this line. The main thing to check woult be word.surface and word.char_type. If those values look weird then other things should be considered.

Hm, that's weird. If you're using a standard setup then I'm not sure how I can reproduce it.
The best thing would be if you could find a snippet of code that reproduces it for me to try, though it sounds like that may be hard.
When you say it doesn't happen every time, do you mean that given the same input, sometimes it happens and sometimes it doesn't? If that's the case I guess it could be a threading issue, though I think that shouldn't happen...
If you do have a reproducible case locally, what you can do is drop a breakpoint or print statement to see why the token is being detected as kana. The place to do that would be this line. The main thing to check woult be word.surface and word.char_type. If those values look weird then other things should be considered.

Same input, yeah. The data that usually errors is from this file: https://github.com/Sekai-World/sekai-master-db-diff/blob/main/events.json
I don't have it reproducible sadly as it appears random, and has only happened a few times. If you want, I can send you the class where Cutlet is used, but it's pretty long.
Also, speaking of threading, the function that calls Cutlet is being threaded:
threading.Thread(target=self.refresh_data).start()
# Cutlet is initialized and called in self.refresh_data()

Update: it happened again.
(this is a mess of an error, as it's technically two errors being printed at the same time as the thread ran twice in a short time)
Exception in thread Thread-21 (refresh_data):
Traceback (most recent call last):
  File "C:\Development\Python\Python3.10.6\lib\threading.py", line 1016, in _bootstrap_inner
Exception in thread Thread-23 (refresh_data):
Traceback (most recent call last):
  File "C:\Development\Python\Python3.10.6\lib\threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "C:\Development\Python\Python3.10.6\lib\threading.py", line 953, in run
    self.run()
  File "C:\Development\Python\Python3.10.6\lib\threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\YumYummity\Desktop\bot\twitch\pjsk.py", line 2210, in refresh_data
    self._target(*self._args, **self._kwargs)
  File "C:\Users\YumYummity\Desktop\bot\twitch\pjsk.py", line 2209, in refresh_data
    self._title_maps[self.katsu.romaji(title)] = data["id"]
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 299, in romaji
    self._title_maps[self.katsu_foreignless.romaji(title)] = data["id"]
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 299, in romaji
    tokens = self.romaji_tokens(words, capitalize, title)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 222, in romaji_tokens
    tokens = self.romaji_tokens(words, capitalize, title)    roma = self.romaji_word(word)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 222, in romaji_tokens

  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 322, in romaji_word
    roma = self.romaji_word(word)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 322, in romaji_word
        return self.map_kana(kana)return self.map_kana(kana)
  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 367, in map_kana

    out += self.get_single_mapping(pk, char, nk)  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 367, in map_kana

  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 420, in get_single_mapping
    out += self.get_single_mapping(pk, char, nk)
    return self.table[kk]
KeyError  File "C:\Development\Python\Python3.10.6\lib\site-packages\cutlet\cutlet.py", line 420, in get_single_mapping
: '灰'
    return self.table[kk]
KeyError: '幸'

Hm, it seems very likely it's a threading issue.
Can you try making a single cutlet object per thread and see if that resolves the issue? That won't help resolving the root cause but I would expect it to fix your problem.

Hm, it seems very likely it's a threading issue.
Can you try making a single cutlet object per thread and see if that resolves the issue? That won't help resolving the root cause but I would expect it to fix your problem.

I don't think it's a threading issue, as I've checked the first error I sent. The error was from before I implemented threading.

Oh, do you have example code that causes the error without threading? If you do definitely send it to me. Reviewing things here, your first example has references to threading.py, so I assumed all your code was using threading.
I assume threading is involved because your error seems to be running through this code:
if word.char_type in (CHAR_HIRAGANA, CHAR_KATAKANA):
    kana = jaconv.kata2hira(word.surface)
    return self.map_kana(kana)

With your error, characters that are obviously not hiragana or katakana are going inside this if block anyway. The char_type here is set by MeCab based on specific lists of characters, so there's normally no way it could go wrong. It also shouldn't normally be an issue with threaded code, but MeCab has some internal memory management that's complicated and so that's why I think that might be a possible source of the issue.
If it's not threading related... I don't have many ideas about what could cause an issue with the character type. I'll have to look at the implementation again.

Oh, do you have example code that causes the error without threading? If you do definitely send it to me. Reviewing things here, your first example has references to threading.py, so I assumed all your code was using threading.
I assume threading is involved because your error seems to be running through this code:
if word.char_type in (CHAR_HIRAGANA, CHAR_KATAKANA):
    kana = jaconv.kata2hira(word.surface)
    return self.map_kana(kana)

With your error, characters that are obviously not hiragana or katakana are going inside this if block anyway. The char_type here is set by MeCab based on specific lists of characters, so there's normally no way it could go wrong. It also shouldn't normally be an issue with threaded code, but MeCab has some internal memory management that's complicated and so that's why I think that might be a possible source of the issue.
If it's not threading related... I don't have many ideas about what could cause an issue with the character type. I'll have to look at the implementation again.

I believe the first traceback I sent didn't use threading (it also doesn't say exception in Thread-NUM:).
Here's what my implementation currently looks like (cutting some irrelevant variables and code)
class pjsk_data:
    def __init__(self):
        self._refreshed_at = 0
        self.refresh_data()

    def refresh_data(self):
        # URLS
        url_jp = "https://sekai-world.github.io/sekai-master-db-diff/musics.json"
        url2_jp = "https://sekai-world.github.io/sekai-master-db-diff/musicDifficulties.json"
        url = "https://sekai-world.github.io/sekai-master-db-en-diff/musics.json"
        url2 = "https://sekai-world.github.io/sekai-master-db-en-diff/musicDifficulties.json"
        url3_jp = "https://sekai-world.github.io/sekai-master-db-diff/musicTags.json"
        url3 = "https://sekai-world.github.io/sekai-master-db-en-diff/musicTags.json"
        event_url = "https://sekai-world.github.io/sekai-master-db-en-diff/events.json"
        event_url_jp = "https://sekai-world.github.io/sekai-master-db-diff/events.json"

        # Functions and Tools
        def simplify_title(title):
            # Remove all non-alphanumeric characters and convert to lowercase
            simplified_title = re.sub(r'[^a-zA-Z0-9\s]', '', title).lower()
            # Remove extra whitespace
            simplified_title = re.sub(r'\s+', ' ', simplified_title).strip()
            return simplified_title
        self.katsu = cutlet.Cutlet()
        self.katsu_foreignless = cutlet.Cutlet()
        self.katsu_foreignless.use_foreign_spelling = False

        # Requests
        songs = requests.get(url).json()
        songs_difficulties = requests.get(url2).json()
        jp_songs_difficulties = requests.get(url2_jp).json()
        jp_songs = requests.get(url_jp).json()
        jp_tag_data = requests.get(url3_jp).json()
        tag_data = requests.get(url3).json()
        events = requests.get(event_url).json()
        events_jp = requests.get(event_url_jp).json()

                # Maps
        self.tag_map = {
            "all": None,
            "other": "Other",
            "none": "No Main Unit",
            "vocaloid": "VIRTUAL SINGER",
            "piapro": "VIRTUAL SINGER",
            "school_refusal": "Nightcord at 25:00",
            "light_sound": "Leo/need",
            "light_music_club": "Leo/need",
            "idol": "MORE MORE JUMP!",
            "street": "Vivid BAD SQUAD",
            "theme_park": "Wonderlands×Showtime"
        }
        self.event_type_map = {
            "marathon": "Marathon",
            "cheerful_carnival": "Cheerful Carnival",
            "world_bloom": "World Link"
        }
        self.custom_title_definitions = {
            99: [ # MORE! JUMP! MORE!
                "mjm",
                "dakara motto"
            ],
            135: [ # Six Trillion Years and Overnight Story
                "six trillion"
            ],
            162: [ # End Mark ni Kibou to Namida wo soete
                "endmark"
            ],
            164: [ # Don't Fight The Music
                "dftm"
            ],
            176: [ # Machinegun Poem DOll
                "mgpd"
            ],
            186: [ # Hatsune Creation Myth
                "hcm"
            ],
            226: [ # Lost and Found
                "lnf",
                "kimino"
            ],
            250: [ # Kusare-Gedou and Chocolate
                "kusare-gedou",
                "chocolate boss song"
            ],
            251: [ # Fräulein=библиотека
                "Fraulein"
            ],
            315: [ # What's Up? Pop!
                "wup"
            ],
            328: [ # Sekai-Chan and Kafu-Chan's Otsukai Gassoukyoku
                "sekai-chan",
                "kafu-chan"
            ],
            396: [ # 東京テディベア
                "ttb",
                "tokyo teddy bear"
            ],
            503: [ # 超最終鬼畜妹フランドール・Ｓ
                "flandre s"
            ],
        }

        # Title Maps
        self._title_maps = {}
        for data in songs:
            title = data["title"].lower().strip()
            simplified_title = simplify_title(title)
            self._title_maps[title] = data["id"]
            if simplified_title != title:
                self._title_maps[simplified_title] = data["id"]
        for data in jp_songs:
            title = data["title"].strip()
            self._title_maps[title] = data["id"]
            self._title_maps[self.katsu.romaji(title)] = data["id"]
            self._title_maps[self.katsu_foreignless.romaji(title)] = data["id"]
            # Check if there are custom titles defined for this data["id"]
            if data["id"] in self.custom_title_definitions:
                custom_titles = self.custom_title_definitions[data["id"]]
                for custom_title in custom_titles:
                    self._title_maps[custom_title.lower().strip()] = data["id"]

        # Event Maps
        self._event_maps = {}
        for data in events:
            title = data["name"].lower().strip()
            simplified_title = simplify_title(title)
            self._event_maps[title] = data["id"]
            if simplified_title != title:
                self._event_maps[simplified_title] = data["id"]
        for data in events_jp:
            title = data["name"].strip()
            self._event_maps[title] = data["id"]
            self._event_maps[self.katsu.romaji(title)] = data["id"]
            self._event_maps[self.katsu_foreignless.romaji(title)] = data["id"]
            # Check if there are custom titles defined for this data["id"]
            # if data["id"] in self.custom_title_definitions:
            #     custom_titles = self.custom_title_definitions[data["id"]]
            #     for custom_title in custom_titles:
            #         self._event_maps[custom_title.lower().strip()] = data["id"]

Apologies for the delayed reply. There is an actual bug here, but it is not in Cutlet, and your issue must be threading related.
Your example code is not doing anything that would cause a problem. However, despite what you said, your first traceback is definitely using threading, see the first lines referencing threading.py:
Traceback (most recent call last):
  File "C:\Development\Python\Python3.10.6\lib\threading.py", line 1016, in _bootstrap_inner
    self.run()

Given the file path of your code, is this a twitch bot that takes callbacks or something? Is some of the code async?
The actual bug is that the character class is being invalidated / overwritten when parse is called in MeCab. Here is a minimal example of the bug:
from fugashi import Tagger
tagger = Tagger()
xx = tagger("日本語")
print(xx[0].char_type) # => 2
tagger("にほんご") # note this is not assigned anywhere
print(xx[0].char_type) # => 6, this is wrong

However, because Cutlet manages the nodes and tagger internally, it is not possible to for this to happen unless something is happening inside a single Cutlet call, which I can only imagine being caused by threading or async code. You should be able to resolve your issue by using one Cutlet object per thread, and making sure threads are not suspended while Cutlet is making individual calls.

Hi, thanks for the help! Yeah I didn't see the threading reference in my first error.
The code is meant to fetch some data from a repository and use it in a twitch bot; and refreshes the data every N seconds. This is when a new thread is made to run the fetching and romaji conversions.
The twitch bot is async. The function in which Cutlet is called is not; however it is being threaded.
I'll try your suggestion, thanks!


Enable plugins to support specifying source code encoding

After the plug-in is enabled to support specifying source code encoding:

sourceCodeEncoding is a required parameter in pipeline script, but it's actually optional. The user have to specify recordParasoftCoverage pattern: '**/coverage.xml', sourceCodeEncoding: '' instead of recordParasoftCoverage pattern: '**/coverage.xml'(which is what Code Coverage API does).
Error when using recordParasoftCoverage pattern: '**/coverage.xml' in pipeline.
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 7: Missing required parameter: "sourceCodeEncoding" @ line 7, column 17.
                   recordParasoftCoverage pattern: '**/coverage.xml'
                   ^


Fix current motor position only initialized after first moving a motor

When launching the application, the current motor position is only updated to it's actual value once we move any motor for the first time.

Pushed in branch dev_operation_mode


What is the best way to deal with array-like, but not true Array collections in Illustrator

I would like to use the forEach() function on app.activeDocument.pageItems, but it is not a proper Array.  I tried to get around this by using Array.from(app.activeDocument.pageItems), but this does not appear to be an available function.  I was successful using [].concat(app.activeDocument.pageItems).  Is this the most efficient way to make pageItems into an Array? Is there a way to use forEach() with the non-Array, but array like collections in Illustrator?
Perhaps there should be a warning about these array like collections in the readme.

I don't think you can use these functions with collections and illustrator. But the built-in Extendscriot engine has some nice features for collections like everyItem or lastItem. At least I know them from InDesign. ￼ Take a look at the documentation for that￼.
About the notice that for each doesn't work, we accept pull requests. 😉

I don't think you can use these functions with collections and illustrator. But the built-in Extendscriot engine has some nice features for collections like everyItem or lastItem. At least I know them from InDesign. ￼ Take a look at the documentation for that￼.
About the notice that for each doesn't work, we accept pull requests. 😉

Maybe I am missing something, but I don't believe that Illustrator supports everyItem for collections as InDesign does.  I have always written old fashioned for(var i=0, i<collection.length; i++) { manipulateCollection(collection[i]); } loops.
I noticed that attempts to use the array spread shim on the Artboards collection in Illustrator fails because it falls through all of the checks in _toConsumableArray().  However, Artboards and other collections in Illustrator can satisfy all the "duck-type" requirements to be consumed by the _arrayLikeToArray(arr) function.  What negative impact would there be if a new predicate were appended to the _toConsumableArray() checks as follows:
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _duckTypeArray(arr) || _nonIterableSpread(); }

function _duckTypeArray(duck) { if(typeof duck.length === "number" && typeof duck[0] !== "undefined") return _arrayLikeToArray(duck); }

Are there other types of javascript object that are able to satisfy these duck requirements, but explode when passed to _arrayLikeToArray()?

Maybe I am missing something, but I don't believe that Illustrator supports everyItem for collections as InDesign does.  I have always written old fashioned for(var i=0, i<collection.length; i++) { manipulateCollection(collection[i]); } loops.
I noticed that attempts to use the array spread shim on the Artboards collection in Illustrator fails because it falls through all of the checks in _toConsumableArray().  However, Artboards and other collections in Illustrator can satisfy all the "duck-type" requirements to be consumed by the _arrayLikeToArray(arr) function.  What negative impact would there be if a new predicate were appended to the _toConsumableArray() checks as follows:
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _duckTypeArray(arr) || _nonIterableSpread(); }

function _duckTypeArray(duck) { if(typeof duck.length === "number" && typeof duck[0] !== "undefined") return _arrayLikeToArray(duck); }

Are there other types of javascript object that are able to satisfy these duck requirements, but explode when passed to _arrayLikeToArray()?

hi @gotnone sorry that I can't help. I'm actually not getting the context of your question and I stopped doing Adobe Scripting for already quite some time. The simplest answer I have is "ExtendScript is like writing JS in 1999 and  it is annoying" I think your question should be asked in the Adobe Scripting Forums. You will find a lot of helpful and savvy people over there.

hi @gotnone sorry that I can't help. I'm actually not getting the context of your question and I stopped doing Adobe Scripting for already quite some time. The simplest answer I have is "ExtendScript is like writing JS in 1999 and  it is annoying" I think your question should be asked in the Adobe Scripting Forums. You will find a lot of helpful and savvy people over there.

To clarify a little bit, if I understand correctly, _toConsumableArray is a shim that is inserted by babel (@babel/runtime/helpers/toConsumableArray.js) when the array spread operator is used, and probably in some other cases when using extendscriptr.  This function does not handle the ExtendScript array like collections, yet, because they fail the predicate in all of the currently implemented conversion functions.  I believe that it is possible to create a new conversion function which will work with the array like collections (or at least make copies as true Array objects let myartboards = [...app.activeDocument.artboards];).
If I want to modify this babel shim to include this new function and to add it to the list of conversion functions in the _toConsumableArray shim , is it best to ask upstream at babel?  Or, do you know if there is there a way to do so within the extendscriptr or extendscript-es5-shim framework?

To clarify a little bit, if I understand correctly, _toConsumableArray is a shim that is inserted by babel (@babel/runtime/helpers/toConsumableArray.js) when the array spread operator is used, and probably in some other cases when using extendscriptr.  This function does not handle the ExtendScript array like collections, yet, because they fail the predicate in all of the currently implemented conversion functions.  I believe that it is possible to create a new conversion function which will work with the array like collections (or at least make copies as true Array objects let myartboards = [...app.activeDocument.artboards];).
If I want to modify this babel shim to include this new function and to add it to the list of conversion functions in the _toConsumableArray shim , is it best to ask upstream at babel?  Or, do you know if there is there a way to do so within the extendscriptr or extendscript-es5-shim framework?

You could fork extendscriptr and modify your fork as you like

I believe that babel upstream may be the better avenue for getting a solution.  Thanks for looking into this.


769 Resolved Unit Test Guidance and Programming Strategy overlap

Moved info from Unit Testing section in Programming Strategy Vignette into Unit Test Guidance Vignette, and replaced with link to Unit Test Guidance.

@bundfussr I fixed the typo in link to Unit Test Guidance in the Programming Strategy Vignette.
Also, added a section 'Test Coverage' in the Unit Test Guidance.
Do you think any further updates required, regarding expect_dfs_equal()
Thanks!


How to config GET/POST for sortingSource

I enjoyed your's GRID!
How to I can config method GET for sortingSource & pagingSource
Thanks

Have you takena a look at the docs? If this doesn't answer your question, we should update them to add additional information.

Hi @bencripps
I already read the docs. I seen
sortable.sortingSource:  where sorting data will be retrieved (a required parameter for remote sorting) (Same as pagingSource) It looks like accepted only String

I'm not sure I'm 100% clear what you're asking. Are you hoping to configure separate methods when you fetch paging data, and when you are handling a sort event?


[FEATURE] Squash models to reduce size by 1/3

This is more of a suggestion than a feature, but you can reduce the model file size by about 1/3 by squashing the json format to a single line. I did a quick test and it loads fine in NAM. It might not be a big deal now, but when the model repo gets bigger it would be helpful when users are downloading/uploading, and it's an easy thing to implement. I'll attach the example model I "squashed" and the original I tested in the NAM plugin:
sovtek_mig50.zip
The squashed is 276 KB vs the original 412 KB

Good call. I believe there's an indent in the json.dump that should do the trick if removed.

Or maybe support a binary format as well?

Yep, that'd be fine.


When the Reveal Opening Animation Has Finished, Do Sth

I'm using foundation zurb v6, and I want to know when the reveal has opened completely. I used the code below to understand when the reveal has opened:
$(document).on('open.zf.reveal', '.commentReveal', function () {
   Some Codes Here
})

And it worked properly, But when I set an animation to opening & closing the reveal, It won't work anymore. So I think I have to use a code to see when the animation is finished as well. Actually I suppose that I need a callback for reveal animation.
And this is my reveal element:
<div class="reveal commentReveal" data-reveal data-close-on-click="true" data-animation-in="scale-in-up fast" data-animation-out="scale-out-down fast">
    .....
</div>

Is there a trigger to see when the reveal opening animation has finished? I'd appreciate any help on this issue :(

So if you add a console.log statement into callback, it doesn't work? It sure does work for me.


Focus loop on IE9 with numeric.extensions

IE9 crashes when using inputmask.
But before the crash, something happens like a loop of focus in the input.
The html file hosted with scripts:
http://textuploader.com/a1xjv
Inputmask version: 3.1.64-118
Jquery version: 1.10.2

Also happens on IE11

Can you try with the latest version pn github

I've tried the latest version, 3.1.64-150, still not working.
http://textuploader.com/a12ld
You can reproduce de problem too, just save the html and open in InternetExplorer9+.

I will fix it on monday

Problem still occurs in IE11 using the latest build (Sept 9)

@solsticesurfer ,
Can you provide some more info on how to reproduce the problem.  Or create a jsfiddle.
I tried in IE11  and also in IE9 mode but the example above just keeps working.

I think I also have the same problem with latest version (3.2.1-55) and IE10, it is not possible to leave an empty input when using these options {             "alias": "integer",             "groupSeparator": " ",             "autoGroup": true,             "autoUnmask": true,             "unmaskAsNumber": true,             "allowMinus": false,             "allowPlus": false,             "integerDigits": 5         }

Found out that with parameters { "alias": "integer", "groupSeparator": " ", "autoGroup": true, "autoUnmask": true, "unmaskAsNumber": true, "allowMinus": false, "allowPlus": false, "integerDigits": 5 } the problematic one is "autoGroup": true, when I set it to false, you can leave the empty input.

@dluk ,
Can you retest with the latest version.

Look's like it's fixed. Thanks!

@dluk ,
That's great!


Alternatives to define array uniforms

The lighting example uses key names per item'lights[0]': light0. This could become pretty verbose and cumbersome, is it planned / possible to allow passing arrays instead lights: [light0, light1, ...]?

I think that syntax would greatly simplify things! Let us see what @mikolalysenko has to say.

I wanted to do this originally, but ran into the problem that it is ambiguous for vec or mat type uniforms.  That said, I am still open to the idea and there are probably ways to do things better or simpler here if we can resolve the ambiguity.

Reopening since I believe this #591 introduced a bug discussed in #611 and reverted in #612.


[test-operator] Add option to set networkAttachments

This will allow attaching secondary nics to the tempest pods and use that for the egress traffic to the respective network.
Without this all egress traffic flows through the default OCP cluster network and can trigger mtu specific
issues for non cluster n/w traffic as cluster n/w force lower MTU based on network backend used.
Default is empty list so no secondary interfaces will be attached by default.
Related-Issue: OSPRH-6546
As a pull request owner and reviewers, I checked that:

[x] Appropriate testing is done and actually running
[x] Appropriate documentation exists and/or is up-to-date:

[x] README in the role
[x] Content of the docs/source is reflecting the changes

Tested in https://github.com/openstack-k8s-operators/nova-operator/pull/754

/approve


ENH: provide keyword to groupby to reindex by all possible indicies for a multi-index

http://stackoverflow.com/questions/17027470/pandas-groupby-and-multiindex
not sure how useful this is....but say we provide dropna=True (which is the current behavior), but if dropna=False then can reindex by all the combinations of each index level as a reindexer...

user can just use multiindex.from_product and reindex


grids around the component make it render above, not below

When I have this component in a  grid, it renders above its current position and spills out of bounds.

Could you provide an example with JSBin or repo? That would help a lot with reproduction of the issue.

Ok, I'll try soon.

@mgenev do you have any updates on this issue? Actually I'm really not sure that the add-on causes this problem for you, because the add-on provides just input field. The problem might be somewhere in your custom CSS.
You could take a look at demo page. It uses Bootstrap CSS and the add-on, and everything seems fine.


Add app and main files

Create a app.rb file that will serve as your console app entry-point. It should have methods that do the following:

List all books.
List all people.
Create a person (teacher or student, not a plain Person). NOT WORKING (PLEASE, I NEED FEEDBACK)
Create a book. NOT WORKING (PLEASE, I NEED FEEDBACK)
Create a rental.
List all rentals for a given person id.

In your main.rb define the entry point, this will be a method called main that is invoked at the end of your file. This method should do the following:

Present the user with a list of options to perform.
Lets users choose an option.
If needed, ask for parameters for the option.
Have a way to quit the app.

Issue: I'm passing the proper arguments, but still, I can't make it work, please, could you give some hints on this issue?

Thanks, but I already know, that's why I documented the issue on the PR and asked for feedback.
When I solve this, a Linter error appears. I also have an issue with person.role, when trying to list all people, could you please give me thorough feedback on both issues?


Supermicro X10SRI only returning two

Hi there
once i was able to see all sensors, but after updating to ipmiserver 1.2.9 and HA
Core 2024.4.3
Supervisor 2024.04.0
Operating System 12.1
I can only see power on/off and state.
And i really need the Watt usage meter.

Same issue on Supermicro X13SAE-F with 1.2.9 addon and v1.7.0 integration, only two entities are added by the integration:
- switch.server_chassis
- sensor.server_state

They have no attributes other than on/off state.
(this is a new installation, I don't know if it used to work in the past)
Setting log level to TRACE in addon doesn't reveal anything useful. No logs appear from integration under config/logs?provider=core
@ateodorescu Any ideas on how to debug/fix this?

I just deployed https://github.com/mneveroff/ipmi-server and used that instead - it works correctly (in the regards of provisioning sensors at least)


Suggestion: Angle measuring.

Would it be possible to add a protractor, could just overlay a svg of one and scale / rotate it maybe?
Degrees and Radians.

Yeah, it would be nice to know the angle. I could handle a simple text field with the option to set how many significant digits after decimal.


updating user (PUT /user/) should update the whole user, not just password

Now only password is updated when you PUT /user/<user>. According to PUT semantics, I expected to update the whole user. There is no alternative way of updating users in alerta than that.
I can provide a PR for this.

You're right, PUT should update all provided user attributes. PR welcome.

ok I will create a PR in some time.


Trying to get middleware to work with rails

I'm trying to get this to work with Rails, can you offer guidance on where I'm going wrong?
~$: cat config/application.rb
require 'phrender'
...
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.

config.middleware.use Phrender::RackMiddleware, {
  javascript_files: [:ember_driver,'/assets/application.js'],
  javascript: ['App = Ember.Application.create()'],
  index_file: '/assets/phrender.html'
}

~$: cat public/assets/phrender.html
<!doctype html>
<html class="no-js" lang="">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    <body>
    </body>
</html>

~$: rake middleware
use Rack::Sendfile
use ActionDispatch::Static
use Rack::Lock
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007fa3a19e9778>
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
use ActionDispatch::RemoteIp
use ActionDispatch::Reloader
use ActionDispatch::Callbacks
use ActiveRecord::Migration::CheckPending
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use Rack::Head
use Rack::ConditionalGet
use Rack::ETag
use Phrender::RackMiddleware
run App::Application.routes

~$: cat Gemfile
...
gem 'phrender'

~$: which phantomjs
/usr/local/bin/phantomjs

There are no apparent errors development.log, and it appears as if the page only gets hit once (as I understand after hitting the page the first time phantom js should hit it again?)
Please let me know if more information would be helpful.

Alright, so you're using the rack middleware. What this means is that instead of trying to read your index file from the filesystem, it's going to make a call up the middleware stack for your index file, so in this case, rack will eventually call phrender, phrender will ask rails for /phrender.html, then phrender will try to concat all your javascripts together, and execute your ember app in a phantomjs session. The original request path will be set in the phantomjs session for Ember to figure out where to navigate to.
In your case, I'm not sure that you need to leverage all of rails to serve up a single html page. You may need one middleware configuration for your client facing server, then a second middleware configuration including phrender for your bot-facing server.
The other issue I see here is that your javascripts contain the ember driver, followed by your application.
The issue with this is that there's no Ember global until Ember is included, and it's part of your application.js.
The right way to set this up is to include ember, then the driver, then your App code.
If you can't do that, there's an easier solution.
In your router.js:
var Router = Ember.Router.extend({
  didTransition: function() {
    var afterRender = function() {
      console.log('-- PHRENDER COMPLETE --');
    };

    if (window.__PHRENDER) {
      Ember.run.schedule('afterRender', null, afterRender);
    }

    this._super.apply(this, arguments);
  }
});

Router.map(function() {
...
});

This would accomplish the same thing as the ember driver: https://github.com/scoremedia/phrender/blob/master/lib/phrender/support/ember_driver.js
It's less hacky than what the ember driver does even.
Also:
It may be easier to start with a static phrender.html, and set up a really basic config.ru using phrender. Check to make sure your ember app runs under phantomjs.
Clearly the above is a lot of information. Feel free to ask more questions while you're trying to get it set up. If you need an example rackup file the readme contains a simple one: https://github.com/scoremedia/phrender#for-completely-static-javascript-sites


Ensure that CacheKey is serializable across JVMs for entities with a composite primary key

The Infinispan L2 cache serializes the CacheKey instance and sends that to other nodes in the cluster to invalidate cache entries.  The CacheKey implements Serializable, but it is not always actually serializable.  When the CacheKey represents a composite primary key, the type variable is set to an instance of EmbeddedComponentType, which indirectly references SessionFactoryImpl.  While SessionFactoryImpl is serializable within a JVM, it is not serializable across JVMs.
See HHH-9424

The proposed solution in this discussion to name the session factory failed for me with Hibernate 4.3.7. I am using two JVMs with JBoss cache.
The session factory is properly serialized from one JVM. The problem is that when starting another JVM, the sequence of event is that as the SessionFactoryImpl constructor runs, it first initiates the cache with the service that looks up CacheImplementor, and only afterwards it registers itself by name with SessionFactoryRegistry.
While the cache is loading, it tries to de-serialize a SessionFactoryImpl from the other JVM, and then it looks it up by name. However, the name wasn't registered yet so an error is thrown.

@amiryoni JBoss Cache has been deprecated long ago and replaced with Infinispan (same team, some shared code, but lots of improvements).
I'm surprised that JBoss Cache would still work at all with Hibernate 4.x as it was no longer maintained! Please update to Infinispan.

Indeed I had to go through some effort and custom code to make it work - I don't have the ability to upgrade to infinispan right now.
However, this is not about jboss cache, I expect that you will have the same problem with infinispan or possibly with other cache providers.
I fixed this locally by reversing the order of events and it works fine now. This is, no doubt in my mind, a bug in hibernate. If you think that it is not a bug then you need to document a strong requirement from your cache provider to not eagerly load objects from another JVM until after the session factory is done initializing.


Enhancement/switch elasticsearch  package

Updated dependencies

Removed github.com/mattbaird/elastigo package
Added gopkg.in/olivere/elastic.v5 package

New Elasticsearch producer implementation ( #87 )

Updated config format
Added SetGzip feature
Removed now unsupported Connections feature
Changed to batch producer implementation with bulk requests for messages

Fixed shutdown panic from issue #146

Coverage remained the same at 64.637% when pulling 7e050bbf4c074c0fd9065683b98bed45c0fcd5ab on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

Coverage remained the same at 64.637% when pulling 7e050bbf4c074c0fd9065683b98bed45c0fcd5ab on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

This PR now also fix the shutdown panic from issue #146

Coverage decreased (-0.05%) to 64.588% when pulling ccac53f6ee2fff1a82b6f857dcf2c40d5d6a304b on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

Coverage decreased (-0.05%) to 64.588% when pulling 7ad94138d6c1e65983704292756b22c4b1d63594 on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

Coverage decreased (-0.05%) to 64.588% when pulling 7ad94138d6c1e65983704292756b22c4b1d63594 on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

Coverage decreased (-0.05%) to 64.588% when pulling 7ad94138d6c1e65983704292756b22c4b1d63594 on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

Looks good to me, added a couple of trivial comments above

Coverage decreased (-0.05%) to 64.588% when pulling 99f816dfe347c221b4bd16b4f8f2e4151d196007 on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

Coverage decreased (-0.1%) to 64.49% when pulling c08ff0687d0cdbec1268accf0e06595a36d4dfe4 on enhancement/switch_elasticsearch__package into 463ce5720a459f885cd5885cbfb2674377d60371 on master.

@arnecls: Please review the changes later on


Use image cache and harbor for public images in kubernetes

Checklist

[ ] Affected Issues have been mentioned in the Closing issues section
[ ] Documentation has been written/updated
[x] PR title is ready for changelog and subsystem label(s) applied

This solves two problems:

Use the amazee.io image cache for public images in kubectl-build-deploy-dind
Copies public images into harbor, then use those images in k8s instead of pulling directly from docker hub (or the image cache)

Closing issues
n/a

In order to test locally, I ended up modifying tests/files/drupal9-mariadb/docker-compose.yml and adding a new service:
solr:
   image: amazeeio/solr:6.6-drupal
   labels:
     lagoon.type: solr
   expose:
     - "8983"

I saw no problems in my local k8s, it looked like a solr deployment and pod were created as I would expect.
I checked all the test files and none of them use external images, they all use a local dockerfile. I'm not sure what the best way to add a test for this new public image copying stuff. I didn't commit the change because I thought there might be an issue with jenkins talking to the same image cache for every build test?

tested with running "amazeeiolagoon/kubectl-build-deploy-dind:pr-2300" directly inside a kubernetes cluster and that worked perfectly, nice work! thank you.


Try removing CDT requirements as yum_requirements.txt may be enough

Checklist

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

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

The build section contained an unexpected subsection name. noach is not a valid subsection name.
requirements: host: python >= 3.6 should not contain a space between relational operator and the version, i.e. python >=3.6
requirements: run: python >= 3.6 should not contain a space between relational operator and the version, i.e. python >=3.6
Non noarch packages should have python requirement without any version constraints.
Non noarch packages should have python requirement without any version constraints.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

noarch packages can't have selectors. If the selectors are necessary, please remove noarch: python.

Closing, we can't do without Mac-specific dependencies


Configure apache balancer with up to 10 members at startup

https://bugzilla.redhat.com/show_bug.cgi?id=1422988
Start Ui, Web Service, Web Socket, etc. puma workers bound to a port
from STARTING_PORT to the maximum worker count port (3000 to 3009 if max
worker count is 10).  Configure apache at boot with these ports as
balancer members.
Fixes a failure after we start new puma workers and try to gracefully
restart apache.  The next request will fail since apache is waiting for
active connections to close before restarting.  The subsequent request will
then be ok since the failure would cause the websocket connections to
close, allowing apaache to restart fully.
Previously, we would add and remove members in the balancer configuration
when starting or stopping puma workers.  We would then gracefully restart
apache since the new workers wouldn't be used until apache reloaded the
configuration.  Note, we didn't do anything after removing members from
the balancer configuration because apache's mod_proxy_balancer gracefully
handles dead members by marking them as in Error and not retrying them for
60 seconds by default. Therefore, it's not necessary to restart apache to
"remove" members.
The problem is when we would try to add balancer members to the
configuration and gracefully restart apache.  It turns out, our web
socket workers maintain active connections to apache so apache wouldn't
restart until those connections were closed.
Now, we take the idea mentioned above of the mod_proxy_balancer
keeping track of which members are alive or in error by configuring up
to 10, maximum_workers_count, members at server startup.  We can then
start and stop workers and let apache route traffic to the members that
are alive.  We no longer have to update the apache configuration and
restart it when a worker starts or stops.
Note, apache has a graceful reload option that could allow us to
maintain an accurate list of balancer members as workers start and stop
and tell apache workers to gracefully reload the configuration.  This
option was buggy until fixed in [1]. It also required us to keep
touching the balancer configuration which we probably shouldn't have ben
doing in the first place.
[1] https://bz.apache.org/bugzilla/show_bug.cgi?id=44736

@bdunne @carbonin @Fryguy @gtanzillo please review.

@jrafanie Can we get rid of even more of this code if we just ship a static file containing the balancer member list?

@jrafanie Can we get rid of even more of this code if we just ship a static file containing the balancer member list?

@bdunne So, it looks like this:
<Proxy balancer://evmcluster_ui/ lbmethod=byrequests>
BalancerMember http://<IP_ADDRESS>:3000
BalancerMember http://<IP_ADDRESS>:3001
BalancerMember http://<IP_ADDRESS>:3002
BalancerMember http://<IP_ADDRESS>:3003
BalancerMember http://<IP_ADDRESS>:3004
BalancerMember http://<IP_ADDRESS>:3005
BalancerMember http://<IP_ADDRESS>:3006
BalancerMember http://<IP_ADDRESS>:3007
BalancerMember http://<IP_ADDRESS>:3008
BalancerMember http://<IP_ADDRESS>:3009
</Proxy>

evmcluster_ui is dynamic, it doesn't need to be.
lbmethod=byrequests is dynamic (by configuration)
The port value is dynamic based on the type of worker, it doesn't need to be.
We could ship the file if we dropped the dynamic nature of those values.

@skateman Can you review this too?

@jrafanie looks like websockets are working with any possible number of workers. Not sure what else should I test... :+1:

@gtanzillo @carbonin I think this is ready to go, what do you think?

Euwe backport details:
$ git log -1
commit 44c8abf7d0e22f167b2b61976f34f6d8d39eec7a
Author: Gregg Tanzillo<EMAIL_ADDRESS>Date:   Fri Mar 10 17:11:25 2017 -0500

    Merge pull request #14007 from jrafanie/set_apache_balancer_once_at_startup

    Configure apache balancer with up to 10 members at startup
    (cherry picked from commit 8518e63699d4f7223d16a5461315270e0143abdf)

    https://bugzilla.redhat.com/show_bug.cgi?id=1432463


Fix errored notifications loading in server start-up

Issues ported to trunk branch in a different PR. Hence closing the PR.


test itself passed but there is some  error in the end

1, go to test : ~/tests/dhcp/Sanity
2, start  tmt run -avvv provision -h minute -i f36 test --name .
results: test itself passed but there is some  error in the end
LOG:
tmt-1.20.dev-1.20221122165818832033.main.8.gdc1bc1a.fc37.noarch
            out: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
            out: ::   Duration: 37s
            out: ::   Phases: 3 good, 0 bad
            out: ::   OVERALL RESULT: PASS ()
            out:
            out: Shared connection to <IP_ADDRESS> closed.
    fail: Failed to pull workdir from the guest. This usually means that login as 'root' to the guest does not work.
finish
    guest: removed
    summary: 0 tasks completed

stderr (2 lines)
kex_exchange_identification: read: Connection reset by peer
Connection reset by <IP_ADDRESS> port 22

Failed to run command: ssh -oForwardX11=no -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oIdentitiesOnly=yes -i/var/tmp/tmt/run-012/plans/all/provision/default-0/1minutetip -i/var/tmp/tmt/run-012/plans/all/provision/default-0/1minutetip-ecdsa -S/run/user/1000/tmt/tmpv7h_x4sk<EMAIL_ADDRESS>'export TMT_PLAN_DATA=/var/tmp/tmt/run-012/plans/all/data; yum install -y rsync' Reason: Command returned '255'.
✘-2 14:01 ~/tests/dhcp/Sanity [master|…4] $ pwd
/home/psklenar/tests/dhcp/Sanity
✔ 14:01 ~/tests/dhcp/Sanity [master|…4] $ tmt run -avvv provision -h minute -i f36 test --name .

I've tried to reproduce and I'm not able to login to the provided machine after the test finishes.
tmt needs to pull (via ssh+rsync) beakerlib data to evaluate the results.
The only action item on tmt could be to try multiple times, however in this case it will not help (machine doesn't allow root to connect back).

Hi. Is possible that machine changes ip address during testing?
This is not covered by minute plugin and I think that 1minutetip doesn't support this either.
I don't think this is bug for now. But if there is plans how to monitor network interfaces and assigned ip addresses in tmt, I would like to see it :).
I tested dhcp/Sanity/Exploit/ in 1minutetip and I have same results. After test, machine is not usable any more.
Output from 1minutetip:
Shared connection to <IP_ADDRESS> closed.
[ INFO  ] Establishing connection...
[ ERROR ] AVC check: FAIL

here, AVC check fails because 1minutetip is not able to connect to machine.
I think that better cleanup in test would be solution of this bug.
Test restarts networkmanager and kills dhcpd server with signal 9 (not much clean shutdown) in cleanup phase
which may leads to machine which is not usable.
Result:
Seems to me as a test bug and not tmt/1minutetip related issue.

I can confirm this with provision -h connect at least:
$ cat plans/example.fmf
summary: Basic smoke test
provision:
    how: connect
    guest: <IP_ADDRESS>
    port: 1234
    key: ~/.ssh/id_rsa
    user: root
execute:
    how: tmt
    script: ls /

(substitute guest/port for a valid remote host)
$ tmt -vv run
/var/tmp/tmt/run-023

/plans/example
summary: Basic smoke test
    discover
        how: shell
        summary: 1 test selected
            /script-00
    provision
        how: connect
        guest: <IP_ADDRESS>
        user: root
        port: 1234
        key: ~/.ssh/id_rsa
        distro: Red Hat Enterprise Linux 8.7 (Ootpa)
        kernel: 4.18.0-425.13.1.el8_7.x86_64
        summary: 1 guest provisioned
    prepare
        summary: 0 preparations applied
    execute
        how: tmt
        exit-first: False
            test: /script-00
                cmd: ls /
                00:00:00 pass /script-00 [1/1]
        summary: 1 test executed
    report
        how: display
            pass /script-00
                output.txt: /var/tmp/tmt/run-023/plans/example/execute/data/script-00/output.txt
        summary: 1 test passed
    finish
        summary: 0 tasks completed

total: 1 test passed

and the output
$ cat /var/tmp/tmt/run-023/plans/example/execute/data/script-00/output.txt
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
Shared connection to <IP_ADDRESS> closed.

I actually managed to independently find out what causes this.
It's the -t argument to ssh, forced pseudo-tty allocation.
$ ssh -i /some/key -t<EMAIL_ADDRESS>ls -1 /
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
Connection to <IP_ADDRESS> closed.

$ ssh -i /some/key<EMAIL_ADDRESS>ls -1 /
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

So tmt is probably using ssh -t somewhere without realizing this side-effect.

Hi. I looked at:
tmt/steps/provision/init.py
and for example:
def execute(self ...

        """
        Execute a command on the guest.
       ...

        # Run in interactive mode if requested
        if interactive:
            ssh_command += Command('-t')

        # Force ssh to allocate pseudo-terminal if requested. Without a pseudo-terminal,
        # remote processes spawned by SSH would keep running after SSH process death, e.g.
        # in the case of a timeout.
        #
        # Note that polite request, `-t`, is not enough since `ssh` itself has no pseudo-terminal,
        # and a single `-t` wouldn't have the necessary effect.
        if test_session:
            ssh_command += Command('-tt')

tmt is definitely using -t and even -tt when running tests. Without this option, duration handling would be broken, it'd be either not honored, or remote processes would be running after disconnecting from guests.
I'm not sure I fully understand what goes wrong, and where that "connection closed" error comes from, but https://github.com/teemtee/tmt/issues/1703#issuecomment-1427886314 seems to have a good-enough reproducer, that should help the investigation.


feat(Abide): add validator-specific error messages

Description
It would be great to display different error messages depending on failed validation.
Now you can add different error messages for each validator using the [data-form-error-on] attribute:
<input required type="email">
Required
Invalid

BREAKING CHANGE: Foundation.Abide#validateText() no longer checks if the input is required. Use the Foundation.Abide#requiredCheck() method for that.

Closes #10799

Types of changes

[x] Documentation
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (anything that would change an existing functionality)
[ ] Maintenance (refactor, code cleaning, development tools...)

Checklist

[x] I have read and follow the CONTRIBUTING.md document.
[x] The pull request title and template are correctly filled.
[x] The pull request targets the right branch (develop or develop-v...).
[x] My commits are correctly titled and contain all relevant information.
[x] I have updated the documentation accordingly to my changes (if relevant).
[x] I have added tests to cover my changes (if relevant).

Hi @soylent,
awesome PR which also includes new tests.
We'll check it and give you feedback.

Thanks, @DanielRuf. Please let me know if I can make this PR better.

Given the data-attribute API is the most common approach, I think the backwards incompatibility in the JS API is probably fine, but we'll need to note it in release notes.
There is a merge conflict right now - I can address that when merging. @DanielRuf do you see any reason not to merge this for 6.6?

We could also need unit tests but so far it looks good.

Please resolve the conflicts / rebase.

Please resolve the conflicts / rebase.

Done!

This pull request has been mentioned on Foundation Open Source Community. There might be relevant details there:
https://foundation.discourse.group/t/foundation-for-sites-6-6-2/1936/1


Increasing MSRV problem with wasmer version auto-updating

cosmwasm 0.16.3 uses wasmer 2.0.
However, wasmer 2.0 does not pin subpackages to 2.0, so the minor version is automatically increased. (2.0 -> 2.2)
The problem is that wasmer 2.2's MSRV is different from 2.0. Previously it was rust 1.54, but rust 1.55 is required.
We were able to restrict the wasmer version via cargo.lock in the cosmwasm and wasmvm repo.
But the problem arises again with contracts.
For test logic of contracts, refer to cosmwasm-vm package as dev-dependencies. So, the contract again has wasmer 2.2.0 dependency, and the above problem is reproduced.
After all, a lower rust version can compile the contract, but cannot test that. Until cargo.lock limits the wasmer subpackages.
So we must bump-up up to cosmwasm 0.16.4 with msrv of 1.55.0.

This is precisely because of hashbrown 0.12.0 of rkyv's dependencies used by wasmer.
The problem of wasmer version automatically updating was solved by pinning subpackages to "=2.2.0" in 2.2.0.
But the rkyv is still not pinned so the same problem is reproduced.
This problem has been fixed in cosmwasm 0.16.5, but it may occur again in the process of developing a new contract or updating an existing contract.
https://github.com/CosmWasm/cosmwasm/issues/1244

similar issue https://github.com/CosmWasm/cosmwasm/issues/1204
I recommend that you look at all the comments on the above issues.
Fundamentally, the problem arises because there is no specifications of the cargo dependency system and msrv.
This bomb can be brust again anywhere we use Rust.


Can't install on emulator with Google API

APK can be installed on the emulator with android-24 image, but the same emulator with Google API causes:
Failed to install test-butler-app-1.1.0.apk: Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Package couldn't be installed in /data/app/com.linkedin.android.testbutler-1: Package com.linkedin.android.testbutler has no signatures that match those in shared user android.uid.system; ignoring!]
Can this be fixed in any way? Platform 25 does not have images without Google API at this point.

If the system keystore for the Google APIs emulators is public like the non-Google APIs emulators, then we could make a variant of Test Butler that works for those emulators. But if not, I don't think there's anything we can do. It's a bit concerning that API 25 doesn't have an image without Google APIs, not just for test butler, but for developer testing in general. 😞
I did a (VERY) quick search and didn't see the keystore for Google APIs emulators available, but feel free to reopen this if I missed it somewhere.

If the system keystore for the Google APIs emulators is public like the non-Google APIs emulators, then we could make a variant of Test Butler that works for those emulators. But if not, I don't think there's anything we can do. It's a bit concerning that API 25 doesn't have an image without Google APIs, not just for test butler, but for developer testing in general. 😞
I did a (VERY) quick search and didn't see the keystore for Google APIs emulators available, but feel free to reopen this if I missed it somewhere.

I'm pretty sure I've been running API 25 with Google APIs on an emulator with TB 1.0.1 running fine...

I am still reproducing this behavior. Is there any way we can extract key store that Google API shipped emulators use?

Remove android:sharedUserId from the menifest file of test-butler-app.

I happen to run into this problem as well, but only for:

Android O Beta on an actual device
the new Android O (API26) emulators (Google Play, Google APIs)
the new Android Nougat (API25) emulators with Google Play

Works find on Android Nougat (API25) emulator with Google APIs

I am now also facing this problem. Was running an emulator 25 with google-apis before with test-butler - but when recreating this emulator I am also getting:
Failed to install test-butler-app-1.3.1.apk: Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Package couldn't be installed in /data/app/com.linkedin.android.testbutler-Fyya9bfxBI9dEauibDCf8g==: Package com.linkedin.android.testbutler has no signatures that match those in shared user android.uid.system; ignoring!]
seems google made changes to the emulator so this is not possible anymore ..-(

Have asked Google to produce AOSP images for missing ones and they're taking it on! 😄https://issuetracker.google.com/issues/79784000

I'm still seeing this issue on v2.0.1 on a Pixel 3a XL emulator with API 28 without Google APIs.
Is there anything else to get arround this issue?

android:sharedUserId

How do i remove this property can someone please give steps ?
Where to go?
Which project to open ?
which manifest are you refering to , i cant see it in my manifest.xml

android:sharedUserId

How do i remove this property can someone please give steps ?
Where to go?
Which project to open ?
which manifest are you refering to , i cant see it in my manifest.xml

No response ??? How do i run this please someone help


WiFi+BLE together not working

Hello,
This is an issue that i found while i have tried that new ble arduino example in esp32.
Every example i have tried to work with.
What happens is when i try to connect wifi.begin after or before bluetooth connection has established.
it goes into reboot loop.
Would you just let me know that it is my side of problem. And if it how can i solve it or it's some esp error that needed some research.

Howdy my friend.  Unfortunately, this is a known problem ... see #110.  It appears that we are running out of available RAM when trying to run both BLE and WiFi together at the same time.  We are studying ways that we can reduce RAM usage in our libraries.  If the match is close enough for you, can I ask that you close out this issue and we'll track through #110?

https://github.com/espressif/arduino-esp32/issues/1756


Change Search key, fix docs and readme

Codecov Report

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

@@          Coverage Diff          @@
##           master    #49   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          12     12
  Lines         198    198
  Branches       39     39
=====================================
  Hits          198    198

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 8ab7b3b...9c19580. Read the comment docs.


hey one more problenm

as the html is base.html and when i changed it to index.html, i cnnot even show the image in local dev server, but the github page require index.html instead of base how did you fix this?

The base.html is a html template used to generate the build.html. You can rename the generated build.html into index.html to access the app from root url.


[Dark Mode] Update: Analysis

This PR updates the Analysis category to support dark mode.

There seems to be a glitch with the popover in the Statistical query (group and sort) sample.

I've stepped through the code and it doesn't seem to be caused by anything on our end. Could you confirm @yo1995 ?

I've stepped through the code and it doesn't seem to be caused by anything on our end. This occurs on v.next but not on the AppStore version. Could you confirm @yo1995 ?

Yes please refer to /common-samples/issues/2149 It is OK to leave it there and we may tackle it later.

Date field have different color gradients (may be specific to iOS 14)

Yes, this compact style is specific to iOS 14. The background color and the constraints of the UI seem to be fixed. Now that you point it out, I think this style looks a bit odd here; especially since it won't span the entire row. I've changed it to the wheels style now which is what the style was originally before the update. I can revert it back to compact if necessary.Please let me know what you think!

Can these sort images be swapped dynamically? They blend well in light mode but stand out in dark mode

Unfortunately, these images are pulled from the Assets.xcassets folder so I can't change the background color.

I've changed it to the wheels style now which is what the style was originally before the update.

@vquach2404 It looks like the screenshot needs to be updated as it doesn't reflect what the users will see. At least, it doesn't match what I'm seeing.

@philium Thanks for catching that! I've updated the screenshot, please give another review.


Assessing first production dataset: only 1958?

@dhruvbalwada, welcome to the feedstock repository created from https://github.com/pangeo-forge/staged-recipes/pull/122.
Our first production deployment of this feedstock succeeded. The endpoint URL for accessing this dataset was posted to https://pangeo-forge.org/catalog. (And yes, we really need to improve this bare-bones catalog page!)
Using that URL, we can open the dataset as follows:
import fsspec
import xarray as xr

dataset_public_url = 'https://ncsa.osn.xsede.org/Pangeo/pangeo-forge/WOA_1degree_monthly-feedstock/woa18-1deg-monthly.zarr'
mapper = fsspec.get_mapper(dataset_public_url)
ds = xr.open_zarr(mapper, consolidated=True)

In doing this, I noticed that the dataset only spans 12 monthly time steps (just the year 1958):
ds["time"]

array([cftime.Datetime360Day(1958, 1, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 2, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 3, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 4, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 5, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 6, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 7, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 8, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 9, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 10, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 11, 16, 0, 0, 0, 0, has_year_zero=True),
       cftime.Datetime360Day(1958, 12, 16, 0, 0, 0, 0, has_year_zero=True)],
      dtype=object)

Was this intentional? If not, we can make a PR to update
https://github.com/pangeo-forge/WOA_1degree_monthly-feedstock/blob/main/feedstock/recipe.py
accordingly.
cc @rabernat, and @jbusecke because you were previously following this PR's progress

Thanks for working on this Charles! Really glad this works now.
Yes the time axis was intentional (at least the months, the year is arbitrary). The dataset is essentially a monthly climatology - meaning average of all Jan data together, all Feb data together... So 12 time points are correct.

Great! So this dataset is ready to go using the url provided in my comment above!
If you find any problems with it, just open an Issue or PR on this repo and tag me. Enjoy.


Auto-update dependencies. [DO NOT MERGE]

Every one of these updates is broken due to some breaking change in an API. Just making a PR out of it so that I we can track more easily and manually update and fix these samples.

Closing this. I just added some bugs for the samples we need to manually update. I added the packages with breaking changes to the versions ignore list.


Update conf for webpack 2.1.0-beta.25

Moving vue-loader options to module.rules since webpack 2 no longer allows custom properties in configuration

Thanks, this is addressed by #161 , and latest vue-loader doesn't require explicitly configuring buble loader.


Use Device UIKit scale factor for loading images from file

This fixes screenshot comparisons failing on iPhone Plus models that use a
3x scale factor instead of the more common 2x scale factor

Thanks!


Hide photo space when no photo add yet

When no photo is loaded yet, it could not show the white space between top buttons and the loaded photos counter

I did fix it in my Fork,

Merged your suggestions. Thumbnails show/hide automatically when available.


Is an html strip-tags method a worth stdlib addition?

I'm working on a pure-crystal implementation of an HTML utility function called striptags. Would it be a welcome contribution to stdlib, perhaps under HTML, which currently provides only escape/unescape?
The implementation I'm working is a little more enhanced than just XML.parse(dirty).inner_text (a la crinja's striptags) -- I have added the ability to whitelist tags and attributes which can stay in the document, and it filters out the rest.
I was surprised to see a lack of html strip-tags routines in use in the crystal ecosystem. There are some minimal attempts, in crynja and in a handcrafted rust aggregator -- the latter seemed promising but eventually I realized it is simply wrapping a function from a rust crate.
NEED
This function is important for user contributed content sites, because it allows a non-regex based way of sanitizing user markup while still allowing user contributed markup. Attempts to sanitize html by way of regexes are notorious for being XSS vectors.
Comparison / Community Interest Survey

Rust has a crate which provides a striptags implementation, and it was ported over to crystal for the above linked project. There is also a Crate called Ammonia which provides whitelist-style sanitation.
Rails ActiveSupport also provides access to a well established gem for which ActiveSupport wraps into a function called striptags. This includes a whitelist, and also filters html attributes.
PHP provides this function, and it has a whitelist. It does not filter tag attributes, and it warns that it is insufficient for XSS prevention (likely due to the attribute filter issue).
Python seems to have a storied history here. A StackOverflow post became canonical, included in Django, and then was found to be vulnerable to XSS. That SO post was viewed 350k times over 15 years. There is now a library called Bleach (provided by Mozilla - 2.5k stars on github) which provides this feature, including a whitelist. As of about a year ago Bleach is deprecated. There is a new project called nh3 which is importing in the Ammonia HTML sanitizer from Rust.

Risks

stdlib bloat -- is it worth it to have this ability in stdlib?
getting it wrong -- if it's wrong, and people depend on it, then it'll be the source of a Crystal core CVE. On the other hand, if it's right, people can reach for it instead of resorting to a regex -- I saw one such str =~ /^\<\w+\>/ example in my searches.

Other options

It could be published as a shard, as has been done in several of the languages I surveyed. I believe that there is enough interest demonstrated that including it could be part of the "batteries included" notion, if that's still a thing.
It could just be published on my blog or in a random SO article, as Python's was for so long.

Cheers!

Sounds like you're looking for https://github.com/straight-shoota/sanitize
I published this as a shard for independent development and because of its complexity. I could see this shard (or a similar implementation) becoming a part of stdlib if we consider the use case to be very common. It's certainly an very important feature when you're dealing with untrusted HTML content.

Absolutely excellent, and I wish I'd been able to come across that in my searches.

Yeah, I guess there are quite a lot different terms for this kind of thing. Probably because you can view and resolve the problem from different angles. So that's not ideal for search.
What did you look for and where? Maybe we can improve discoverability a bit.

I was focused on the keyword "striptags". I looked in the HTML parsing section of awesome-crystal, and I search github for lang:Crystal striptags -- which is where I came across the inner-text pattern in crinja I referenced.

Thanks. lang:Crystal striptags works now 😏
https://shardbox.org/categories/HTML_XML_Parsing would've brought you there as well.

I've forgotten about or never heard of shardbox.org, but that makes me realize that I would have found it with https://shards.info/search?query=html too.

this example also similar to strip tags: https://github.com/kostya/lexbor/blob/master/examples/texts.cr


Add DDP training

Codecov Report

Merging #170 (59511d0) into main (11c8a28) will decrease coverage by 0.15%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #170      +/-   ##
==========================================
- Coverage   87.68%   87.52%   -0.16%
==========================================
  Files          57       57
  Lines        2339     2309      -30
==========================================
- Hits         2051     2021      -30
  Misses        288      288

Impacted Files
Coverage Δ

ezflow/modules/models/recurrent.py
47.61% <0.00%> (-2.39%)
:arrow_down:

ezflow/similarity/learnable_cost.py
85.13% <0.00%> (-0.58%)
:arrow_down:

ezflow/decoder/iterative/recurrent_lookup.py
77.22% <0.00%> (-0.45%)
:arrow_down:

ezflow/modules/dap.py
88.46% <0.00%> (-0.43%)
:arrow_down:

ezflow/functional/criterion/multiscale.py
80.00% <0.00%> (-0.40%)
:arrow_down:

ezflow/modules/blocks.py
86.59% <0.00%> (-0.28%)
:arrow_down:

ezflow/similarity/correlation/layer.py
94.73% <0.00%> (-0.27%)
:arrow_down:

ezflow/functional/criterion/sequence.py
96.15% <0.00%> (-0.15%)
:arrow_down:

ezflow/similarity/correlation/pairwise.py
97.77% <0.00%> (-0.14%)
:arrow_down:

ezflow/similarity/correlation/sampler.py
93.47% <0.00%> (-0.14%)
:arrow_down:

... and 9 more


Ci2

Updates Dockerfile to fix build (closes #23)

switch to ubuntu:18.04
makes image independent of base_fsl and base_validator image as they are outdated
switch to miniconda

move to circleci2.0

Todo:

[ ] update code to run with current pybids

Hi @oesteban
could you please do the disconnect-reconnect-thing (or whatever you did for baracus) for the tracula circleci project as well. Thanks.

Sorry @fliem, I missed this. Have you solved the issue?

Thanks @oesteban. I figured out that I have permission to add keys myself.


Avoid Firefox timeout issue on Travis by testing on Sauce. Fixes #5336

Firefox tests have been failing on Travis at around test 100 +/- 10 very consistently.  They do not fail locally or on Sauce, and there is no good way to debug Travis since there is no interactive VM mode.  For now, shifting Firefox testing to Sauce.  The main loss here is that external PR's won't get the benefit of testing on 2 browsers, will now be only Chrome.
Note, will test https://github.com/Polymer/polymer/pull/5346 first as preferred solution; if that still fails will use this as resolution.
Fixes #5336

Closing in favor of https://github.com/Polymer/polymer/pull/5346