Remove the attributes cache

Caching can be handled by custom attribute mutators, if needed.

Browser
Test
Branch
Result (ms)

Chrome
Creation
Master
2.6

Chrome
Creation
attributes
2.0

Chrome
Selection
Master
.22

Chrome
Selection
attributes
.23

FireFox
Creation
Master
6.16

FireFox
Creation
attributes
5.57

FireFox
Selection
Master
.44

FireFox
Selection
attributes
.43

Safari
Creation
Master
1.7

Safari
Creation
attributes
1.52

Safari
Selection
Master
.45

Safari
Selection
attributes
.43

The reason there isn't much of a difference on selection is that there is only one attribute on the element that has an attribute change. If you have a large number of attributes and only one changes, the secondary check helps quite a bit.
I had initially hoped that statics would be able to alleviate that quite a bit, but it turns out there are a lot of attributes that never change value, but cannot be easily determined from our templates.
The attrs object might also be necessary for the statics check and for importing the attributes on a server side rendered DOM node. Since it has a large impact on creation time, perhaps there is some way that we can mitigate that part.


Since v21.04.3 (maybe sooner) uploading images doesn't work if using S3 storage

Describe the bug
We have been using Amazon S3 storage without issues up to version v21.04, last Friday I upgraded to v21.04.3 and we are unable to upload pictures if we use the "Insert an image" option in the editor. Attachments do work if we upload the same image from the Attachments panel. The error is "File path /updates/images/gallery/{image_name} could nto be uploaded to. Ensure it is writable to the server". The same error happens with v21.04.4
Steps To Reproduce
Steps to reproduce the behavior:

Go to any document
Edit the document
Click on "insert an image" and drag and drop an image to upload it
See error

Expected behavior
It should upload to Amazon S3
Screenshots

Your Configuration (please complete the following information):

Exact BookStack Version (Found in settings): v21.04.4
PHP Version: 8.0.3
Hosting Method (Nginx/Apache/Docker): Apache

Additional context
Our Amazon S3 bucket is set to public, and also we didn't touch the permissions in a while. I also didn't touch the .env file in a while.

@ssddanbrown I rolled back to 21.04.2 and it is working now. So it seems to be introduced in 21.04.3

Okay, Looks like my presumption of (PUT Request with ACLs) being the same as (PUT Request then ACL request) was wrong. From the AWS docs:

If the IAM user must update the object's access control list (ACL) during the upload, then the user also must have permissions for s3:PutObjectAcl in their IAM policy.

So looks like providing the IAM policy for the connected BookStack account with PutObjectAcl permission would work. This may break other instances though.
Gets tricky, I made this change to simplify things to work better with S3-like systems that were breaking the old way. Might need to do some config sniffing and treat S3 differently to S3-like here.

Alright @ssddanbrown thank you for the update, this explains the 403 Forbidden responses. For now I will stay on 21.04.2 and keep an eye on this issue in case there is a change on the AWS S3 implementation.

@diegopau I've just released v21.04.5 with a patch to change the behaviour back to that of 21.04.2 for AWS S3 usage, but with some tweaks to avoid issues for those using non-AWS S3 services.I'll therefore close this off but just shout if you still have any issues after upgrading to v21.04.5.

Thanks, I can confirm that all is working after upgrading to 21.04.5

@diegopau Awesome, Thanks for confirming!

Did yours break @sherpya? I'd have thought that in the vast majority of cases these files will be uploaded with an owner and/or group matching the server process that would be serving static files.

Did yours break @sherpya? I'd have thought that in the vast majority of cases these files will be uploaded with an owner and/or group matching the server process that would be serving static files.

yes I use php-fpm with a dedicated user for bookstack, static files are server by nginx that runs as different user

🤦 Thanks @sherpya for confirming and my apologies. Have opened #2758, assigned to the next patch, to cover this.


feat: LCtxSearch abstraction to search the local context in a single pass

Description:
The main purpose of this definition is to build an abstraction around searching the local context for variables of certain expected types. We currently already do this in multiple places, and building an abstraction around it allows us to deduplicate code, making it more robust, more powerful and more performant (although the performance win is probably negligible, given we don't search the local context that often).

I've built a datastructure that stores a set of patterns to search for, this allows us to cleanly separate the declaration of what to search for from doing the actual search.
Using this abstraction, I've reimplemented SymContext.fromLocalContext, to now do only two passes over the local context, instead of a separate pass for each variable we look for.

In future PRs, we'd like to:

[ ] extract an AxEffects.fromLocalContext using this search abstraction

[ ] use the former in the stand-alone explodeStep tactic, and

[ ] use the search abstraction in sym_aggregate

Testing:
What tests have been run? Did make all succeed for your changes? Was
conformance testing successful on an Aarch64 machine? WIP
License:
By submitting this pull request, I confirm that my contribution is
made under the terms of the Apache 2.0 license.

@bollu, this is ready for review, modulo the fact that it's stacked on #187. Could you do a pass already? This one is a bit tricky, so I'd appreciate your thoughts!

Rebased on ready for review

@alexkeizer Could you please hit Squash and merge if/when the CI succeeds?


feat(ios): replace deprecated properties

Platforms affected
iOS
Motivation and Context
#631
Description
Replace deprecated properties
Testing
Expect GitHub Actions test suite to pass as before
Checklist

[x] I've run the tests to see all new and existing tests pass
[x] I added automated test coverage as appropriate for this change
[x] Commit is prefixed with (platform) if this change only applies to one platform (e.g. (android))
[x] If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct keyword to close issues using keywords)
[x] I've updated the documentation if necessary

stringByRemovingPercentEncoding and stringByAddingPercentEncodingWithAllowedCharacters are both iOS 7+ so compatibility wise it should be fine.
The newer APIs gives a warning...
stringByRemovingPercentEncoding:

You must call this method only on strings that you know to be percent-encoded. Calling this method on strings that are not percent-encoded can lead to misinterpreting a percent character as the beginning of a percent-encoded sequence.

stringByAddingPercentEncodingWithAllowedCharacters:

You must not call this method on strings that are already percent-encoded. Calling this method on strings that are already percent-encoded will cause percent characters in a percent-encoded sequence to be percent-encoded twice.

I'm not sure how the older deprecated APIs behave but the encodePath API path has comments suggesting it doesn't know if the given url is already encoded or not (by blindly decoding it and re-encoding it). Depending how the deprecated API behaves, switching out the APIs might not be sufficient.
stringByAddingPercentEncodingWithAllowedCharacters has a similar warning that encoding an already encoded url will result in double encoding.
Also stringByAddingPercentEncodingWithAllowedCharacters is being used wrong, as it doesn't accept character encoding, but a NSCharacterSet instead defining allowed characters. So that's failing the build.

Thanks for the detailed review. I'll let you decide if it's worth pursuing these changes, especially as it's not a like-for-like replacement in either case. My aim was to reduce the amount of noise I was seeing in my log as deprecation warnings.


add aquaplanet setup for chap proposal

Purpose

Adds the atmos component of the GPU simulation for chap proposal. Also modifies the GPU diagnostic edmf aquaplanet setup.
To-do

Content

[ ] I have read and checked the items on the review checklist.

I started a GPU build here: https://buildkite.com/clima/climaatmos-target-gpu-simulations/builds/192


llava-v1.6-vicuna-7b NoneType Object Error when handle_generate_request, maybe misspelled

sglang version: sglang==0.1.10
torch version: 2.1.0+cu118
When running the server via:
python3 -m sglang.launch_server --model-path ./llava-v1.6-vicuna-7b --tokenizer-path SurfaceData/llava-v1.6-vicuna-7b-processor --chat-template vicuna_v1.1 --port 30000
Running the following test script :
@sgl.function
def pipeline(s, prompt, max_tokens):
    for p in prompt:
        if type(p) is str:
            s += p
        else:
            s += sgl.image(p) # p would be PIL.Image
    s += sgl.gen("response", max_tokens=max_tokens)

backend = RuntimeEndpoint(sgl_endpoint)
sgl.set_default_backend(backend)
pipeline.run(prompt, max_new_tokens, temperature=temperature, top_p=top_p, top_k=top_k, stream=True)

the request triggered handle_generate_request in srt.managers.router.model_rpc and assert
Exception in ModelRpcClient:
Traceback (most recent call last):
  File "/root/miniconda3/envs/sgl/lib/python3.10/site-packages/sglang/srt/managers/router/model_rpc.py", line 159, in exposed_step
    self.handle_generate_request(recv_req)
  File "/root/miniconda3/envs/sgl/lib/python3.10/site-packages/sglang/srt/managers/router/model_rpc.py", line 240, in handle_generate_request
    req.input_ids, req.image_offset = self.model_runner.model.pad_input_ids(
  File "/root/miniconda3/envs/sgl/lib/python3.10/site-packages/sglang/srt/models/llava.py", line 49, in pad_input_ids
    num_patch_width, num_patch_height = get_anyres_image_grid_shape(
  File "/root/miniconda3/envs/sgl/lib/python3.10/site-packages/sglang/srt/mm_utils.py", line 121, in get_anyres_image_grid_shape
    width, height = select_best_resolution(image_size, possible_resolutions)
  File "/root/miniconda3/envs/sgl/lib/python3.10/site-packages/sglang/srt/mm_utils.py", line 22, in select_best_resolution
    original_width, original_height = original_size
TypeError: cannot unpack non-iterable NoneType object

but the recv_req from the debugger shows pxel_values and image_size correctly
i went through the sglang lib and i found line 242 of model_rpc.py is suspicious
the following is a snippet from model_rpc.py
    def handle_generate_request(
        self,
        recv_req: TokenizedGenerateReqInput,
    ):
        req = Req(recv_req.rid, recv_req.input_text, recv_req.input_ids)
        req.pixel_values = recv_req.pixel_values
        if req.pixel_values is not None:
            print('pixel value is not none')
            pad_value = [
                (recv_req.image_hash) % self.model_config.vocab_size,
                (recv_req.image_hash >> 16) % self.model_config.vocab_size,
                (recv_req.image_hash >> 32) % self.model_config.vocab_size,
                (recv_req.image_hash >> 64) % self.model_config.vocab_size,
            ]
            req.input_ids, req.image_offset = self.model_runner.model.pad_input_ids(
                req.input_ids, pad_value, req.pixel_values.shape, req.image_size
            )
            req.image_size = recv_req.image_size
        req.sampling_params = recv_req.sampling_params
        req.return_logprob = recv_req.return_logprob
        req.logprob_start_len = recv_req.logprob_start_len
        req.stream = recv_req.stream
        req.tokenizer = self.tokenizer

req.image_size is None when self.model_runner.model.pad_input_ids is called， maybe it should be recv_req.image_size?

the following is the recv_req i got
TokenizedGenerateReqInput(rid='5e89021657f84c36ade6288f3a50ca78',
input_text='sys prompts USER: userquestion.\n <image>\n ASSISTANT:',
input_ids=[a list of input ID],
pixel_values=array([[[A BIG ARRAY]]], dtype=float16),
image_hash=5408669136032689008,
image_size=(468, 336),
sampling_params=<sglang.srt.sampling_params.SamplingParams object at 0x7f1e00529e70>,
return_logprob=False, logprob_start_len=0, stream=True)

when i change from req.image_size to recv_req.image_size it kinda works, am i doing right?

Yes. It is bug that has been fixed in the main branch
https://github.com/sgl-project/sglang/commit/c7af9f73938a79b84dab6b6b4b9aa339118b593b


Can't enable UART1 on CM3

Description
If I try to enable uart1 in the config.txt on my Compute Module 3, the device is not enabled and the  kernel log reports an error. uart0 works as expected on pins GPIO_14 and GPIO_15.
I've reproduced this issue on the heads of sumo, thud and master branches.
This is not an issue on the official Raspian Image, when using this, both uarts can be enabled simultaneously on different sets of GPIO pins..
Steps to reproduce the issue:

Modify the local.conf of a fresh checkout of the required layers, to include the following line: CMDLINE_append += " console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 "
Also set the MACHINE to "raspberrypi-cm3".
Run the bitbake build: bitbake core-image-minimal
Copy the generated rpi-sdimg file to the target.
Mount the file targets' file systems, and add the following to /boot/config.txt:

core_freq=250
dtoverlay=pi3-disable-bt
dtparam=uart1=on
dtoverlay=uart1,txd1_pin=40,rxd1_pin=41
enable_uart=1

This should enable uart1 to operate on pins 40 and 41.
5. Boot the target.
Describe the results you received:
When the target boots, the following is currently observed:

The device file for uart1, /dev/ttyS0,  is not created.
The following errors are reported by dmesg:

[    0.721626] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    0.721766] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 81, base_baud = 0) is a PL011 rev2
[    1.703800] bcm2835-aux-uart 3f215040.serial: unable to register 8250 port - -28
[    1.711224] bcm2835-aux-uart: probe of 3f215040.serial failed with error -28
[    1.783593] uart-pl011 3f201000.serial: no DMA platform data

Describe the results you expected:

The device file for uart1, /dev/ttyS0,  to be created.
No errors reported in dmesg output.

Additional information you deem important (e.g. issue happens only occasionally):

This issue occurs across the heads of sumo, thud and master branches.
Does not occur on the latest official Raspian image.
uboot is not enabled.

#
# This file is your local configuration file and is where all local user settings
# are placed. The comments in this file give some guide to the options a new user
# to the system might want to change but pretty much any configuration option can
# be set in this file. More adventurous users can look at local.conf.extended
# which contains other examples of configuration which can be placed in this file
# but new users likely won't need any of them initially.
#
# Lines starting with the '#' character are commented out and in some cases the
# default values are provided as comments to show people example syntax. Enabling
# the option is a question of removing the # character and making any change to the
# variable as required.

#
# Machine Selection
#
# You need to select a specific machine to target the build with. There are a selection
# of emulated machines available which can boot and run in the QEMU emulator:
#
#MACHINE ?= "qemuarm"
#MACHINE ?= "qemuarm64"
#MACHINE ?= "qemumips"
#MACHINE ?= "qemumips64"
#MACHINE ?= "qemuppc"
#MACHINE ?= "qemux86"
#MACHINE ?= "qemux86-64"
#
# There are also the following hardware board target machines included for
# demonstration purposes:
#
#MACHINE ?= "beaglebone-yocto"
#MACHINE ?= "genericx86"
#MACHINE ?= "genericx86-64"
#MACHINE ?= "mpc8315e-rdb"
#MACHINE ?= "edgerouter"
#
# This sets the default machine to be qemux86 if no other machine is selected:
MACHINE ??= "raspberrypi-cm3"

#
# Where to place downloads
#
# During a first build the system will download many different source code tarballs
# from various upstream projects. This can take a while, particularly if your network
# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
# can preserve this directory to speed up this part of subsequent builds. This directory
# is safe to share between multiple builds on the same machine too.
#
# The default is a downloads directory under TOPDIR which is the build directory.
#
DL_DIR ?= "/media/donal/data/yocto/downloads/"

#
# Where to place shared-state files
#
# BitBake has the capability to accelerate builds based on previously built output.
# This is done using "shared state" files which can be thought of as cache objects
# and this option determines where those files are placed.
#
# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
# from these files if no changes were made to the configuration. If changes were made
# to the configuration, only shared state files where the state was still valid would
# be used (done using checksums).
#
# The default is a sstate-cache directory under TOPDIR.
#
#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
SSTATE_DIR ?= "/media/donal/data/yocto/sstate-cache/"

#
# Where to place the build output
#
# This option specifies where the bulk of the building work should be done and
# where BitBake should place its temporary files and output. Keep in mind that
# this includes the extraction and compilation of many applications and the toolchain
# which can use Gigabytes of hard disk space.
#
# The default is a tmp directory under TOPDIR.
#
#TMPDIR = "${TOPDIR}/tmp"

#
# Default policy config
#
# The distribution setting controls which policy settings are used as defaults.
# The default value is fine for general Yocto project use, at least initially.
# Ultimately when creating custom policy, people will likely end up subclassing
# these defaults.
#
DISTRO ?= "poky"
# As an example of a subclass there is a "bleeding" edge policy configuration
# where many versions are set to the absolute latest code from the upstream
# source control systems. This is just mentioned here as an example, its not
# useful to most new users.
# DISTRO ?= "poky-bleeding"

#
# Package Management configuration
#
# This variable lists which packaging formats to enable. Multiple package backends
# can be enabled at once and the first item listed in the variable will be used
# to generate the root filesystems.
# Options are:
#  - 'package_deb' for debian style deb files
#  - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
#  - 'package_rpm' for rpm style packages
# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
# We default to rpm:
PACKAGE_CLASSES ?= "package_rpm"

#
# SDK target architecture
#
# This variable specifies the architecture to build SDK items for and means
# you can build the SDK packages for architectures other than the machine you are
# running the build on (i.e. building i686 packages on an x86_64 host).
# Supported values are i686 and x86_64
#SDKMACHINE ?= "i686"

#
# Extra image configuration defaults
#
# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
# images. Some of these options are added to certain image types automatically. The
# variable can contain the following options:
#  "dbg-pkgs"       - add -dbg packages for all installed packages
#                     (adds symbol information for debugging/profiling)
#  "src-pkgs"       - add -src packages for all installed packages
#                     (adds source code for debugging)
#  "dev-pkgs"       - add -dev packages for all installed packages
#                     (useful if you want to develop against libs in the image)
#  "ptest-pkgs"     - add -ptest packages for all ptest-enabled packages
#                     (useful if you want to run the package test suites)
#  "tools-sdk"      - add development tools (gcc, make, pkgconfig etc.)
#  "tools-debug"    - add debugging tools (gdb, strace)
#  "eclipse-debug"  - add Eclipse remote debugging support
#  "tools-profile"  - add profiling tools (oprofile, lttng, valgrind)
#  "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
#  "debug-tweaks"   - make an image suitable for development
#                     e.g. ssh root access has a blank password
# There are other application targets that can be used here too, see
# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
# We default to enabling the debugging tweaks.
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"

#
# Additional image features
#
# The following is a list of additional classes to use when building images which
# enable extra features. Some available options which can be included in this variable
# are:
#   - 'buildstats' collect build statistics
#   - 'image-mklibs' to reduce shared library files size for an image
#   - 'image-prelink' in order to prelink the filesystem image
# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
USER_CLASSES ?= "buildstats image-mklibs image-prelink"

#
# Runtime testing of images
#
# The build system can test booting virtual machine images under qemu (an emulator)
# after any root filesystems are created and run tests against those images. It can also
# run tests against any SDK that are built. To enable this uncomment these lines.
# See classes/test{image,sdk}.bbclass for further details.
#IMAGE_CLASSES += "testimage testsdk"
#TESTIMAGE_AUTO_qemuall = "1"

#
# Interactive shell configuration
#
# Under certain circumstances the system may need input from you and to do this it
# can launch an interactive shell. It needs to do this since the build is
# multithreaded and needs to be able to handle the case where more than one parallel
# process may require the user's attention. The default is iterate over the available
# terminal types to find one that works.
#
# Examples of the occasions this may happen are when resolving patches which cannot
# be applied, to use the devshell or the kernel menuconfig
#
# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
# Note: currently, Konsole support only works for KDE 3.x due to the way
# newer Konsole versions behave
#OE_TERMINAL = "auto"
# By default disable interactive patch resolution (tasks will just fail instead):
PATCHRESOLVE = "noop"

#
# Disk Space Monitoring during the build
#
# Monitor the disk space during the build. If there is less that 1GB of space or less
# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
# of the build. The reason for this is that running completely out of space can corrupt
# files and damages the build in ways which may not be easily recoverable.
# It's necesary to monitor /tmp, if there is no space left the build will fail
# with very exotic errors.
BB_DISKMON_DIRS ??= "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    STOPTASKS,/tmp,100M,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K \
    ABORT,/tmp,10M,1K"

#
# Shared-state files from other locations
#
# As mentioned above, shared state files are prebuilt cache data objects which can
# used to accelerate build time. This variable can be used to configure the system
# to search other mirror locations for these objects before it builds the data itself.
#
# This can be a filesystem directory, or a remote url such as http or ftp. These
# would contain the sstate-cache results from previous builds (possibly from other
# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
# cache locations to check for the shared objects.
# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
# at the end as shown in the examples below. This will be substituted with the
# correct path within the directory structure.
#SSTATE_MIRRORS ?= "\
#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
#file://.* file:///some/local/dir/sstate/PATH"

#
# Yocto Project SState Mirror
#
# The Yocto Project has prebuilt artefacts available for its releases, you can enable
# use of these by uncommenting the following line. This will mean the build uses
# the network to check for artefacts at the start of builds, which does slow it down
# equally, it will also speed up the builds by not having to build things if they are
# present in the cache. It assumes you can download something faster than you can build it
# which will depend on your network.
#
#SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/2.5/PATH;downloadfilename=PATH"

#
# Qemu configuration
#
# By default qemu will build with a builtin VNC server where graphical output can be
# seen. The two lines below enable the SDL backend too. By default libsdl2-native will
# be built, if you want to use your host's libSDL instead of the minimal libsdl built
# by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
#ASSUME_PROVIDED += "libsdl2-native"

# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
# track the version of this file when it was generated. This can safely be ignored if
# this doesn't mean anything to you.
CONF_VERSION = "1"

#
# Parallel Build - make the most of your CPUs
#
PARALLEL_MAKE = " \
-j 10 \
-l ${@int(os.sysconf(os.sysconf_names['SC_NPROCESSORS_ONLN'])) * 150/100} \
"

CMDLINE_append += " console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 "

Add ENABLE_UART = "1" to local.conf

Hi @kraj, thank you for the suggestion. I tested this on head of master, but no luck, I'm still getting the same errors.
Any other suggestions? Is there anyone free to test this with their Compute Module 3?
Cheers,
Donal

I've never tested uart1 on cm3. Can you try without dtoverlay=pi3-disable-bt?

@agherzan , just tried that again without dtoverlay=pi3-disable-bt, but the same result for uart1:
[    1.706084] bcm2835-aux-uart 3f215040.serial: unable to register 8250 port - -28
[    1.713529] bcm2835-aux-uart: probe of 3f215040.serial failed with error -28

I have also tried uart1 on pins 32 and 33, but the same issue.
Any further suggestions?
My additions to config.txt now looks like the following:
# Enable UART
enable_uart=1
core_freq=250
dtparam=uart1=on
dtoverlay=uart1,txd1_pin=40,rxd1_pin=41

My current suspicion is that this is a kernel configuration issue. Tracing the issue through 8250_core.c, it looks to be caused by the CONFIG_SERIAL_8250_RUNTIME_UARTS kernel configuration to being set to 0.
If I manually override this in the kernel config, I can get /dev/ttyS0 to be created with no errors when the device is being registered.
However, I can't appear get data to be transmitted successfully through /dev/ttyS0. Will continue to do some more testing.

That is interesting @DonMorr . Keep us updated.

@agherzan What's the best way to test a kernel configuration? I'd like to try to narrow the issue down to either the kernel configuration or something in userland. But can't seem to get the yocto build to use the kernel config from the Raspian image (which uart1 works correctly on).
I've tried adding a do_configure_append to my linux-raspberrypi_%.bbappend, which gets called, but the config (~/yocto-master-rpi/build/tmp/work/raspberrypi_cm3-poky-linux-gnueabi/linux-raspberrypi/1_4.19.27+gitAUTOINC+c0e09b3420-r0/linux-raspberrypi_cm3-standard-build/.config) gets overridden later in the build.
do_configure_append() {
    bbwarn "Using custom kernel configuration"

    if [ "${S}" != "${B}" ] && [ -f "${S}/.config" ] && [ ! -f "${B}/.config" ]; then
        mv "${S}/.config" "${B}/.config"
    fi

    cp "${WORKDIR}/custom_config" "${B}/.config"
}

If it's just temporary I would probably use a devshell or copy something over just before compile.

@DonMorr can you try without enable_uart=1?

@agherzan Thanks for your suggestion. Just tried without that, but getting the same result. My config.txt now only has the following related to uart1:
core_freq=250
dtparam=uart1=on
dtoverlay=uart1,txd1_pin=40,rxd1_pin=41

Getting the same error:
root@raspberrypi-cm3:~# dmesg | grep uart
[    0.721599] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    1.704379] bcm2835-aux-uart 3f215040.serial: unable to register 8250 port - -28
[    1.711814] bcm2835-aux-uart: probe of 3f215040.serial failed with error -28
[    1.784219] uart-pl011 3f201000.serial: no DMA platform data

@DonMorr What I actually meant but didn't come out right was to use enable_uart=0. Sorry for the confusion.

I use both UARTs in my yocto build for the CM3.  I had to use the following overlay:
/*

Device tree overlay for D600 UARTs

Compile:

    dtc -@ -I dts -O dtb -o d600-uarts-overlay.dtb d600-uarts-overlay.dts

*/
/dts-v1/;
/plugin/;
/{
compatible = "brcm,bcm2708";
fragment@0 {
    target = <&uart0>;
    __overlay__ {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pins>;
        status = "okay";
    };
};

fragment@1 {
    target = <&uart1>;
    __overlay__ {
        pinctrl-names = "default";
        pinctrl-0 = <&uart1_pins>;
        status = "okay";
    };
};

fragment@2 {
    target = <&gpio>;
    __overlay__ {
        uart0_pins: uart0_pins {
            brcm,pins = <36 37 38 39>; /* UART0: TXD0 RXD0 RTS0 CTS0 */
            brcm,function = <6>; /* alt2 */
            brcm,pull = <0 2 0 2>;
        };
    };
};

fragment@3 {
    target = <&gpio>;
    __overlay__ {
        uart1_pins: uart1_pins {
            brcm,pins = <14 15>; /* UART1: TX1 RX1 */
            brcm,function = <2>; /* alt5 */
            brcm,pull = <0 2>;
        };
    };
};

fragment@4 {
    target-path = "/chosen";
    __overlay__ {
        bootargs = "8250.nr_uarts=1";
    };
};

__overrides__ {
    txd0_pin = <&uart0_pins>,"brcm,pins:0";
    rxd0_pin = <&uart0_pins>,"brcm,pins:4";
    rts0_pin = <&uart0_pins>,"brcm,pins:0";
    cts0_pin = <&uart0_pins>,"brcm,pins:4";
    txd1_pin = <&uart1_pins>,"brcm,pins:0";
    rxd1_pin = <&uart1_pins>,"brcm,pins:4";
};

};
I'm obviously on different pins, but you can modify that and recreate your dtb then load like this (in your config.txt):
Enable UARTs
enable_uart=1
dtoverlay=pi3-disable-wifi
dtoverlay=pi3-disable-bt
dtoverlay=d600-uarts

@agherzan @s-maynard Cheers guys, will give both of those a go.

@agherzan Setting enable_uart=0 disables all uart functionality for me (inc UART0).
@s-maynard That worked a treat, thank you very much for sharing.
I had missed that there is an overlay for uart1 in the repo here:
arch/arm/boot/dts/overlays/uart1-overlay.dts, which could be patched to use different pins as required.
@agherzan Is it worth putting details of this in the documentation here?
Thanks to everyone for their help, very much appreciated.

@DonMorr That is definitely something to push in the docs. Do you want to have a PR for it?

@agherzan yes, happy to do this over the next few days.

Appreciated.

@DonMorr Any updates on this?

My organization has what seems to be the same problem using uart1 on a CM3/CM3+.  We only have observed the problem since we switched over to testing 4.19.66.  The 4.14.112 code we were previously using does not exhibit the problem.
@s-maynard Thanks for posting what may be a possible workaround.  What is the meaning of the d600 in the name of your overlay file; does it hav some specific meaning to your work or your environment, or is this something related to the Raspberry Pi with which I am unfamiliar?

By the way, the following entried in config.txt were sufficient in 4.14.112 kernels running on CM3/CM3+ for allowing use of both uart0 and uart1:
Tell Linux to not drive serial Console on GPIO pins 14 & 15
enable_uart=1
Disable Bluetooth (frees up UART0 and connects UART0 TXD0 and RXD0 pins to GPIO pins 14 & 15, respectively)
dtoverlay=pi3-disable-bt
CONFIGURE UART1 FOR LEGACY MIDI USE, connecting UART1 TXD1 and RXD1 pins to GPIO pins 32 & 33, respectively
dtoverlay=uart1,txd1_pin=32,rxd1_pin=33
midi-uart1: fake out tty driver so that baudrate 38400 yields 31250 for UART1
dtoverlay=midi-uart1
This is evidently not sufficient in 4.19 flavors.  It sure would be good to understand why.

My organization has what seems to be the same problem using uart1 on a CM3/CM3+. We only have observed the problem since we switched over to testing 4.19.66. The 4.14.112 code we were previously using does not exhibit the problem.
@s-maynard Thanks for posting what may be a possible workaround. What is the meaning of the d600 in the name of your overlay file? - Does it have some specific meaning to your work or your environment, or is this something related to the Raspberry Pi with which I am unfamiliar?

apologies - the d600 is a product name for my company; I should have generalized the comment for all to consume...

PS. I am still on 4.14.112

@s-maynard Thanks much for the clarification about d600 potential meaning, and also for reporting that you are using 4.14.112.  It seems that my issue of losing the ability to use uart1 in 4.19.66 as compared to 4.14.112 is a different problem than this issue 400, which is just related to having combined acceptable settings for uart1 in the overlays and config.txt, which does seem to be more of a doc issue.  I may have to consider opening a separate issue.  Thanks much again.

@DonMorr Were you able to get uart0 and uart1 this to work in 4.19?  (I noticed above your commentscontained "linux-raspberrypi/1_4.19.27+gitAUTOINC+c0e09b3420-r0/").
Can anyone get it to work on 4.19.66? We can not, yet both work beautifully on 4.14.112.

The original issue seems to be resolved and there's a new issue open for the problem with the more recent kernel. Closing this.


Add docs ignore on README for d2l-tag-list-item properties

Daylight sight creates property table from code so adding ignore comment on README so it does not get duplicated.

Do we want to release this as fix: or just let the next release include it? 🤔

Do we want to release this as fix: or just let the next release include it? 🤔

I'd just let the next release have it since it's only an update to docs (unless this causes issues with the daylight site @svanherk)

Do we want to release this as fix: or just let the next release include it? 🤔

I'd just let the next release have it since it's only an update to docs (unless this causes issues with the daylight site @svanherk)

Deployment of the Daylight site is technically blocked unless we accept the double properties table (which we can just do for now, it's not a huge issue).  But if you did release I could retrigger the Daylight update job and get this fix in before accepting a new deployment

Deployment of the Daylight site is technically blocked unless we accept the double properties table (which we can just do for now, it's not a huge issue). But if you did release I could retrigger the Daylight update job and get this fix in before accepting a new deployment

I'll release a fix: patch then 👍🏻


DB details about user credentials.

Actually, I am facing some issue with MYSQL database or spring  boot application.
What problem ?
Everything is fine but spring boot application is unable to create table in database or may be problem with MYSQL database.
For code check issues #12 #11  #4

Team can use this link .....!!
https://app.getpostman.com/join-team?invite_code=a16cdbb591c2436eab91e10e26b24f47

@YashChouhan395 you can also use above link for database


feat: add Annotation is type narrowing function

I'm opening the pull request to verify the performance characteristics of https://github.com/CondeNast/atjson/projects/1#card-30451883
If this works well, this will fix https://github.com/CondeNast/atjson/issues/380

This has a pretty good affect on our degenerate markdown performance tests, we're seeing a decrease of 695ms ~ 390ms.


Fix: Update sol_gen.hpp link

Description of changes:
Replaced an outdated link to sol_gen.hpp with the correct and working link in the AztecProtocol repository.
Thank you so much for your hard work! I hope this helps you !

Thanks for flagging! This will be fixed in this commit: https://github.com/AztecProtocol/aztec-packages/pull/10947/commits/dde79eaed31517f32d8535d69190301697a3ddc4


Sharing - removed folders TypeError: 'NoneType' object is not iterable

Describe the bug
After release v1.2.0 when I request access to some tables I get the following error:

How to Reproduce
*P.S. Please do not attach files as it's considered a security risk. Add code snippets directly in the message body as much as possible.*

Expected behavior
No response
Your project
No response
Screenshots
No response
OS
Mac
Python version
3.9
AWS data.all version
v1.2.0
Additional context
No response

The cause of the bug seems to be the get_removed_prefixes method. When there is no previous access point policy for the dataset, it returns a None object:
    @staticmethod
    def get_removed_prefixes(
        session,
        dataset: models.Dataset,
        share: models.ShareObject,
        share_folders: [models.DatasetStorageLocation],
        target_environment: models.Environment,
        env_group: models.EnvironmentGroup,
    ) -> [models.DatasetStorageLocation]:
        source_account_id = dataset.AwsAccountId
        access_point_name = f"{dataset.datasetUri}-{share.principalId}".lower()
        target_account_id = target_environment.AwsAccountId
        target_env_admin = env_group.environmentIAMRoleName
        access_point_policy = S3.get_access_point_policy(source_account_id, access_point_name)
        if access_point_policy:
            policy = json.loads(access_point_policy)
            target_env_admin_id = SessionHelper.get_role_id(target_account_id, target_env_admin)
            statements = {item["Sid"]: item for item in policy["Statement"]}
            if f"{target_env_admin_id}0" in statements.keys():
                prefix_list = statements[f"{target_env_admin_id}0"]["Condition"]["StringLike"]["s3:prefix"]
                if isinstance(prefix_list, str):
                    prefix_list = [prefix_list]
                prefix_list = [prefix[:-2] for prefix in prefix_list]
                shared_prefix = [folder.S3Prefix for folder in share_folders]
                removed_prefixes = [prefix for prefix in prefix_list if prefix not in shared_prefix]
                removed_folders = [
                    api.DatasetStorageLocation.get_location_by_s3_prefix(
                        session,
                        prefix,
                        source_account_id,
                        dataset.region,
                    ) for prefix in removed_prefixes
                ]
                return removed_folders


[Test] Test runner doesn't seem to honor weak/strong flag

See detailed transcript below, but in summary:
Running test.py on a test with --nnbd=weak passed as an argument results in this command line:
DART_CONFIGURATION=ReleaseX64 xcodebuild/ReleaseX64/dart --enable-experiment=non-nullable --ignore-unrecognized-flags --packages=/Users/leafp/src/dart-repo/sdk/.packages /Users/leafp/src/dart-repo/sdk/tests/language/nnbd/normalization/generic_function_type_object_normalization_test.dart

Note that this command line does not set the mode to weak mode.
Running with --nnbd=strong results in the same command line.
cc @munificent @sortie
leafp-macbookpro:sdk leafp$ python tools/test.py -c dartk -m release --enable-experiment=non-nullable --nnbd=weak tests/language/nnbd/normalization/generic_function_type_object_normalization_test.dart
Test configuration:
    custom configuration(architecture: x64, compiler: dartk, mode: release, runtime: vm, system: mac, nnbd: weak, enable-experiment: [non-nullable])
Suites tested: language

FAILED: dartk-vm release_x64 language/nnbd/normalization/generic_function_type_object_normalization_test
Expected: Pass
Actual: RuntimeError

--- Command "vm" (took 602ms):
DART_CONFIGURATION=ReleaseX64 xcodebuild/ReleaseX64/dart --enable-experiment=non-nullable --ignore-unrecognized-flags --packages=/Users/leafp/src/dart-repo/sdk/.packages /Users/leafp/src/dart-repo/sdk/tests/language/nnbd/normalization/generic_function_type_object_normalization_test.dart

exit code:
255

stderr:
Unhandled exception:
Expect.notEquals(unexpected: <<R0 extends Future<Never>, R1 extends Never, R2 extends Null>() => Null>, actual:<<R0 extends Future<Never>, R1 extends Never, R2 extends Null>() => Null>) fails.
#0      Expect._fail (package:expect/expect.dart:685:5)
#1      Expect.notEquals (package:expect/expect.dart:306:5)
#2      checkNotEquals2 (file:///Users/leafp/src/dart-repo/sdk/tests/language/nnbd/normalization/type_builder.dart:136:10)
#3      checkTypeNotEquals2 (file:///Users/leafp/src/dart-repo/sdk/tests/language/nnbd/normalization/generic_function_type_object_normalization_test.dart:22:3)
#4      neverBoundTests (file:///Users/leafp/src/dart-repo/sdk/tests/language/nnbd/normalization/generic_function_type_object_normalization_test.dart:175:5)
#5      main (file:///Users/leafp/src/dart-repo/sdk/tests/language/nnbd/normalization/generic_function_type_object_normalization_test.dart:199:3)
#6      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:301:19)
#7      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

--- Re-run this test:
python tools/test.py -m release -c dartk --nnbd weak --enable-experiment non-nullable language/nnbd/normalization/generic_function_type_object_normalization_test
[00:00 | 100% | +    0 | -    1]

=== 0 tests passed, 1 failed ===

@alexmarkov What would be the correct command line arguments for weak and strong for the VM here?

@leafpetersen I looked at what we have in the test matrix, and there for the weak/strong we also add the vm-options --no-null-safety (weak) and --null-safety (strong) respectively.
The recommended way to run what you tried to run above would be:
$ tools/test.py -ndartk-weak-asserts-mac-release-x64 tests/language/nnbd/normalization/generic_function_type_object_normalization_test.dart

@munificent It seems that using vm-options/dart2js-options in the test matrix is how people set this up. Should this be moved from test_matrix configuration to test runner logic?

I haven't found a way to make use of the -n option.  In my scenario, I usually have a test (often one that I just wrote), and I want to run it on a particular platform (say the VM), in a particular mode (say release, with nnbd strong).  I don't know how to map from that to something to pass to -n.  So I always end up using the -c options.
If the nnbd=??? are no-ops, should we get rid of them, replace them?

The -n options are defined in the test matrix (https://github.com/dart-lang/sdk/blob/master/tools/bots/test_matrix.json#L751).
I think it would be more helpful to make the nnbd options do what you expected them to do (they are also not no-ops, they affect how tests that require a particular mode are run).
@whesse FYI, this is also a problem related to "how to test my code".

Yeah. :-/ This is a consequence of how the VM team added weak/strong mode to the test runner. Instead of basing it on command line arguments passed to the test runner (and there were already existing arguments in place for this), special arguments were added directly to certain named configurations in the text matrix file.
This means there is no way at all to correctly run weak/strong mode VM tests without going through a named configuration. But figuring out what named configuration to use is really painfully difficult. The test runner is in a really messy state right now and could use some love.

I think it would be more helpful to make the nnbd options do what you expected them to do

+1.
I also have some ideas to improve the usability of running named configurations. Once I'm done with the test migration, I'll see if I can write something down.


Why upgrade go.uber.org/atomic to version v1.10.0?

Since I updated github.com/cloudevents/sdk-go/v2 to version v2.14.0, I found it depend on go.uber.org/atomic to version, and When I compile my code, the following error occurs:
# go.uber.org/multierr
../../../../pkg/mod/go.uber.org/multierr@v1.11.0/error.go:209:20: undefined: atomic.Bool
note: module requires Go 1.19

Did you really need to upgrade go.uber.org/atomic to version v1.10.0?

@lionelvillard @embano1 any thoughts on this one?
@xzygis at some point we'll need to update things. Atomic is already at v1.11.0 - what are you suggesting w.r.t. how long we wait before we upgrade packages?

hmm @xzygis where do you see it?

Duplicate of #


Changes property name

Uses 'category' instead of 'type' as a property name.
'type' could cause confusion with data types.

Thanks @WalterHub – we don't accept pull requests in this repo. Would you mind following the steps in CONTRIBUTING.md? Thanks!


If the function provided to db.Update() panics, the transaction will not be rolled back

https://github.com/drone/drone/blob/master/store/shared/db/db.go#L110
If fn() panics, the tx.Rollback() will not be executed, and the transaction will not be released until it times out.

can you share more about the panic you experienced?

Does any of the functions panic at all?

I haven't experienced any panics, I was just browsing through the code and noticed that if for whatever reason the function supplied to db.Update panics, it will cause problems. Had a similar issue a while back in one of my projects and it was quite difficult to debug so I thought I should report it.

on one hand I feel pretty confident in the code given that the code has been used in production for many years by many people and it has not been an issue. On the other hand I am pretty paranoid about unexpected panics creating locks.
in this case I decided that some extra safety certainly doesn't hurt
https://github.com/drone/drone/commit/d60054c45943ec3bba5a345a11beb568c45a4b87#diff-e3263587fce93b98f28b299f1db9eb14R111


feat: add permission to events, fix missing subresources in crd

Signed-off-by: Ling Samuel<EMAIL_ADDRESS>Please answer these questions before submitting a pull request

Why submit this pull request?

[x] Bugfix

[ ] New feature provided

[ ] Improve performance

[ ] Backport patches

Related issues
Fixes #511, fixes #512

Bugfix

Description
Add events permission and subresource

How to fix?

cc @tokers


CSR Matrix Support for Spark 2.0

There's no support for CSR matrices in Spark 2.0.
To replicate, run python/run-tests.sh --nologcapture spark_sklearn.converter_test

Could you test on https://github.com/databricks/spark-sklearn/releases/tag/release-0.2.0?

Yes; this test only passes because I put in a skip decoration.

Looks like it was resolved, as this PR that removes the skipping passes: https://github.com/databricks/spark-sklearn/pull/94


Table of Contents adds overflow in mobile view

Hi,
I noticed that the TOC adds a bit of overflow when viewing any blog post on mobile, since the TOC is set to visibility: hidden instead of display: none.

Hey @CER10TY thanks for raising this issue. I just attempted to reproduce and I can see the issue. I'm going to submit a PR to get this fixed. I appreciate it!

thank you @jakewies for the fix! It works perfectly fine on my blog now :D


Address issues raised by Andrei

see comments in #83

[x] ✂ — about a empty @returns,
[ ] #faucetBalance — i know what it, I asked why we use js private here, why not ts private?
[ ] "Better move it to constant out of scope", Not critical, but we initialize constant value on every call
[ ] [].join('') — So we write code for humans, not for machines :-)
[ ] "But here we create and apply actions" - It's a name of a function. createAndAplyActions
[ ] "Maybe we can define it in another module?" - ...

The code was refactored a lot after this followup, so closing


Add enterprise language

Our beta test indicated that having this language near the top was the most successful. @feross  Please let me know if the location I chose seems out of place.

Sure, let's try it out


CUDA stub file missing for cpu-only build

The changes in https://github.com/lhatsk/AlphaLink/commit/c07ef5414b68ea684954cae8df2b4f0c942dfc34 to allow for container builds are missing the addition of the openfold/utils/kernel/csrc/softmax_cuda_stub.cpp file used for building the kernel present in the upstream OpenFold repo: https://github.com/aqlaboratory/openfold/blob/main/openfold/utils/kernel/csrc/softmax_cuda_stub.cpp. If this file is provided in the appropriate directory the build succeeds.

Thank you for pointing this out! I added the file.


Does the name have to be category? I would like to be able to customize it.

https://github.com/tremorlabs/tremor/blob/4fd01a8d3c9c5419f5b251262cfb78156b5f66ff/src/components/chart-elements/LineChart/LineChart.tsx#L112

Cf. #486


[gamedev-framework] Update to v1.0.0

Update gamedev-framework to the latest version v1.0.0

Which triplets are supported/not supported? Have you updated the CI baseline?
linux, windows, Yes
arm, No

Does your PR follow the maintainer guide?

Yes

@JonLiu1993 thanks for your review. I have commited the changements.


error: conversion from ‘boost::shared_ptrpcl::PointIndices’ to non-scalar type ‘pcl::PointIndicesPtr’ {aka ‘std::shared_ptrpcl::PointIndices’} requested

Hi @zhangxy0517,
Congratulations and thanks for sharing your work. I am trying to compile MAC for testing it but I am getting the following error:
[ 14%] Building CXX object CMakeFiles/MAC.dir/main.cpp.o
[ 28%] Building CXX object CMakeFiles/MAC.dir/desc_dec.cpp.o
In file included from /usr/include/boost/preprocessor/control/if.hpp:18,
                 from /usr/include/boost/preprocessor/punctuation/comma_if.hpp:18,
                 from /usr/include/boost/preprocessor/comma_if.hpp:15,
                 from /usr/include/boost/mpl/aux_/preprocessor/params.hpp:49,
                 from /usr/include/boost/mpl/aux_/na_spec.hpp:26,
                 from /usr/include/boost/mpl/not.hpp:20,
                 from /usr/include/boost/mpl/assert.hpp:17,
                 from /usr/include/pcl-1.13/pcl/point_struct_traits.h:40,
                 from /usr/include/pcl-1.13/pcl/type_traits.h:40,
                 from /usr/include/pcl-1.13/pcl/memory.h:46,
                 from /usr/include/pcl-1.13/pcl/impl/point_types.hpp:41,
                 from /usr/include/pcl-1.13/pcl/point_types.h:354,
                 from /home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/desc_dec.cpp:6:
/usr/include/pcl-1.13/pcl/registration/transforms.h:42:1: note: ‘#pragma message: This header is deprecated. Please include pcl/common/transforms.h directly. (It will be removed in PCL 1.15)’
   42 | PCL_DEPRECATED_HEADER(1, 15, "Please include pcl/common/transforms.h directly.")
      | ^~~~~~~~~~~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/desc_dec.cpp: In function ‘void SHOT_compute(pcl::PointCloud<pcl::PointXYZ>::Ptr, std::vector<int, std::allocator<int> >, float, std::vector<std::vector<float> >&, std::vector<LRF>&)’:
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/desc_dec.cpp:25:43: error: conversion from ‘boost::shared_ptr<pcl::PointIndices>’ to non-scalar type ‘pcl::PointIndicesPtr’ {aka ‘std::shared_ptr<pcl::PointIndices>’} requested
   25 |         pcl::PointIndicesPtr Idx = boost::shared_ptr<pcl::PointIndices>();
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/desc_dec.cpp: In function ‘void FPFH_descriptor(pcl::PointCloud<pcl::PointXYZ>::Ptr&, std::vector<int, std::allocator<int> >&, float, std::vector<std::vector<float> >&)’:
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/desc_dec.cpp:704:39: error: conversion from ‘boost::shared_ptr<pcl::PointIndices>’ to non-scalar type ‘pcl::PointIndicesPtr’ {aka ‘std::shared_ptr<pcl::PointIndices>’} requested
  704 |     pcl::PointIndicesPtr Idx = boost::shared_ptr<pcl::PointIndices>();
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/MAC.dir/build.make:90: CMakeFiles/MAC.dir/desc_dec.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/MAC.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

Any idea what could be the cause, I have installed the latest pcl version, i.e. pcl-1.13.1-1, I am using Arch linux.

Ok, I've noticed that you had commented the following line pcl::PointIndicesPtr Idx = std::make_shared<pcl::PointIndices>(); under the position where I got the second error. Thus, I've replaced the pcl::PointIndicesPtr Idx = boost::shared_ptr<pcl::PointIndices>(); in both cases with the above and this seems to be resolving the issues. However, now I am getting the following errors:
[ 14%] Building CXX object CMakeFiles/MAC.dir/desc_dec.cpp.o
In file included from /usr/include/boost/preprocessor/control/if.hpp:18,
                 from /usr/include/boost/preprocessor/punctuation/comma_if.hpp:18,
                 from /usr/include/boost/preprocessor/comma_if.hpp:15,
                 from /usr/include/boost/mpl/aux_/preprocessor/params.hpp:49,
                 from /usr/include/boost/mpl/aux_/na_spec.hpp:26,
                 from /usr/include/boost/mpl/not.hpp:20,
                 from /usr/include/boost/mpl/assert.hpp:17,
                 from /usr/include/pcl-1.13/pcl/point_struct_traits.h:40,
                 from /usr/include/pcl-1.13/pcl/type_traits.h:40,
                 from /usr/include/pcl-1.13/pcl/memory.h:46,
                 from /usr/include/pcl-1.13/pcl/impl/point_types.hpp:41,
                 from /usr/include/pcl-1.13/pcl/point_types.h:354,
                 from /home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/desc_dec.cpp:6:
/usr/include/pcl-1.13/pcl/registration/transforms.h:42:1: note: ‘#pragma message: This header is deprecated. Please include pcl/common/transforms.h directly. (It will be removed in PCL 1.15)’
   42 | PCL_DEPRECATED_HEADER(1, 15, "Please include pcl/common/transforms.h directly.")
      | ^~~~~~~~~~~~~~~~~~~~~
[ 28%] Building CXX object CMakeFiles/MAC.dir/funcs.cpp.o
In file included from /usr/include/boost/preprocessor/control/if.hpp:18,
                 from /usr/include/boost/preprocessor/punctuation/comma_if.hpp:18,
                 from /usr/include/boost/preprocessor/comma_if.hpp:15,
                 from /usr/include/boost/mpl/aux_/preprocessor/params.hpp:49,
                 from /usr/include/boost/mpl/aux_/na_spec.hpp:26,
                 from /usr/include/boost/mpl/not.hpp:20,
                 from /usr/include/boost/mpl/assert.hpp:17,
                 from /usr/include/pcl-1.13/pcl/point_struct_traits.h:40,
                 from /usr/include/pcl-1.13/pcl/type_traits.h:40,
                 from /usr/include/pcl-1.13/pcl/memory.h:46,
                 from /usr/include/pcl-1.13/pcl/impl/point_types.hpp:41,
                 from /usr/include/pcl-1.13/pcl/point_types.h:354,
                 from /home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:5:
/usr/include/pcl-1.13/pcl/registration/transforms.h:42:1: note: ‘#pragma message: This header is deprecated. Please include pcl/common/transforms.h directly. (It will be removed in PCL 1.15)’
   42 | PCL_DEPRECATED_HEADER(1, 15, "Please include pcl/common/transforms.h directly.")
      | ^~~~~~~~~~~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp: In function ‘void Add_Gaussian_noise(float, pcl::PointCloud<pcl::PointXYZ>::Ptr&, pcl::PointCloud<pcl::PointXYZ>::Ptr&)’:
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:379:16: error: ‘mt19937’ is not a member of ‘boost’; did you mean ‘std::mt19937’?
  379 |         boost::mt19937 rng; rng.seed(static_cast<unsigned int> (time(0)));
      |                ^~~~~~~
In file included from /usr/include/c++/13.1.1/random:51,
                 from /usr/include/pcl-1.13/pcl/surface/mls.h:44,
                 from /home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:14:
/usr/include/c++/13.1.1/bits/random.h:1615:37: note: ‘std::mt19937’ declared here
 1615 |     0xefc60000UL, 18,<PHONE_NUMBER>UL> mt19937;
      |                                     ^~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:379:29: error: ‘rng’ was not declared in this scope
  379 |         boost::mt19937 rng; rng.seed(static_cast<unsigned int> (time(0)));
      |                             ^~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:380:16: error: ‘normal_distribution’ is not a member of ‘boost’; did you mean ‘std::normal_distribution’?
  380 |         boost::normal_distribution<> nd(0, dev);
      |                ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13.1.1/bits/random.h:2016:11: note: ‘std::normal_distribution’ declared here
 2016 |     class normal_distribution
      |           ^~~~~~~~~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:380:36: error: expected primary-expression before ‘>’ token
  380 |         boost::normal_distribution<> nd(0, dev);
      |                                    ^
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:380:38: error: ‘nd’ was not declared in this scope
  380 |         boost::normal_distribution<> nd(0, dev);
      |                                      ^~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:381:16: error: ‘variate_generator’ is not a member of ‘boost’
  381 |         boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > var_nor(rng, nd);
      |                ^~~~~~~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:381:41: error: ‘mt19937’ is not a member of ‘boost’; did you mean ‘std::mt19937’?
  381 |         boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > var_nor(rng, nd);
      |                                         ^~~~~~~
/usr/include/c++/13.1.1/bits/random.h:1615:37: note: ‘std::mt19937’ declared here
 1615 |     0xefc60000UL, 18,<PHONE_NUMBER>UL> mt19937;
      |                                     ^~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:381:49: error: expected primary-expression before ‘,’ token
  381 |         boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > var_nor(rng, nd);
      |                                                 ^
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:381:58: error: ‘normal_distribution’ is not a member of ‘boost’; did you mean ‘std::normal_distribution’?
  381 |         boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > var_nor(rng, nd);
      |                                                          ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13.1.1/bits/random.h:2016:11: note: ‘std::normal_distribution’ declared here
 2016 |     class normal_distribution
      |           ^~~~~~~~~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:381:78: error: expected primary-expression before ‘>’ token
  381 |         boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > var_nor(rng, nd);
      |                                                                              ^
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:381:80: error: expected primary-expression before ‘>’ token
  381 |         boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > var_nor(rng, nd);
      |                                                                                ^
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:381:82: error: ‘var_nor’ was not declared in this scope
  381 |         boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > var_nor(rng, nd);
      |                                                                                ^~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp: In function ‘void boost_rand(int, int, int, int, std::vector<int, std::allocator<int> >&)’:
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:582:16: error: ‘mt19937’ is not a member of ‘boost’; did you mean ‘std::mt19937’?
  582 |         boost::mt19937 engine(seed);
      |                ^~~~~~~
/usr/include/c++/13.1.1/bits/random.h:1615:37: note: ‘std::mt19937’ declared here
 1615 |     0xefc60000UL, 18,<PHONE_NUMBER>UL> mt19937;
      |                                     ^~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:583:16: error: ‘uniform_int’ is not a member of ‘boost’
  583 |         boost::uniform_int<> distribution(start, end);
      |                ^~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:583:28: error: expected primary-expression before ‘>’ token
  583 |         boost::uniform_int<> distribution(start, end);
      |                            ^
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:583:30: error: ‘distribution’ was not declared in this scope
  583 |         boost::uniform_int<> distribution(start, end);
      |                              ^~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:584:16: error: ‘variate_generator’ is not a member of ‘boost’
  584 |         boost::variate_generator<boost::mt19937, boost::uniform_int<> > myrandom(engine, distribution);
      |                ^~~~~~~~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:584:41: error: ‘mt19937’ is not a member of ‘boost’; did you mean ‘std::mt19937’?
  584 |         boost::variate_generator<boost::mt19937, boost::uniform_int<> > myrandom(engine, distribution);
      |                                         ^~~~~~~
/usr/include/c++/13.1.1/bits/random.h:1615:37: note: ‘std::mt19937’ declared here
 1615 |     0xefc60000UL, 18,<PHONE_NUMBER>UL> mt19937;
      |                                     ^~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:584:57: error: ‘uniform_int’ is not a member of ‘boost’
  584 |         boost::variate_generator<boost::mt19937, boost::uniform_int<> > myrandom(engine, distribution);
      |                                                         ^~~~~~~~~~~
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:584:69: error: expected primary-expression before ‘>’ token
  584 |         boost::variate_generator<boost::mt19937, boost::uniform_int<> > myrandom(engine, distribution);
      |                                                                     ^
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:584:71: error: expected primary-expression before ‘>’ token
  584 |         boost::variate_generator<boost::mt19937, boost::uniform_int<> > myrandom(engine, distribution);
      |                                                                       ^
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:584:82: error: ‘engine’ was not declared in this scope; did you mean ‘inline’?
  584 |         boost::variate_generator<boost::mt19937, boost::uniform_int<> > myrandom(engine, distribution);
      |                                                                                ^~~~~~
      |                                                                                inline
/home/ttsesm/Development/3D-Registration-with-Maximal-Cliques/Linux/funcs.cpp:584:73: error: ‘myrandom’ was not declared in this scope; did you mean ‘srandom’?
  584 |         boost::variate_generator<boost::mt19937, boost::uniform_int<> > myrandom(engine, distribution);
      |                                                                         ^~~~~~~~
      |                                                                         srandom
make[2]: *** [CMakeFiles/MAC.dir/build.make:104: CMakeFiles/MAC.dir/funcs.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/MAC.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

It seems to be something with the boost library :thinking:

It seems that the versions of PCL and Boost are incompatible. I suggest installing PCL 1.10.1 and Boost 1.74

well, I've managed to resolve the latest issues by declaring the following includes in the PCR.cpp and funcs.cpp respectively:
#include <boost/random.hpp>
#include <boost/random/seed_seq.hpp>
#include <boost/random/uniform_int.hpp>

#include <boost/random.hpp>
#include <boost/random/seed_seq.hpp>

for the pcl::PointIndicesPtr Idx = boost::shared_ptr<pcl::PointIndices>(); I've tried to include  the following header #include <boost/shared_ptr.hpp> but it didnt' work :thinking:
Is using the std::make_shared<pcl::PointIndices>() instead of boost::shared_ptr<pcl::PointIndices>() would make any big difference, if any at all?

It will make no difference. You can even annotate the two functions in desc_dec.cpp

Thanks ;-)


Error with Recent30 enhancement

Before I start, I'll apologize for making too much bug reports, sorry if making these bothers you. Let me know if I'm making too much useless bug reports.

This image is when I try to bring the database file (database.db) that I was using, which is this commit. I only changed the server ports for game testing in that screen, and didn't change anything else.
I saw your latest server files, which fixed the character automatical adding, and tried to use it. However, it seems that I can't bring the database that I was using. Also, the PTT systems doesn't seem to work, which is done at the game result screen.
Sorry for wrting a bit vague. I'll add additional information when I have more time.

Have you update the database/init folder? There are some changes about recent30 table.

I think probably not. How could I update it?

This image is the thing that I said "PTT system not working". After the song finishes, the client says "Unable to post score to the server", and the server is like this.

changing the all the files except course.json (I made custom courses) in the /init folder from the latest server fixed at least this issue, but what at cost...

I think probably not. How could I update it?  This image is the thing that I said "PTT system not working". After the song finishes, the client says "Unable to post score to the server", and the server is like this.

It seems the database is broken when you incorrectly updated it. You can get the backup db in the database/backup folder. Replace the current db with it and then restart the server. I hope there will be no problem.


wiki is dead..

the config file links to the wiki, but the wiki is empty, so there is no way to know what the config file does, other than experiment and see what happens.. please make a wiki or add commenting to the config so we know what it does..

Hey there!
Thanks for the feedback! Don't worry, we'll be adding a wiki soon (we kinda forget about it?).. This may take a while as our developers is kinda busy.. So yeah, we'll get back when the wiki is done!
Best Regards,
MoonLight

Hey there!
Thanks for the feedback! Don't worry, we'll be adding a wiki soon (we kinda forget about it?).. This may take a while as our developers is kinda busy.. So yeah, we'll get back when the wiki is done!
Best Regards,
MoonLight

The wiki is now done! :)
Sorry that it took a long time to make the wiki, but nonetheless it's finally done!
Here it is: ServerStonker's wiki
Please let me know if I can help with anything else..


DEV 8587.2 Add the error message in console log which is displayed when Admiral is not able to connect to 5672 port to Port 5672 not available for msg.

https://github.com/Shippable/pm/issues/8587

this is done, closing


[Feature Request] Dynamic popovers

Existing Component
Yes
Component Name
Popover
Description
I can't add multiple popovers dynamically because of v-popover:popover1 directive. I want to create popovers via v-for and add them ids, but I can't because element name doesn't interpolate.

i want that too, desperately at the moment!

hey bro, i just made it!!!!
well i have to say this trick is not a perfect one because i rewrite the directive and el-popover component.
In my case, i import the whole bundle from element-ui, so I change something in the file element-ui.common.js in node_modules/element-ui/lib.
the following is the change
in line 15422, change the hook function from mounted to updated,
in line 15561, change the hook function from bind to update, AND , replace the  line 15562 to a new statement:
vnode.context.$refs[binding.value].$refs.reference = el;
now you can use the el-popover and v-popover in a dynamic way, here is my case:
         <el-button size="small" type="danger" v-popover="'pop'+id" >delete</el-button>
                <el-popover
                        :key="id"
                        :ref="'pop'+id"
                        placement="top"
                        width="160"
                        trigger="hover"
                        >

Delete anyway？

                        <el-button type="primary" size="mini" @click="handleDelete">Sure</el-button>

                </el-popover>

@AkatQuas thanks for your reply, however I've found a better solution. I am just using slot=reference for this and it works perfectly well. Here is a snippet:
  <el-popover
        :ref="'popover' + index">
         // ref slot
          {{ answers[index] || 'Enter text' }}

        <template> // default slot
          <el-input
            type="textarea"
            placeholder="Type your answer here..."
            v-model="currentText"
            :autosize="{ minRows: 5 }"/>
          <el-button type="primary" @click="updateText(index)">Done</el-button>
        </template>
      </el-popover>


fix(integrations): Keras WandbCallback in MirroredStrategy

Fixes WB-10916
Description
This PR fixes #4113.
Why remove tf.compat.v1.reset_default_graph()?

From the TF documentation, "reset_default_graph does not work with either eager execution or tf.function, and you should not invoke it directly." The real_model = tf.function(self.model).get_concrete_function(inputs) is a tf.function and thus reseting graph doesn't work anyway.
I compared the graph logged and visualized on TensorBoard and they are same - with reset_default_graph and without.
I also compared the performance and convergence of the model and its not affected by removing reset_default_graph.

Testing
yea tests passing
Checklist

[x] Include reference to internal ticket "Fixes WB-NNNN" and/or GitHub issue "Fixes #NNNN" (if applicable)
[x] Ensure PR title compliance with the conventional commits standards

Thanks for the fix! Let's move the flop calculation behind an argument

Overall, make sense! Would mind adding a MirroredStrategy example to our testing (you could add it as another yea test)

How about we do it as a separate PR? @kptkin

How about we do it as a separate PR? @kptkin

Why do it in a different PR?
Just take the repro example and convert it into a script and add simple assertions (you can see many examples in the functional_tests folder).
This was the failing case, so it would be useful to have this example!


The Help 'napari info' dialog box does not match the napari theme

🐛 Bug
Somewhere between napari release 0.4.5 and the current master branch, we've lost the theme that should be applied to the napari info dialog box from the Help menu.
On napari 0.4.5 I don't see this issue, the theme of the napari info dialog box matches the rest of napari.
To Reproduce
Steps to reproduce the behavior:

Launch napari from the master branch
Click the Help menu, then the napari info menu item
Observe the colour of the dialog box, it doesn't match the rest of the 'dark' theme the way it used to do.

If you follow the same steps, but using a napari 0.4.5 installation, we don't see this issue.
I tried explicitly setting viewer.theme = 'dark', in case napari was remembering a setting from last time or something, but no luck there.

Expected behavior
I expected the napari info dialog box to match the overall 'look' of the rest of napari. I also expect this will change depending on what theme is currently set in napari.
The 'keybindings' dialog box doesn't have the same weird behaviour.
Environment

Please copy and paste the information at napari info option in help menubar here:

napari: 0.4.6.dev22+g02019b9
Platform: Linux-5.8.0-43-generic-x86_64-with-glibc2.10
System: Ubuntu 20.04.2 LTS
Python: 3.8.5 (default, Sep 4 2020, 07:30:14) [GCC 7.3.0]
Qt: 5.15.2
PyQt5: 5.15.2
NumPy: 1.19.2
SciPy: 1.5.2
Dask: 2.30.0
VisPy: 0.6.6

OpenGL:
- GL version: 4.6 (Compatibility Profile) Mesa 20.2.6
- MAX_TEXTURE_SIZE: 16384

Screens:
- screen 1: resolution 1920x1080, scale 1.0
- screen 2: resolution 1920x1080, scale 1.0

Plugins:
- console: 0.0.3
- svg: 0.1.4
- ```
 - Any other relevant information:

## Additional context

<!-- Add any other context about the problem here. -->

Probably a good first step here is using git bisect to narrow down on when this was introduced.

the general refrain that people should try remember about styles in Qt, is that widgets inherit their styles from their parents.  For this reason (and also for widget cleanup reasons), it's important that all widgets be assigned parents if at all possible.  This appears to be one of a few lingering cases of a custom widget not being given a parent, and can be fixed by:

changing the __init__ of the QtAbout dialog to pass a parent to the constructor class QtAbout(QDialog):
 def __init__(self, parent):
     super().__init__(parent)

Passing the qt_viewer argument as the parent in the showAbout method: @staticmethod
 def showAbout(qt_viewer):
     d = QtAbout(qt_viewer)
 	# and delete this line
     # d.setStyleSheet(qt_viewer.styleSheet())


[WIP] Fix class loading issue with single bal file with interop

Purpose
$Subject
Fixes https://github.com/ballerina-platform/ballerina-lang/issues/19497
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #19601 into ballerina-1.0.x will increase coverage by 4.78%.
The diff coverage is n/a.

@@                 Coverage Diff                 @@
##           ballerina-1.0.x   #19601      +/-   ##
===================================================
+ Coverage            15.73%   20.51%   +4.78%
===================================================
  Files                   47       52       +5
  Lines                 1265     1394     +129
  Branches               197      216      +19
===================================================
+ Hits                   199      286      +87
- Misses                1053     1095      +42
  Partials                13       13

Impacted Files
Coverage Δ

composer/packages/tracing/src/ToolBar.tsx
71.05% <0%> (ø)

composer/packages/tracing/src/TraceList.tsx
94.44% <0%> (ø)

composer/packages/tracing/src/DetailView.tsx
72.72% <0%> (ø)

composer/packages/tracing/src/TraceLogs.tsx
70.37% <0%> (ø)

composer/packages/tracing/src/index.ts
0% <0%> (ø)

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 cd42298...4b3630c. Read the comment docs.

This will also address https://github.com/ballerina-platform/ballerina-lang/issues/19160


After taking down the upstream server - the app halts at "Refresh"

Summary
After taking down the upstream server - the app halts at "Refresh"
Environment Information

Device Name: iphone6
OS Version: 11.2.6
Mattermost App Version: 1.6.1
Mattermost Server Version: 4.3.1

Steps to reproduce
I have initially configured the app with the server https://my.server.com. Then we took this server "down" and changed the new server to https://my-new-server.server.com.
The app just show a "Refresh" Symbol
Expected behavior
I should be able to configure a new server.

I have the same issue i'm using the demo server
https://pre-release.mattermost.com/
and after logging in with my credentials it's stuck at refreshing only

This happened to me also. I reinstalled the app, which did not fix it. I switched to the mattermost beta app, which is working correctly for me.

Hi @madflow @sherifelgafary @lukeallister
Thanks for your feedback! 👍
Please try upgrading to v1.7.1 of the app and v4.9 of the Mattermost server (released today - April 16th) which should fix the issue for you.


fix(openshift): block upgrades on invalid max properties

Fail open when olm.maxOpenShiftVersion properties have invalid
values. This means that all invalid values are logged but are ultimately
ignored when determining cluster upgradeability.
Block OpenShift upgrades while:

olm.maxOpenShiftVersion properties have invalid values
cluster information is unavailable; e.g. the desired version of the cluster is undefined
an installed operator has declared more than one olm.MaxOpenShiftVersion
property

See https://bugzilla.redhat.com/show_bug.cgi?id=1986753 for motivation.

Is ignoring invalid max versions the right thing to do here? It seems like it would be fairly easy for someone to accidentally fat-finger a version number and end up getting an upgrade when one isn't actually supported, which could then lead to an even worse situation.
Is it possible to error out and notify the user in some way that they have an invalid property value?

Is ignoring invalid max versions the right thing to do here? It seems like it would be fairly easy for someone to accidentally fat-finger a version number and end up getting an upgrade when one isn't actually supported, which could then lead to an even worse situation.
Is it possible to error out and notify the user in some way that they have an invalid property value?

I agree, maybe it safer to fail closed versus fail open when its a (delicate) update process?

@joelanford @exdx
Thanks for the quick review.

Is it possible to error out and notify the user in some way that they have an invalid property value?

I had the same thought as I was implementing this. I'll update the logic to fail closed and bubble an error to the ClusterVersion when an unparsable max property is found.
(part of the reason I did it like this in the first place was the expectation of QE to fail open in the original BZ)

/hold
until I update this

/hold cancel
updated behavior to address feedback.

/hold cancel
added behavior

/lgtm

/lgtm
/hold cancel


Correctly handle unsigned int values returned from TCP_INFO

Motivation:
We used an int[] to store all values that are returned in the struct for TCP_INFO which is not good enough as it uses usigned int values.
Modifications:

Change int[] to long[] and correctly cast values.

Result:
No more truncated values.

@carl-mastrangelo PTAL as well.

@normanmaurer looks like tests failed.
https://garage.netty.io/teamcity/viewLog.html?buildId=22521&buildTypeId=pulls_netty&guest=1
io.netty.channel.epoll (1)
EpollSocketChannelTest.testTcpInfo
First failure:	7011	#5052 	Changes (337) 	22 Jul 17 14:37
java.lang.AssertionError
at io.netty.channel.epoll.EpollSocketChannelTest.assertTcpInfo0(EpollSocketChannelTest.java:74)
at io.netty.channel.epoll.EpollSocketChannelTest.testTcpInfo(EpollSocketChannelTest.java:39)

Will check... tests passed locally here 😱

Am 22.07.2017 um 22:28 schrieb Johno Crawford<EMAIL_ADDRESS>@normanmaurer looks like tests failed.
https://garage.netty.io/teamcity/viewLog.html?buildId=22521&buildTypeId=pulls_netty&guest=1
io.netty.channel.epoll (1)
EpollSocketChannelTest.testTcpInfo
First failure:	7011	#5052 Changes (337) 22 Jul 17 14:37
java.lang.AssertionError
at io.netty.channel.epoll.EpollSocketChannelTest.assertTcpInfo0(EpollSocketChannelTest.java:74)
at io.netty.channel.epoll.EpollSocketChannelTest.testTcpInfo(EpollSocketChannelTest.java:39)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@johnou doh!... my fault. Should be fixed now.

Cherry-picked into 4.1 (efb2d141c1de9ef19443bb04678ef753894fcbe2) and 4.0 (26d97f586ebe5e430af75008b4e9f6a9dc463688)


Plex media player errors out on 0.62.0

Home Assistant release (hass --version):
0.62.0
Python release (python3 --version):
3.5.3, virtenv
Component/platform:
media_player.plex
Description of problem:
Jan 27 12:29:46 MrMeeSeeks hass[2044]: 2018-01-27 12:29:46 ERROR (MainThread) [homeassistant.components.media_player] Error while setting up platform plex
Jan 27 12:29:46 MrMeeSeeks hass[2044]: Traceback (most recent call last):
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_component.py", line 189, in _async_setup_platform
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     SLOW_SETUP_MAX_WAIT, loop=self.hass.loop)
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     return fut.result()
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     raise self._exception
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     result = self.fn(*self.args, **self.kwargs)
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 87, in setup_platform
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     hass, config, add_devices_callback
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 205, in setup_plexserver
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     update_devices()
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 306, in wrapper
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     result = method(*args, **kwargs)
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 306, in wrapper
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     result = method(*args, **kwargs)
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 172, in update_devices
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     update_sessions)
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 293, in __init__
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     self.refresh(device, session)
Jan 27 12:29:46 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 359, in refresh
Jan 27 12:29:46 MrMeeSeeks hass[2044]:     if self._device.machineIdentifier is not None and \
Jan 27 12:29:46 MrMeeSeeks hass[2044]: AttributeError: 'NoneType' object has no attribute 'machineIdentifier'

... and repeats every now and then

Jan 27 12:30:31 MrMeeSeeks hass[2044]: 2018-01-27 12:30:31 ERROR (MainThread) [homeassistant.core] Error doing job: Future exception was never retrieved
Jan 27 12:30:31 MrMeeSeeks hass[2044]: Traceback (most recent call last):
Jan 27 12:30:31 MrMeeSeeks hass[2044]:   File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
Jan 27 12:30:31 MrMeeSeeks hass[2044]:     result = self.fn(*self.args, **self.kwargs)
Jan 27 12:30:31 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 135, in <lambda>
Jan 27 12:30:31 MrMeeSeeks hass[2044]:     track_utc_time_change(hass, lambda now: update_devices(), second=30)
Jan 27 12:30:31 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 306, in wrapper
Jan 27 12:30:31 MrMeeSeeks hass[2044]:     result = method(*args, **kwargs)
Jan 27 12:30:31 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 306, in wrapper
Jan 27 12:30:31 MrMeeSeeks hass[2044]:     result = method(*args, **kwargs)
Jan 27 12:30:31 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 172, in update_devices
Jan 27 12:30:31 MrMeeSeeks hass[2044]:     update_sessions)
Jan 27 12:30:31 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 293, in __init__
Jan 27 12:30:31 MrMeeSeeks hass[2044]:     self.refresh(device, session)
Jan 27 12:30:31 MrMeeSeeks hass[2044]:   File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 359, in refresh
Jan 27 12:30:31 MrMeeSeeks hass[2044]:     if self._device.machineIdentifier is not None and \
Jan 27 12:30:31 MrMeeSeeks hass[2044]: AttributeError: 'NoneType' object has no attribute 'machineIdentifier'

Problem-relevant configuration.yaml entries and steps to reproduce:
media_player:
  - platform: plex
    host: xxxxxxxxxx
    port: 32400
    entity_namespace: 'xxxxxxxxxxx'
    include_non_clients: true
    scan_interval: 10
    use_custom_entity_ids: false
    use_episode_art: true
    show_all_controls: true

Additional info:
Did work without errors on 0.61.1

Try the plex component in this branch:
https://github.com/ryanm101/home-assistant/tree/machineID/homeassistant and let me know of any issues

sorry, newbie on HASS.
Can somebody point me to some documentation how to implement above hotfix?
I copied
https://github.com/ryanm101/home-assistant/blob/machineID/homeassistant/components/media_player/plex.py
to
\\SERVER\flashdrive\home\homeassistant\.homeassistant\custom_components\media_player
and restarted (raspberry) server.
Settings on HASS:
plex.conf
{
    "<IP_ADDRESS>:32400": {
        "ssl": false,
        "token": "************",
        "verify": false
    }
}

configuration.yaml
# ===============================================
# PLEX
# ===============================================
# Example configuration.yaml entry
media_player:
  - platform: plex
    entity_namespace: 'plex'
    include_non_clients: true
    scan_interval: 5
    show_all_controls: true
    use_custom_entity_ids: true
    use_episode_art: true

If I play movies, on HASS it shows
"plex unnamed device" without any info.
is this normal? Or am I missing something?
kind regards,
Bart

yes and no.. Yes as the Fix I added was to prevent the error. No in that we should be able to get a device name and details.. My problem is I dont have any devices that exhibit this behaviour making it a pita to troubleshoot

Watching some ATV 2nd Gen on ebay but not wanting to pay dear for it as i've more than enough streaming devices to see if i can sort this

Anyone have a apple tv they want to donate to help me get this fixed? Was going to buy one but not managed to get one cheap enough yet.
I'll see if i can setup plexconnect without an endpoint.


Implement invalidateOnEnvChange

I just had a discussion about invalidating the transformer cache when an environment variable has changed.
See https://github.com/parcel-bundler/parcel/discussions/8573
I would like to implement asset.invalidateOnEnvChange() for parcel-transformer-ejs but im not sure about the best way to build a list of all used in env vars in a template. Any thoughts on this?

Hi @sailerinteractive, great idea!!! We can do this by supporting env vars with prefix PARCEL_EJS_*. Feel free to submit a PR for this if you already have an implementation.

As far as i understand ENV vars are always addressed through "process.env.VAR_NAME" My approach would be to simple run a regular expression for that on the template and then iterate through the results and call asset.invalidateOnEnvChange(...) Does that make sense?


Office 365 Pro Plus 1808 and ProductName

In 1808 version of Office 365 Pro Plus you updated the product name to "Microsoft Office" from "Microsoft Office 2016" which has resulted in previously working enlightened apps for WIP stopping to work if you leveraged template in ZIP..  XML linked in ZIP above also is not updated...
The root cause of this problem is that in your XML, you have an explicit DENY for "Microsoft Office" while you chose to name the latest 1808 product to Microsoft Office.   For others who may have used the XML as a base template removing this DENY and updating references from Office 2016 to Office resolved any WIP issues.

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

ID: b5ed0150-0172-f3ad-3c7f-3a7141efbe64
Version Independent ID: 6a978d2b-a0ff-1052-ce00-06f02f30cfa1
Content: List of enlightened Microsoft apps for use with Windows Information Protection (WIP) (Windows 10)
Content Source: windows/security/information-protection/windows-information-protection/enlightened-microsoft-apps-and-wip.md
Product: w10
GitHub Login: @Justinha
Microsoft Alias: justinha

@ajgolia Thanks for reporting this. Our engineering team is working on a fix and the docs will be updated accordingly.

@ajgolia This issue has been fixed. I updated the product names in the table and the download has been updated also. I think official communications have also been sent to Intune customers who may have been affected.


XcodeColors installed using Alcatraz is not being detected

When you install XcodeColors using Alcatraz (http://alcatraz.io/) in XCode 7.2, the detection seems to fail, probably because the environment variable isn't being set.
// Check if XcodeColors is installed and enabled
if let xcodeColors = NSProcessInfo.processInfo().environment["XcodeColors"] {
   xcodeColorsEnabled = xcodeColors == "YES"
}

Use:
log.xcodeColorsEnabled = true

when setting up your log object to explicitly turn on colours. Relying on the environment variable isn't great for iOS apps since you have to add it manually in your project. The environment variable works better for OS X apps since you can set it in your .profile etc and have it work for all projects.


Updating the differential analysis scripts to include the Drug treatment information provided

Additionally, fixed the handling of NA values in the phospho differential expression analysis. Previously was imputing with zeros due to an oversight.