Not Connecting with DigitialOcean

Hi Siddhartham,
First of all thanks for your great work you did by creating this plugin to store images to digitalOcean.
I am facing issue with saving images to digitalOceanSpaces.
kindly look into it.
find my thumbor.config
################################### Logging ####################################
Logging configuration as json
Defaults to: None
#THUMBOR_LOG_CONFIG = None
Log Format to be used by thumbor when writing log messages.
Defaults to: '%(asctime)s %(name)s:%(levelname)s %(message)s'
#THUMBOR_LOG_FORMAT = '%(asctime)s %(name)s:%(levelname)s %(message)s'
Date Format to be used by thumbor when writing log messages.
Defaults to: '%Y-%m-%d %H:%M:%S'
#THUMBOR_LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
################################################################################
################################### Imaging ####################################
Max width in pixels for images read or generated by thumbor
Defaults to: 0
#MAX_WIDTH = 0
Max height in pixels for images read or generated by thumbor
Defaults to: 0
#MAX_HEIGHT = 0
Max pixel count for images read by thumbor
Defaults to: 75000000.0
#MAX_PIXELS = 75000000.0
Min width in pixels for images read or generated by thumbor
Defaults to: 1
#MIN_WIDTH = 1
Min width in pixels for images read or generated by thumbor
Defaults to: 1
#MIN_HEIGHT = 1
Allowed domains for the http loader to download. These are regular
expressions.
Defaults to: [
#]
#ALLOWED_SOURCES = [
#]
Quality index used for generated JPEG images
Defaults to: 80
#QUALITY = 80
Exports JPEG images with the progressive flag set.
Defaults to: True
#PROGRESSIVE_JPEG = True
Specify subsampling behavior for Pillow (see subsampling               in
http://pillow.readthedocs.org/en/latest/handbook/image-file-
formats.html#jpeg).Be careful to use int for 0,1,2 and string for "4:4:4"
notation. Will ignore quality. Using keep will copy the original file's
subsampling.
Defaults to: None
#PILLOW_JPEG_SUBSAMPLING = None
Specify quantization tables for Pillow (see qtables               in
http://pillow.readthedocs.org/en/latest/handbook/image-file-
formats.html#jpeg). Will ignore quality. Using keep will copy the
original file's qtables.
Defaults to: None
#PILLOW_JPEG_QTABLES = None
Specify resampling filter for Pillow resize method.One of LANCZOS, NEAREST,
BILINEAR, BICUBIC, HAMMING (Pillow>=3.4.0).
Defaults to: 'LANCZOS'
#PILLOW_RESAMPLING_FILTER = 'LANCZOS'
Quality index used for generated WebP images. If not set (None) the same level
of JPEG quality will be used. If 100 the lossless flag will be used.
Defaults to: None
#WEBP_QUALITY = None
Compression level for generated PNG images.
Defaults to: 6
#PNG_COMPRESSION_LEVEL = 6
Indicates if final image should preserve indexed mode (P or 1) of original
image
Defaults to: True
#PILLOW_PRESERVE_INDEXED_MODE = True
Specifies whether WebP format should be used automatically if the request
accepts it (via Accept header)
Defaults to: False
#AUTO_WEBP = False
Specifies whether a PNG image should be used automatically if the png image
has no transparency (via alpha layer). WARNING: Depending on case, this is
not a good deal. This transformation maybe causes distortions or the size
of image can increase. Images with texts, for example, the result image
maybe will be distorced. Dark images, for example, the size of result image
maybe will be bigger. You have to evaluate the majority of your use cases
to take a decision about the usage of this conf.
Defaults to: False
#AUTO_PNG_TO_JPG = False
Specify the ratio between 1in and 1px for SVG images. This is only used
whenrasterizing SVG images having their size units in cm or inches.
Defaults to: 150
#SVG_DPI = 150
Max AGE sent as a header for the image served by thumbor in seconds
Defaults to: 86400
#MAX_AGE = 86400
Indicates the Max AGE header in seconds for temporary images (images with
failed smart detection)
Defaults to: 0
#MAX_AGE_TEMP_IMAGE = 0
Indicates whether thumbor should rotate images that have an Orientation EXIF
header
Defaults to: False
#RESPECT_ORIENTATION = False
Ignore errors during smart detections and return image as a temp image (not
saved in result storage and with MAX_AGE_TEMP_IMAGE age)
Defaults to: False
#IGNORE_SMART_ERRORS = False
Sends If-Modified-Since & Last-Modified headers; requires support from result
storage
Defaults to: False
#SEND_IF_MODIFIED_LAST_MODIFIED_HEADERS = False
Preserves exif information in generated images. Increases image size in
kbytes, use with caution.
Defaults to: False
#PRESERVE_EXIF_INFO = False
Indicates whether thumbor should enable the EXPERIMENTAL support for animated
gifs.
Defaults to: True
#ALLOW_ANIMATED_GIFS = True
Indicates whether thumbor should use gifsicle engine. Please note that smart
cropping and filters are not supported for gifs using gifsicle (but won't
give an error).
Defaults to: False
#USE_GIFSICLE_ENGINE = False
Indicates whether thumbor should enable blacklist functionality to prevent
processing certain images.
Defaults to: False
#USE_BLACKLIST = False
Size of the thread pool used for image transformations.  The default value is
0 (don't use a threadpoool. Increase this if you are seeing your IOLoop
getting blocked (often indicated by your upstream HTTP requests timing out)
Defaults to: 0
#ENGINE_THREADPOOL_SIZE = 0
################################################################################
################################ Extensibility #################################
The metrics backend thumbor should use to measure internal actions. This must
be the full name of a python module (python must be able to import it)
Defaults to: 'thumbor.metrics.logger_metrics'
#METRICS = 'thumbor.metrics.logger_metrics'
The loader thumbor should use to load the original image. This must be the
full name of a python module (python must be able to import it)
Defaults to: 'thumbor.loaders.http_loader'
LOADER = 'thumbor_spaces.loaders.spaces_loader'
The file storage thumbor should use to store original images. This must be the
full name of a python module (python must be able to import it)
Defaults to: 'thumbor.storages.file_storage'
#STORAGE = 'thumbor.storages.file_storage'
The result storage thumbor should use to store generated images. This must be
the full name of a python module (python must be able to import it)
Defaults to: None
RESULT_STORAGE = 'thumbor_spaces.result_storages.spaces_storage'
The imaging engine thumbor should use to perform image operations. This must
be the full name of a python module (python must be able to import it)
Defaults to: 'thumbor.engines.pil'
#ENGINE = 'thumbor.engines.pil'
The gif engine thumbor should use to perform image operations. This must be
the full name of a python module (python must be able to import it)
Defaults to: 'thumbor.engines.gif'
#GIF_ENGINE = 'thumbor.engines.gif'
The url signer thumbor should use to verify url signatures.This must be the
full name of a python module (python must be able to import it)
Defaults to: 'libthumbor.url_signers.base64_hmac_sha1'
#URL_SIGNER = 'libthumbor.url_signers.base64_hmac_sha1'
################################################################################
################################### Security ###################################
The security key thumbor uses to sign image URLs
Defaults to: 'MY_SECURE_KEY'
#SECURITY_KEY = 'MY_SECURE_KEY'
Indicates if the /unsafe URL should be available
Defaults to: True
ALLOW_UNSAFE_URL = True
Indicates if encrypted (old style) URLs should be allowed
Defaults to: True
ALLOW_OLD_URLS = True
################################################################################
##################################### HTTP #####################################
Enables automatically generated etags
Defaults to: True
ENABLE_ETAGS = True
################################################################################
################################### Storage ####################################
Set maximum id length for images when stored
Defaults to: 32
#MAX_ID_LENGTH = 32
################################################################################
################################# Performance ##################################
Set garbage collection interval in seconds
Defaults to: None
#GC_INTERVAL = None
################################################################################
################################# Healthcheck ##################################
Healthcheck route.
Defaults to: '/healthcheck'
#HEALTHCHECK_ROUTE = '/healthcheck'
################################################################################
################################### Metrics ####################################
Host to send statsd instrumentation to
Defaults to: None
#STATSD_HOST = None
Port to send statsd instrumentation to
Defaults to: 8125
#STATSD_PORT = 8125
Prefix for statsd
Defaults to: None
#STATSD_PREFIX = None
################################################################################
################################# File Loader ##################################
The root path where the File Loader will try to find images
Defaults to: '/home/java-manish'
#FILE_LOADER_ROOT_PATH = '/home/java-manish'
################################################################################
################################# HTTP Loader ##################################
The maximum number of seconds libcurl can take to connect to an image being
loaded
Defaults to: 5
#HTTP_LOADER_CONNECT_TIMEOUT = 5
The maximum number of seconds libcurl can take to download an image
Defaults to: 20
#HTTP_LOADER_REQUEST_TIMEOUT = 20
Indicates whether libcurl should follow redirects when downloading an image
Defaults to: True
#HTTP_LOADER_FOLLOW_REDIRECTS = True
Indicates the number of redirects libcurl should follow when downloading an
image
Defaults to: 5
#HTTP_LOADER_MAX_REDIRECTS = 5
The maximum number of simultaneous HTTP connections the loader can make before
queuing
Defaults to: 10
#HTTP_LOADER_MAX_CLIENTS = 10
Indicates whether thumbor should forward the user agent of the requesting user
Defaults to: False
#HTTP_LOADER_FORWARD_USER_AGENT = False
Indicates whether thumbor should forward the headers of the request
Defaults to: False
#HTTP_LOADER_FORWARD_ALL_HEADERS = False
Indicates which headers should be forwarded among all the headers of the
request
Defaults to: [
#]
#HTTP_LOADER_FORWARD_HEADERS_WHITELIST = [
#]
Default user agent for thumbor http loader requests
Defaults to: 'Thumbor/6.7.1'
#HTTP_LOADER_DEFAULT_USER_AGENT = 'Thumbor/6.7.1'
The proxy host needed to load images through
Defaults to: None
#HTTP_LOADER_PROXY_HOST = None
The proxy port for the proxy host
Defaults to: None
#HTTP_LOADER_PROXY_PORT = None
The proxy username for the proxy host
Defaults to: None
#HTTP_LOADER_PROXY_USERNAME = None
The proxy password for the proxy host
Defaults to: None
#HTTP_LOADER_PROXY_PASSWORD = None
The filename of CA certificates in PEM format
Defaults to: None
#HTTP_LOADER_CA_CERTS = None
Validate the server’s certificate for HTTPS requests
Defaults to: None
#HTTP_LOADER_VALIDATE_CERTS = None
The filename for client SSL key
Defaults to: None
#HTTP_LOADER_CLIENT_KEY = None
The filename for client SSL certificate
Defaults to: None
#HTTP_LOADER_CLIENT_CERT = None
If the CurlAsyncHTTPClient should be used
Defaults to: False
#HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT = False
################################################################################
################################### General ####################################
If HTTP_LOADER_CURL_LOW_SPEED_LIMIT and HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT are
set, then this is the time in seconds as integer after a download should
timeout if the speed is below HTTP_LOADER_CURL_LOW_SPEED_LIMIT for that
long
Defaults to: 0
#HTTP_LOADER_CURL_LOW_SPEED_TIME = 0
If HTTP_LOADER_CURL_LOW_SPEED_TIME and HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT are
set, then this is the limit in bytes per second as integer which should
timeout if the speed is below that limit for
HTTP_LOADER_CURL_LOW_SPEED_TIME seconds
Defaults to: 0
#HTTP_LOADER_CURL_LOW_SPEED_LIMIT = 0
Custom app class to override ThumborServiceApp. This config value is
overridden by the -a command-line parameter.
Defaults to: 'thumbor.app.ThumborServiceApp'
#APP_CLASS = 'thumbor.app.ThumborServiceApp'
################################################################################
################################# File Storage #################################
Expiration in seconds for the images in the File Storage. Defaults to one
month
Defaults to: 2592000
#STORAGE_EXPIRATION_SECONDS = 2592000
Indicates whether thumbor should store the signing key for each image in the
file storage. This allows the key to be changed and old images to still be
properly found
Defaults to: False
#STORES_CRYPTO_KEY_FOR_EACH_IMAGE = False
The root path where the File Storage will try to find images
Defaults to: '/tmp/thumbor/storage'
#FILE_STORAGE_ROOT_PATH = '/tmp/thumbor/storage'
################################################################################
#################################### Upload ####################################
Max size in Kb for images uploaded to thumbor
Aliases: MAX_SIZE
Defaults to: 0
UPLOAD_MAX_SIZE = 0
Indicates whether thumbor should enable File uploads
Aliases: ENABLE_ORIGINAL_PHOTO_UPLOAD
Defaults to: False
UPLOAD_ENABLED = True
The type of storage to store uploaded images with
Aliases: ORIGINAL_PHOTO_STORAGE
Defaults to: 'thumbor.storages.file_storage'
UPLOAD_PHOTO_STORAGE = 'thumbor_spaces.result_storages.spaces_storage'
Indicates whether image deletion should be allowed
Aliases: ALLOW_ORIGINAL_PHOTO_DELETION
Defaults to: False
UPLOAD_DELETE_ALLOWED = True
Indicates whether image overwrite should be allowed
Aliases: ALLOW_ORIGINAL_PHOTO_PUTTING
Defaults to: False
UPLOAD_PUT_ALLOWED = True
Default filename for image uploaded
Defaults to: 'image'
UPLOAD_DEFAULT_FILENAME = 'image'
################################################################################
############################### Memcache Storage ###############################
List of Memcache storage server hosts
Defaults to: [
'localhost:11211',
#]
#MEMCACHE_STORAGE_SERVERS = [
'localhost:11211',
#]
################################################################################
################################ Mixed Storage #################################
Mixed Storage file storage. This must be the full name of a python module
(python must be able to import it)
Defaults to: 'thumbor.storages.no_storage'
#MIXED_STORAGE_FILE_STORAGE = 'thumbor.storages.no_storage'
Mixed Storage signing key storage. This must be the full name of a python
module (python must be able to import it)
Defaults to: 'thumbor.storages.no_storage'
#MIXED_STORAGE_CRYPTO_STORAGE = 'thumbor.storages.no_storage'
Mixed Storage detector information storage. This must be the full name of a
python module (python must be able to import it)
Defaults to: 'thumbor.storages.no_storage'
#MIXED_STORAGE_DETECTOR_STORAGE = 'thumbor.storages.no_storage'
################################################################################
##################################### Meta #####################################
The callback function name that should be used by the META route for JSONP
access
Defaults to: None
#META_CALLBACK_NAME = None
################################################################################
################################## Detection ###################################
List of detectors that thumbor should use to find faces and/or features. All
of them must be full names of python modules (python must be able to import
it)
Defaults to: [
#]
#DETECTORS = [
#]
The cascade file that opencv will use to detect faces.
Defaults to: 'haarcascade_frontalface_alt.xml'
#FACE_DETECTOR_CASCADE_FILE = 'haarcascade_frontalface_alt.xml'
The cascade file that opencv will use to detect glasses.
Defaults to: 'haarcascade_eye_tree_eyeglasses.xml'
#GLASSES_DETECTOR_CASCADE_FILE = 'haarcascade_eye_tree_eyeglasses.xml'
The cascade file that opencv will use to detect profile faces.
Defaults to: 'haarcascade_profileface.xml'
#PROFILE_DETECTOR_CASCADE_FILE = 'haarcascade_profileface.xml'
################################################################################
################################## Optimizers ##################################
List of optimizers that thumbor will use to optimize images
Defaults to: [
#]
#OPTIMIZERS = [
#]
Path for the jpegtran binary
Defaults to: '/usr/bin/jpegtran'
#JPEGTRAN_PATH = '/usr/bin/jpegtran'
Path for the progressive scans file to use with jpegtran optimizer. Implies
progressive jpeg output
Defaults to: ''
#JPEGTRAN_SCANS_FILE = ''
Path for the ffmpeg binary used to generate gifv(h.264)
Defaults to: '/usr/local/bin/ffmpeg'
#FFMPEG_PATH = '/usr/local/bin/ffmpeg'
################################################################################
################################### Filters ####################################
List of filters that thumbor will allow to be used in generated images. All of
them must be full names of python modules (python must be able to import
it)
Defaults to: [
'thumbor.filters.brightness',
'thumbor.filters.colorize',
'thumbor.filters.contrast',
'thumbor.filters.rgb',
'thumbor.filters.round_corner',
'thumbor.filters.quality',
'thumbor.filters.noise',
'thumbor.filters.watermark',
'thumbor.filters.equalize',
'thumbor.filters.fill',
'thumbor.filters.sharpen',
'thumbor.filters.strip_exif',
'thumbor.filters.strip_icc',
'thumbor.filters.frame',
'thumbor.filters.grayscale',
'thumbor.filters.rotate',
'thumbor.filters.format',
'thumbor.filters.max_bytes',
'thumbor.filters.convolution',
'thumbor.filters.blur',
'thumbor.filters.extract_focal',
'thumbor.filters.focal',
'thumbor.filters.no_upscale',
'thumbor.filters.saturation',
'thumbor.filters.max_age',
'thumbor.filters.curve',
'thumbor.filters.background_color',
'thumbor.filters.upscale',
'thumbor.filters.proportion',
'thumbor.filters.stretch',
#]
#FILTERS = [
'thumbor.filters.brightness',
'thumbor.filters.colorize',
'thumbor.filters.contrast',
'thumbor.filters.rgb',
'thumbor.filters.round_corner',
'thumbor.filters.quality',
'thumbor.filters.noise',
'thumbor.filters.watermark',
'thumbor.filters.equalize',
'thumbor.filters.fill',
'thumbor.filters.sharpen',
'thumbor.filters.strip_exif',
'thumbor.filters.strip_icc',
'thumbor.filters.frame',
'thumbor.filters.grayscale',
'thumbor.filters.rotate',
'thumbor.filters.format',
'thumbor.filters.max_bytes',
'thumbor.filters.convolution',
'thumbor.filters.blur',
'thumbor.filters.extract_focal',
'thumbor.filters.focal',
'thumbor.filters.no_upscale',
'thumbor.filters.saturation',
'thumbor.filters.max_age',
'thumbor.filters.curve',
'thumbor.filters.background_color',
'thumbor.filters.upscale',
'thumbor.filters.proportion',
'thumbor.filters.stretch',
#]
################################################################################
################################ Result Storage ################################
Expiration in seconds of generated images in the result storage
Defaults to: 0
#RESULT_STORAGE_EXPIRATION_SECONDS = 0
Path where the Result storage will store generated images
Defaults to: '/tmp/thumbor/result_storage'
#RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = '/tmp/thumbor/result_storage'
Indicates whether unsafe requests should also be stored in the Result Storage
Defaults to: False
RESULT_STORAGE_STORES_UNSAFE = True
################################################################################
############################ Queued Redis Detector #############################
Server host for the queued redis detector
Defaults to: 'localhost'
#REDIS_QUEUE_SERVER_HOST = 'localhost'
Server port for the queued redis detector
Defaults to: 6379
#REDIS_QUEUE_SERVER_PORT = 6379
Server database index for the queued redis detector
Defaults to: 0
#REDIS_QUEUE_SERVER_DB = 0
Server password for the queued redis detector
Defaults to: None
#REDIS_QUEUE_SERVER_PASSWORD = None
################################################################################
############################# Queued SQS Detector ##############################
AWS key id
Defaults to: None
#SQS_QUEUE_KEY_ID = None
AWS key secret
Defaults to: None
#SQS_QUEUE_KEY_SECRET = None
AWS SQS region
Defaults to: 'us-east-1'
#SQS_QUEUE_REGION = 'us-east-1'
################################################################################
#################################### Errors ####################################
This configuration indicates whether thumbor should use a custom error
handler.
Defaults to: False
#USE_CUSTOM_ERROR_HANDLING = False
Error reporting module. Needs to contain a class called ErrorHandler with a
handle_error(context, handler, exception) method.
Defaults to: 'thumbor.error_handlers.sentry'
#ERROR_HANDLER_MODULE = 'thumbor.error_handlers.sentry'
File of error log as json
Defaults to: None
#ERROR_FILE_LOGGER = None
File of error log name is parametrized with context attribute
Defaults to: False
#ERROR_FILE_NAME_USE_CONTEXT = False
################################################################################
############################### Errors - Sentry ################################
Sentry thumbor project dsn. i.e.: http://5a63d58ae7b94f1dab3dee740b301d6a:73ee
a45d3e8649239a973087e8f21f98@localhost:9000/2
Defaults to: ''
#SENTRY_DSN_URL = ''
Sentry environment i.e.: staging
Defaults to: None
#SENTRY_ENVIRONMENT = None
################################################################################
#################################### Server ####################################
The amount of time to wait before shutting down the server, i.e. stop
accepting requests.
Defaults to: 0
#MAX_WAIT_SECONDS_BEFORE_SERVER_SHUTDOWN = 0
The amount of time to waut before shutting down all io, after the server has
been stopped
Defaults to: 0
#MAX_WAIT_SECONDS_BEFORE_IO_SHUTDOWN = 0
################################################################################
###############################  Digital Ocean #################################
configuration for digital ocean
region
SPACES_REGION='stage-fnp'
##SPACE ENDPOINT
SPACES_ENDPOINT='stage-fnp.sfo2'
##SPACES_KEY
SPACES_KEY='xxxx'
##SPACES_SECRET
SPACES_SECRET='xxxxxxx'
##SPACES_BUCKET
SPACES_BUCKET='stage-fnp'
##SPACES_ACL
SPACES_ACL='public'
##SPACES_RESULT_FOLDER
SPACES_RESULT_FOLDER='result_storage'
##SPACES_LOADER_FOLDER
SPACES_LOADER_FOLDER='storage'

Hello. @manishprajaptii
Could you check your thumbor log and let me know what is the error?
Thanks

hellow again :) im have same problem, my thumbor error says
curl -I localhost:8000/unsafe/0x0:2000x1020/600x800/staging/media/orig_50ada34821434780a99b734ad2ab4b79.jpg
HTTP/1.1 504 Gateway Timeout
Date: Mon, 07 Sep 2020 12:22:20 GMT
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Server: TornadoServer/5.1.1

2020-09-07 19:22:20 thumbor:WARNING ERROR retrieving image http://staging/media/orig_50ada34821434780a99b734ad2ab4b79.jpg: [Errno -2] Name or service not known

2020-09-07 19:22:20 tornado.access:ERROR 504 HEAD /unsafe/0x0:2000x1020/600x800/staging/media/orig_50ada34821434780a99b734ad2ab4b79.jpg (<IP_ADDRESS>) 11.82ms

Update again resolve :)
after I read some of the code,
https://github.com/int2root/thumbor_spaces/blob/14e1aa123b93b40272895a82a6d3b6e233b02989/thumbor_spaces/loaders/spaces_loader.py#L22
and
https://github.com/int2root/thumbor_spaces/blob/14e1aa123b93b40272895a82a6d3b6e233b02989/thumbor_spaces/loaders/spaces_loader.py#L23
I just understood that the SPACES_ENDPOINT variable was only in the region and not the full url, because the code has been set to default value .digitaloceanspaces.com, if we enter the full endpoint what will happen is,
sgp1.digitaloceanspaces.com.digitaloceanspaces.com
and the SPACES_LOADER_FOLDER variable is filled by the folder we want to go, in the example it says SPACES_LOADER_FOLDER = 'storage' that means there is a storage folder in space, in my case, I don't have a storage folder but have a staging folder, so I replace storage with staging
like this is my current configuration thumbor.conf,
##################
# Digital Ocean Space  #
##################

RESULT_STORAGE = 'thumbor_spaces.result_storages.spaces_storage'
LOADER = 'thumbor_spaces.loaders.spaces_loader'
SPACES_REGION='sgp1'
SPACES_ENDPOINT='sgp1'
SPACES_KEY='******'
SPACES_SECRET='******'
SPACES_BUCKET='my-bucket'
SPACES_ACL='public'
SPACES_RESULT_FOLDER='result_storage'
SPACES_LOADER_FOLDER='staging'

hope it can help

@denzfarid  @int2root  I have set up thumbor , but the result storage doesn't save anything to DO spaces. Am I missing something ? Here's my config
`
RESULT_STORAGE = 'thumbor_spaces.result_storages.spaces_storage'
LOADER = 'thumbor_spaces.loaders.spaces_loader'
SPACES_REGION='ams3'
SPACES_ENDPOINT='ams3'
SPACES_KEY='***'
SPACES_SECRET='***'
SPACES_BUCKET='saas-space' #name of spaces instance
SPACES_ACL='public'
SPACES_RESULT_FOLDER='result_storage'
SPACES_LOADER_FOLDER='panya' # name of folder in my bucket
`
Help is much appreciated. Thanks

@denzfarid @int2root I have set up thumbor , but the result storage doesn't save anything to DO spaces. Am I missing something ? Here's my config
RESULT_STORAGE = 'thumbor_spaces.result_storages.spaces_storage'
LOADER = 'thumbor_spaces.loaders.spaces_loader'

SPACES_REGION='ams3'

SPACES_ENDPOINT='ams3'

SPACES_KEY='***'

SPACES_SECRET='***'

SPACES_BUCKET='saas-space' #name of spaces instance

SPACES_ACL='public'

SPACES_RESULT_FOLDER='result_storage'

SPACES_LOADER_FOLDER='panya' # name of folder in my bucket

Help is much appreciated. Thanks

please check your thumb error sir,
btw now I don't use this module because I have a problem with the image name,
I have a problem with whitespace (url encode)
if I have an image with spaces, this module renders an image with% 20, so the image is always not found
example:
I have an image with the name: thumbor space.jpg
each space is encoded by the browser to the thumbor% 20space.jpg
and this module still served with the thumbor% 20space.jpg,
even though the image is called thumbor space.jpg, not thumbor% 20space.jpg.
currently I use s3fs and I mount it like nfs, so that the thumbor space.jpg file will still be called as the file name thumbor space.jpg, not as thumbor% 20space.jpg

Hi , I have no errors at the moment , everything thing runs. But I suppose the result storage should store it in DO spaces right ? Somehow it's not happening.
P.S : You can always replace the HTML escape chars

@denzfarid  Also what I meant is that thumbor should save the result file after cropping and resizing back to spaces itself and not to my droplet , is this possible ?

@denzfarid Also what I meant is that thumbor should save the result file after cropping and resizing back to spaces itself and not to my droplet , is this possible ?

@highoncarbs
do you mean cache?
at this time I don't save the cropped result and also the smart face detection result in the file, instead I save it in redis

No, I meant the result storage / cache of the images that have been already processed . Someone from thumbor community said that the aws plugin should also work the same as the spaces plugin , so I'm gonna go with that

No, I meant the result storage / cache of the images that have been already processed . Someone from thumbor community said that the aws plugin should also work the same as the spaces plugin , so I'm gonna go with that

actually, I had that problem too :D

@denzfarid  Any ideas on fixing it , it seems that aws plugin also has the same issue. What would you recommend ?

@denzfarid Any ideas on fixing it , it seems that aws plugin also has the same issue. What would you recommend ?

im already mention it sir
currently I use s3fs and I mount it like nfs

@denzfarid Thanks a lot , Didn't really get it at first . Really appreciate your help

@denzfarid  So sorry to bug you again . I have mounted my DO Spaces bucket , I can view all the files and manually add the files like - touch ok.txt , but Thumbor doesn't seem to write and save the images in my bucket , here's my thumbor config -
`RESULT_STORAGE = 'thumbor.result_storages.file_storage'
LOADER = 'thumbor_spaces.loaders.spaces_loader'
SPACES_REGION='ams3'
SPACES_ENDPOINT='ams3'
SPACES_KEY='xxxxx'
SPACES_SECRET='xxxxx'
SPACES_BUCKET='saas-space' #name of spaces instance
SPACES_ACL='public'
SPACES_RESULT_FOLDER='result_storage'
RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = '/media/panya-result'
SPACES_LOADER_FOLDER='panya' # name of folder in my bucket
`

@denzfarid So sorry to bug you again . I have mounted my DO Spaces bucket , I can view all the files and manually add the files like - touch ok.txt , but Thumbor doesn't seem to write and save the images in my bucket , here's my thumbor config -
RESULT_STORAGE = 'thumbor.result_storages.file_storage'
LOADER = 'thumbor_spaces.loaders.spaces_loader'

SPACES_REGION='ams3'

SPACES_ENDPOINT='ams3'

SPACES_KEY='xxxxx'

SPACES_SECRET='xxxxx'

SPACES_BUCKET='saas-space' #name of spaces instance

SPACES_ACL='public'

SPACES_RESULT_FOLDER='result_storage'

RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = '/media/panya-result'

SPACES_LOADER_FOLDER='panya' # name of folder in my bucket

s3fs Debug Logs
Nov  6 10:16:00 panya s3fs[6263]: s3fs.cpp:s3fs_init(3378): init v1.82(commit:unknown) with GnuTLS(gcrypt)
Nov  6 10:16:00 panya s3fs[6263]: Libgcrypt warning: missing initialization - please fix the application
Nov  6 10:16:01 panya s3fs[6263]: s3fs.cpp:s3fs_check_service(3813): bucket not found(host=https://ams3.digitaloceanspaces.com) - result of checking service.
Nov  6 10:19:15 panya s3fs[6305]: s3fs.cpp:s3fs_init(3378): init v1.82(commit:unknown) with GnuTLS(gcrypt)
Nov  6 10:19:15 panya s3fs[6305]: Libgcrypt warning: missing initialization - please fix the application
Nov  6 16:01:47 panya s3fs[7585]: s3fs.cpp:set_s3fs_log_level(257): change debug level from [CRT] to [DBG]
Nov  6 16:01:47 panya s3fs[7585]:     PROC(uid=0, gid=0) - MountPoint(uid=0, gid=0, mode=40700)
Nov  6 16:02:15 panya s3fs[7589]: s3fs.cpp:s3fs_init(3378): init v1.82(commit:unknown) with GnuTLS(gcrypt)
Nov  6 16:02:15 panya s3fs[7589]: check services.
Nov  6 16:02:15 panya s3fs[7589]:       check a bucket.
Nov  6 16:02:15 panya s3fs[7589]: curl.cpp:GetHandler(283): Get handler from pool: 31
Nov  6 16:02:15 panya s3fs[7589]:       URL is https://ams3.digitaloceanspaces.com/saas-space/
Nov  6 16:02:15 panya s3fs[7589]:       URL changed is https://ams3.digitaloceanspaces.com/saas-space/
Nov  6 16:02:15 panya s3fs[7589]:       computing signature [GET] [/] [] []
Nov  6 16:02:15 panya s3fs[7589]:       url is https://ams3.digitaloceanspaces.com
Nov  6 16:02:15 panya s3fs[7589]: Libgcrypt warning: missing initialization - please fix the application
Nov  6 16:02:15 panya s3fs[7589]: curl.cpp:RequestPerform(1923): connecting to URL https://ams3.digitaloceanspaces.com/saas-space/
Nov  6 16:02:16 panya s3fs[7589]:       HTTP response code 503
Nov  6 16:02:20 panya s3fs[7589]: ### retrying...
Nov  6 16:02:20 panya s3fs[7589]:       Retry request. [type=5][url=https://ams3.digitaloceanspaces.com/saas-space/][path=/]
Nov  6 16:02:20 panya s3fs[7589]:       HTTP response code 503
Nov  6 16:02:24 panya s3fs[7589]: ### retrying...
Nov  6 16:02:24 panya s3fs[7589]:       Retry request. [type=5][url=https://ams3.digitaloceanspaces.com/saas-space/][path=/]
Nov  6 16:02:25 panya s3fs[7589]:       HTTP response code 503
Nov  6 16:02:29 panya s3fs[7589]: ### retrying...
Nov  6 16:02:29 panya s3fs[7589]:       Retry request. [type=5][url=https://ams3.digitaloceanspaces.com/saas-space/][path=/]
Nov  6 16:02:29 panya s3fs[7589]: curl.cpp:RequestPerform(2089): ### giving up
Nov  6 16:02:29 panya s3fs[7589]: curl.cpp:CheckBucket(2953): Check bucket failed, S3 response:
Nov  6 16:02:29 panya s3fs[7589]: s3fs.cpp:s3fs_check_service(3820): unable to connect(host=https://ams3.digitaloceanspaces.com) - result of checking service.
Nov  6 16:02:29 panya s3fs[7589]: curl.cpp:ReturnHandler(306): Return handler to pool: 31
Nov  6 16:02:29 panya s3fs[7589]: s3fs.cpp:s3fs_exit_fuseloop(3368): Exiting FUSE event loop due to errors
Nov  6 16:02:29 panya s3fs[7589]: destroy
Nov  6 16:02:29 panya s3fs[7589]: s3fs.cpp:s3fs_destroy(3445): Could not release curl library.

S3Fs start command
 s3fs saas-space /media/panya-result -o passwd_file=${HOME}/.passwd-s3fs -o dbglevel="debug" -o url=https://ams3.digitaloceanspaces.com/ -o use_path_request_style

Would really appreciate if you could guide me around this. Thanks a lot for all the help again , though

okay after it is mounted, then you don't need to use this plugin anymore, you should use the thumbor configuration with the disk filesystem as before, because it is assumed, the file is already on the OS we are using

@denzfarid Yes ! Thanks again mate.  Thanks again mate. You are a lifesaver

this my thumbor config loader
LOADER = 'thumbor.loaders.file_loader'
STORAGE = 'thumbor.storages.file_storage'
FILE_LOADER_ROOT_PATH = '/mnt/space'

@denzfarid Thanks for the tip man. Also one question , did you have any issues with thumbor filters not working on cloud , but working on your local machine ?

@denzfarid Thanks for the tip man. Also one question , did you have any issues with thumbor filters not working on cloud , but working on your local machine ?

nope, everything be okay

@denzfarid Thanks for everything, really! I ended up using thumbor_aws plugin , s3fs fuse took a lot of toll on my server memory.


WIP: Add TFR functions to externals

@cjayb please take a look. I think I'd prefer it this way. The rule is that anything in externals doesn't need to be tested because it's copied from the original repo (more or less in this case ...)

Looks reasonable to me. There's a lot more in there than we actually need (for Morlet), partly due to mne supporting parallelisation over channels and/or epochs etc. But this is still a lot lighter-weight than a hard dependency on all of mne. I'm +1 for this, not least because I don't see the viz-module being something we'll put much effort in going forward. I think it's doing a few things pretty OK now; good enough for most aspiring users to get a feel of what they're simulating.
I added the missing __init__.py, my first direct push to someone else's branch! For the record, it required specifying the local branch name explicitly: git push -u jasmainak pr/jasmainak/274:externals_tfr
I'll merge when CI's go green.

Thanks @cjayb ! Great teamwork
If your local branch has the same name as the remote branch, you can just do:
$ git push jasmainak externals_tfr

But whatever works, everyone uses git differently :)


Optimised and cleaned the code.

Made the code more Pythonic.

@python3-dev Thanks for this PR.
Are you able to resolve the conflicts?


64 bit CAN signals loose last few bits with double cast

https://github.com/eerimoq/cantools/blob/c6eb73aa030b9e41ba9f2a60751c7f6ddabd45f5/cantools/database/can/c_source.py#L1181
Data is corrupted if the original data is 64 bit binary CAN signal. This usually would go unnoticed with actual physical signals as 64 bit floating point precision is rarely needed.
But if using the decode and encode functions on binary data, the casting from int to double causes loss of a few LSBs.
If a signal has no scaling or offset, I used int64 instead of double.
Please excuse me for any lack of GitHub etiquette. First post.

Hello,
I don't quite understand what is wrong. Could you give an example, or possibly a fix?

A lot the Encode and Decode C functions that are generated cast between "double" and some int. I assume "double" is used as it "covers all" (although there is a hit in processing times as double is 64 bit) The problem happens when the original data is a 64 bit integer (signed or unsigned). A 64 bit integer has a higher precision than a double precision float.
Basically this:

or simpler

The fix I'm implementing uses double only when the scaling or offset from the DBC has a decimal. All other cases get an int64. It really needs to go deeper than that and look at the range as well. For example, if its only whole numbers but the range is larger than max int64, then double must be used. (I don't have cases like that)

Ok, I see. I'm sure more users are interested in using integer types instead of double when scaling signals. I have no plans on implementing this myself, but I'm open to merge any PR that adds valuable functionality.


[CSSimplify] Avoid resolving extraneous (trailing) closures

If a (trailing) closure is determined to be an extraneous argument
for one of the overload choices it needs to be marked as hole as
eagerly as possible and prevented from being resolved because
otherwise it's going to be disconnected from the rest of the
constraint system and resolution might not be able to find all of
the referenced variables. This could result either in crashes or
superfluous diagnostics.
Resolves: rdar://141012049

@swift-ci please test


[BUG] testCancellationDuringQueryPhaseUsingRequestParameter flakey test

Describe the bug
testCancellationDuringQueryPhaseUsingRequestParameter
REPRODUCE WITH: ./gradlew ':server:internalClusterTest' --tests "org.opensearch.search.SearchCancellationIT.testCancellationDuringQueryPhaseUsingRequestParameter" -Dtests.seed=181F3F6D79C48BB2 -Dtests.security.manager=true -Dtests.jvm.argline="-XX:TieredStopAtLevel=1 -XX:ReservedCodeCacheSize=64m" -Dtests.locale=lv -Dtests.timezone=Africa/Monrovia -Druntime.java=17

org.opensearch.search.SearchCancellationIT > testCancellationDuringQueryPhaseUsingRequestParameter FAILED
    java.lang.AssertionError: At least one shard should have failed. Actual: 0
        at __randomizedtesting.SeedInfo.seed([181F3F6D79C48BB2:9A8D0FA37A08DEA1]:0)
        at org.junit.Assert.fail(Assert.java:89)
        at org.junit.Assert.failEquals(Assert.java:187)
        at org.junit.Assert.assertNotEquals(Assert.java:201)
        at org.opensearch.search.SearchCancellationIT.ensureSearchWasCancelled(SearchCancellationIT.java:167)
        at org.opensearch.search.SearchCancellationIT.testCancellationDuringQueryPhaseUsingRequestParameter(SearchCancellationIT.java:247)

https://github.com/opensearch-project/OpenSearch/pull/2654

Tried running the test for 100 times. It passed successfully
./gradlew ':server:internalClusterTest' --tests "org.opensearch.search.SearchCancellationIT.testCancellationDuringQueryPhaseUsingRequestParameter" -Dtests.seed=181F3F6D79C48BB2 -Dtests.security.manager=true -Dtests.jvm.argline="-XX:TieredStopAtLevel=1 -XX:ReservedCodeCacheSize=64m" -Dtests.locale=lv -Dtests.timezone=Africa/Monrovia -Druntime.java=17 -Dtests.iters=100

> Configure project :qa:os
Cannot add task 'destructiveDistroTest.docker' as a task with that name already exists.
=======================================
OpenSearch Build Hamster says Hello!
  Gradle Version        : 7.6
  OS Info               : Linux 5.11.0-1020-aws (amd64)
  Runtime JDK Version   : 17 (Oracle JDK)
  Runtime java.home     : /usr/lib/jvm/java-17/jdk-17.0.1
  Gradle JDK Version    : 17 (Oracle JDK)
  Gradle java.home      : /usr/lib/jvm/java-17/jdk-17.0.1
  Random Testing Seed   : 181F3F6D79C48BB2
  In FIPS 140 mode      : false
=======================================

> Task :server:internalClusterTest
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.opensearch.bootstrap.BootstrapForTesting (file:/home/ubuntu/OpenSearch/test/framework/build/distributions/framework-3.0.0-SNAPSHOT.jar)
WARNING: Please consider reporting this to the maintainers of org.opensearch.bootstrap.BootstrapForTesting
WARNING: System::setSecurityManager will be removed in a future release
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.gradle.api.internal.tasks.testing.worker.TestWorker (file:/home/ubuntu/.gradle/wrapper/dists/gradle-7.6-all/9f832ih6bniajn45pbmqhk2cw/gradle-7.6/lib/plugins/gradle-testing-base-7.6.jar)
WARNING: Please consider reporting this to the maintainers of org.gradle.api.internal.tasks.testing.worker.TestWorker
WARNING: System::setSecurityManager will be removed in a future release

BUILD SUCCESSFUL in 7m 58s

Closed this issue until it resurfaces next time.


Add feature for username and password for httpProxy

Plugin name and version
azure-maven-plugins, all versions, latest one is 1.10.0.
Plugin configuration in your pom.xml

proxyserver.com
8080

Expected behavior
Plugin can work with proxy server which requires username and password.
Actual behavior
According to document: https://docs.microsoft.com/it-it/java/api/overview/azure/maven/azure-functions-maven-plugin/readme?view=azure-java-stable#configurations
It only supports httpProxyHost and httpProxyPort. There is no entry to define username and password.
Steps to reproduce the problem
Running a java application with proxy server configured, it can always been reproduced.

We will impl proxy with authentication in Auguest.

The PR is availabe https://github.com/microsoft/azure-maven-plugins/pull/1677


feature: Caching getFlatComponents

Summary
This PR introduces caching for the getFlatComponents method to enhance performance by avoiding redundant computations. This change is particularly beneficial for scenarios involving large sets of components, where the flattening process can be computationally expensive.
Changes

Caching: Added a caching mechanism to store the results of the getFlatComponents method based on the visibility of components (withHidden flag).

Detailed Changes

Caching Implementation:

Introduced a new property $cachedFlatComponents to store cached results.
Modified getFlatComponents to check the cache before computing the flat list of components.
Ensured that the cache key reflects the state of the withHidden flag to maintain correct behavior for both visible and hidden components.

Testing

Verified that the caching mechanism works as expected and does not alter the existing functionality.
Ensured that the output of getFlatComponents is consistent with the previous implementation.
Tested with both withHidden set to true and false to confirm correct behavior in both scenarios.

Comparison
The main advantage in speed is visible when we work with repeaters that use livewire. Without this cache, it is difficult to work with repeaters with a large number of components.
Before

After

This is a very risky change, any request that calls the method and then adds new components to the state such as in a repeater, builder or another dynamic schema could be affected. I will need time to test this to ensure there aren't any knock-on effects.

danharrin, sure, thanks, will do double-check from my end too.

I think this is a useful change, but I am going to merge it into v4 as I am not 100% confident this will not cause issues in some cases. Thank you.


Fix uniform open() func between stores

uniform store.open() to/with (dir, inmemory) args
uniform db.open() and remove OpenWithStore()
modify test for that
modify example for that

@Shane-XB-Qian, for setting engine-specific options, the user should call OpenWithStore().
There is no need to support all possible combinations on parameters in the default Open() function by adding a map.

for setting engine-specific options, the user should call OpenWithStore()

really? the default db.open() hard code to bbolt only, if to change store then use OpenWithStore()?
i roughly check this prj code, felt meta/plan/idx etc seems pretty good, but this open related code i doubt was really designed by you?


Can dbrparser be compatible with ElasticSearch Version 6.x

Hello,
I have been trying to use the dbrparser tool to index billing details into ElasticSearch cluster that has es version 6.x. When I run, I get the following error:
pkg_resources.DistributionNotFound: The 'elasticsearch<3.0.0,>=2.2.0' distribution was not found and is required by awsdbrparser
Is there a possibility to use the dbrparser tool for ElasticSearch version 6.x
Note: I have no errors when I run the dbrparser with the python elasticsearch client 'elasticsearch>=2.0.0,<3.0.0'. I do encounter the error when my elasticsearch client is 'elasticsearch (6.3.1)'

Thanks,
Aadesh.K

Hi Aadesh.K,
The ElasticSearch 6.x has a shift in the the index, documents and types model that is incompatible with the current implementation.
We are planning to launch a new Cost Optimization monitor that will use CUR files instead of DBR files and this will move from a tool running in a EC2 instance to lambda functions triggered when the new CUR file is put in the S3 bucket.
With this in mind we will change the way that we send the data and the way that we structure the documents and types to be in conformity with ElasticSearch 6.x
So, for this tool we don't have plans to add ES 6.x compatibility.

Thanks @koiker !


Allow for custom variables to be passed via the cli

Hello!
First of all thanks for the amazing work, I do really love to work with SST!
Related to the app I'm developing with SST,  I have some CDK code that needs to be executed in order to add permission sets to AWS Identity Center that is managed in a different account (I am using Cognito with SAML auth backed up by Identity Center).
In order to conditionally deploy the app or the SSO Infra stacks, I wanted to pass a parameter to the index.ts entrypoint; something like the following: npx sst deploy --deploy-sso-infra
However I cannot find the variable neither in process.argv nor in process.env.
I know I could use a made-up stage name (e.g. something like npx sst deploy --stage sso ) and and that's actually what I am doing at the moment, but I would like to be more explicit and I generally think it could be useful also if you want define stakcs with parameters (  new CfnParameter(...) ).
Thanks again for the awesom work  :)

Hey @pecostef, can u use environment variable instead?
ie. DEPLOY_SSO_INFRA=true npx sst deploy and check for process.env. DEPLOY_SSO_INFRA

Hi @fwang ! Thanks for your comment.
Sure I can use env. variables. I just noticed that the --parameters flag that you would normally use with the CDK are not passed over by sst.
However, thinking a bit more about this, I also kind of realized that the philosophy behind sst is a bit different, in the sense that it is meant to develop and deploy self-contained apps and in this context having parametrized stacks to handle different types of infra is IMHO an anti-pattern.
What I ended up doing is extracting the cross-apps infrastructure into a separate CDK project, so that shared infra needed for all the different apps like SSO, CI/CD, etc are handled separately.
Once more thanks for the amazing work, SST is awesome!


migrate sds secret names that contain a service account to use identity

This PR prepares for custom trust domains, by migrating SDS Secrets' names from service account to Service Identity.
Currently there are 3 types of SDS Secrets:
"service-cert:<namespace>/<identity>"
"root-cert-for-mtls-outbound:<namespace>/<service>"
"root-cert-for-mtls-inbound:<namespace/identity>"

To support multiple trust domains, which will have different certificates, we need to make the names unique. The simplest way to do this is to include the trust domain itself, which is currently present in the identity. (Note that we'll also need to include it in the service, but we will tackle that in a future PR).
Instead of using the single type SDSCert to contain this information, with methods that only work if the underlying name/type is matched correctly, we instead break out SDSCert into an interface, backed by a type for each. We bring the error checking into the parsing method, which reduces the need for additional error checking throughout the code, and lastly remove/restructure a couple methods to remove additional boilerplate.
If you notice tests are deleted, rest-assured the test cases are maintained, but are instead moved to test the exported functions, instead of unit-testing unexported functions.
This is part of #4754

To support multiple trust domains, which will have different certificates, we need to make the names unique

Could you explain with an example when we would have multiple trust domains for the same service/root?

To support multiple trust domains, which will have different certificates, we need to make the names unique

Could you explain with an example when we would have multiple trust domains for the same service/root?

During a migration from 1 to another. This also will likely tee us up for multicluster use cases

To support multiple trust domains, which will have different certificates, we need to make the names unique

Could you explain with an example when we would have multiple trust domains for the same service/root?

During a migration from 1 to another. This also will likely tee us up for multicluster use cases

I don't see a requirement for migration/multicluster in #4754.
Given the nature of this change, could you kindly draft a design doc outlining the changes being proposed to add support for configurable trust domains before proceeding with this implementation, thanks

To support multiple trust domains, which will have different certificates, we need to make the names unique

Could you explain with an example when we would have multiple trust domains for the same service/root?

During a migration from 1 to another. This also will likely tee us up for multicluster use cases

I don't see a requirement for migration/multicluster in #4754.

Multicluster is not a requirement, but it's a nice to have. However 0 downtime migration is explicitly called out in that issue.

Given the nature of this change, could you kindly draft a design doc outlining the changes being proposed to add support for configurable trust domains before proceeding with this implementation, thanks

Design doc feels like overkill, since there's not a lot of ambiguity on how to implement this.
I think we should strive to provide zero-downtime migrations for users whenever possible. Is there a reason we shouldn't implement it this way?
FWIW I think we should be able to hash out discussion on the right approach in this PR

To support multiple trust domains, which will have different certificates, we need to make the names unique

Could you explain with an example when we would have multiple trust domains for the same service/root?

During a migration from 1 to another. This also will likely tee us up for multicluster use cases

I don't see a requirement for migration/multicluster in #4754.

Multicluster is not a requirement, but it's a nice to have. However 0 downtime migration is explicitly called out in that issue.

Given the nature of this change, could you kindly draft a design doc outlining the changes being proposed to add support for configurable trust domains before proceeding with this implementation, thanks

Design doc feels like overkill, since there's not a lot of ambiguity on how to implement this.

This feature makes fundamental changes to the control plane in a manner that affects how secrets are provisioned and used. I disagree that a design doc is an overkill. It will help understand the concrete requirements and evaluate the overall scope of the work involed and the proposed approach.
Since you brought up things like multicluster and migration, which falls outside the scope of the issue referenced, I'd like to see something more concrete in the form of a doc that outlines how these pieces tie together.

To support multiple trust domains, which will have different certificates, we need to make the names unique

Could you explain with an example when we would have multiple trust domains for the same service/root?

During a migration from 1 to another. This also will likely tee us up for multicluster use cases

I don't see a requirement for migration/multicluster in #4754.

Multicluster is not a requirement, but it's a nice to have. However 0 downtime migration is explicitly called out in that issue.

Given the nature of this change, could you kindly draft a design doc outlining the changes being proposed to add support for configurable trust domains before proceeding with this implementation, thanks

Design doc feels like overkill, since there's not a lot of ambiguity on how to implement this.

This feature makes fundamental changes to the control plane in a manner that affects how secrets are provisioned and used. I disagree that a design doc is an overkill. It will help understand the concrete requirements and evaluate the overall scope of the work involed and the proposed approach.

A requirements doc sounds like more what you're looking for? If so, I'd be happy to put that together, as it would be significantly less effort than a DD.

Since you brought up things like multicluster and migration, which falls outside the scope of the issue referenced, I'd like to see something more concrete in the form of a doc that outlines how these pieces tie together.

Please ignore multicluster then.. I mentioned it in passing as a nice to have -- again it's not a hard requirement.
Migration however is definitively scoped in the referenced issue.


Some questions about code details

I read the code on branch argoverse2,  could you help me answer some questions about the code?

dataset_argoverse.py  L501  ,  the code should be like in the following?

lane_type_to_int[LaneType.BIKE] = 2
lane_type_to_int[LaneType.BUS] = 3

dataset_argoverse.py L527, why the code vectors.append(vector) not in the end of this for loop?
decoder.py L339  loss[i] += F.nll_loss(pred_probs[i].unsqueeze(0), torch.tensor([argmin], device=device)), should the second parameter be torch.tensor([1], device=device)?
dataset_argoverse.py L428  should add:

if len(focal_track.object_states) != 110:
            return None

because some object_states of focal_track is less than 110, or the code won't run.

argoverse2 didn't train the set_predictor, have you try to train set_predictor?  If the performance could be closet to that of offline optimization?

Thanks for pointing it out!
This produces the same results as placing in the end of the loop
Why "1"? "Argmin" indicates the closest predicted trajectory.
If some object_states of focal_track is less than 110, there should be an error. But I have not seen this situation.
We will add set_predictor next week

3. nll_loss

It's my fault
Maybe there is someting wrong with my downloaded data, there are dozens of samples the object_states of focal_track is less than 110.  for example these 2 situations: 02ecafff-012c-45f8-bb6e-5ace2c6e3d88 and 014c02b0-3315-4faf-aca5-b239f5b7f0ca,  actually 105 frames data.
Looking forward to that

We found that these two examples 02ecafff-012c-45f8-bb6e-5ace2c6e3d88 and 014c02b0-3315-4faf-aca5-b239f5b7f0ca are both 110 frames.


Add german language support

Hi @krahabb,
this pull request should add german language support to your component. This way it makes it easier for german people to configure and use your component.
If I missed anything, feel free to ping me.
Cheers Patrick

Thank you, I'll review and merge when 'finally' polishing the new release!


"azd init" failing with "address already in use" error

Is there an existing issue for this?

[x] I have searched the existing issues

Describe the bug
Trying to initialize a project, azd init keep failing with the same error.
Expected Behavior
No response
Steps To Reproduce
azd init
Exceptions (if any)
ERROR: failed to generate manifest from app host project: generating app host manifest:

dotnet run --publisher manifest on project 'myproject.csproj' failed: exit code: 134, stdout: Using launch settings from Properties/launchSettings.json...

info: Aspire.Hosting.DistributedApplication[0]
      Aspire version: 9.0.0+01ed51919f8df692ececce51048a140615dc759d
info: Aspire.Hosting.DistributedApplication[0]
      Distributed application starting.
info: Aspire.Hosting.DistributedApplication[0]
      Application host directory is: myproject
fail: Microsoft.Extensions.Hosting.Internal.Host[11]
      Hosting failed to start
      System.IO.IOException: Failed to bind to address https://<IP_ADDRESS>:21103: address already in use.

       ---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
       ---> System.Net.Sockets.SocketException (48): Address already in use
         at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
         at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
         at System.Net.Sockets.Socket.Bind(EndPoint localEP)
         at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
         [...]
         at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token)
         at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
fail: Microsoft.Extensions.Hosting.Internal.Host[11]
      Hosting failed to start
      System.IO.IOException: Failed to bind to address https://<IP_ADDRESS>:21103: address already in use.
       ---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
       ---> System.Net.Sockets.SocketException (48): Address already in use
         at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
         [...]
         at Aspire.Hosting.Dashboard.DashboardServiceHost.Microsoft.Extensions.Hosting.IHostedService.StartAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dashboard/DashboardServiceHost.cs:line 201
         at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token)
         at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
, stderr: Unhandled exception. System.AggregateException: One or more errors occurred. (Failed to bind to address https://<IP_ADDRESS>:21103: address already in use.)
 ---> System.IO.IOException: Failed to bind to address https://<IP_ADDRESS>:21103: address already in use.
 ---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
 ---> System.Net.Sockets.SocketException (48): Address already in use
   [...]
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Aspire.Hosting.Dashboard.DashboardServiceHost.Microsoft.Extensions.Hosting.IHostedService.StartAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/Dashboard/DashboardServiceHost.cs:line 201
   at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token)
   at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
   at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>g__LogAndRethrow|14_3(<>c__DisplayClass14_0&)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Aspire.Hosting.DistributedApplication.RunAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting/DistributedApplication.cs:line 311
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at Aspire.Hosting.DistributedApplication.Run() in /_/src/Aspire.Hosting/DistributedApplication.cs:line 339
   at AppHost.Program.Main() in Program.cs:line 55

.NET Version info
dotnet --version
9.0.100
Anything else?
Aspire launchSettings:
{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "https": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:21100;http://localhost:21101",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "DOTNET_ENVIRONMENT": "Development",
        "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21102",
        "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:21103"
      }
    },
    "http": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "http://localhost:21101",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "DOTNET_ENVIRONMENT": "Development",
        "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:21102",
        "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:21103"
      }
    }
  }
}

Target project launchsettings:
{
  "profiles": {
    "http": {
      "commandName": "Project",
      "launchBrowser": false,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_URLS": "http://+:9001",
        "COMPlus_ReadyToRun": "0",
        "DOTNET_ReadyToRun": "0"
      }
    }
  }
}

That's interesting, it shouldn't be booting up a server in publish mode, can you share the whole project?

That's interesting, it shouldn't be booting up a server in publish mode, can you share the whole project?

here's a repro https://github.com/dluc/kernel-memory/blob/misc127/tools/aspire/test/Program.cs
git clone https://github.com/dluc/kernel-memory.git km
cd km
git checkout misc127
cd tools/aspire/test
azd init --from-code

Remove —From-code from your azd init. See if that works

I added it here just for convenience, I hit the error with 'azd unit'

Try passing command line args through to the DistributedApplicationBuilder.  Without that it won't know anything about the --publisher manifest argument azd appears to be running your app with.
  internal static void Main(string[] args)
    {
        var builder = DistributedApplication.CreateBuilder(args);

It turns out the problem was caused by a semi-crashed instance of Aspire still running in the background, and holding the TCP ports. Looks like "azd init" needs those ports to be free after all, perhaps something worth checking.
After killing the faulty processes, "azd init" works fine.


cannot resolve method  'forObjectList(java.lang.String,java.lang.String,,boolean,List<java.util.List<com.apollographql.apollo.api.ResponseField.Condition>)

compile 'com.apollographql.apollo:apollo-runtime:0.4.4'
compile 'com.apollographql.apollo:apollo-android-support:0.4.4'
xxx/android/common/build/generated/source/apollo/com/xx/xx/xxxQuery.java
ResponseField.forObjectList("entries", "entries", null, true, Collections.<ResponseField.Condition>emptyList()),
xx.graphql
query xxxQuery {
shop{
entries{
desc
}
}
}

@sav007 @ghostbuster91  Can you help me with that? Less than or equal to 0.4.1 compile OK，but greater than 0.4.2 compile error。

pls give it a try new version 0.5.0 and try to clean and rebuild.

thank you for your  reply，but it doesn't work。@sav007

could you please dump the dependency graph for your project by running:
./gradlew :YOUR_MODULE_NAME:dependencies

compile - Classpath for compiling the main sources.
+--- com.android.support:leanback-v17:26.0.2
|    +--- com.android.support:support-compat:26.0.2
|    |    --- com.android.support:support-annotations:26.0.2
|    +--- com.android.support:support-core-ui:26.0.2
|    |    +--- com.android.support:support-annotations:26.0.2
|    |    --- com.android.support:support-compat:26.0.2 ()
|    +--- com.android.support:support-media-compat:26.0.2
|    |    +--- com.android.support:support-annotations:26.0.2
|    |    --- com.android.support:support-compat:26.0.2 ()
|    +--- com.android.support:support-fragment:26.0.2
|    |    +--- com.android.support:support-compat:26.0.2 ()
|    |    +--- com.android.support:support-core-ui:26.0.2 ()
|    |    --- com.android.support:support-core-utils:26.0.2
|    |         +--- com.android.support:support-annotations:26.0.2
|    |         --- com.android.support:support-compat:26.0.2 ()
|    --- com.android.support:recyclerview-v7:26.0.2
|         +--- com.android.support:support-annotations:26.0.2
|         +--- com.android.support:support-compat:26.0.2 ()
|         --- com.android.support:support-core-ui:26.0.2 ()
+--- com.android.support:appcompat-v7:26.0.2
|    +--- com.android.support:support-annotations:26.0.2
|    +--- com.android.support:support-v4:26.0.2
|    |    +--- com.android.support:support-compat:26.0.2 ()
|    |    +--- com.android.support:support-media-compat:26.0.2 ()
|    |    +--- com.android.support:support-core-utils:26.0.2 ()
|    |    +--- com.android.support:support-core-ui:26.0.2 ()
|    |    --- com.android.support:support-fragment:26.0.2 ()
|    +--- com.android.support:support-vector-drawable:26.0.2
|    |    +--- com.android.support:support-annotations:26.0.2
|    |    --- com.android.support:support-compat:26.0.2 ()
|    --- com.android.support:animated-vector-drawable:26.0.2
|         +--- com.android.support:support-vector-drawable:26.0.2 ()
|         --- com.android.support:support-core-ui:26.0.2 ()
+--- com.android.support:preference-v7:26.0.2
|    +--- com.android.support:support-v4:26.0.2 ()
|    +--- com.android.support:appcompat-v7:26.0.2 ()
|    --- com.android.support:recyclerview-v7:26.0.2 ()
+--- com.android.support:preference-leanback-v17:26.0.2
|    +--- com.android.support:support-v4:26.0.2 ()
|    +--- com.android.support:appcompat-v7:26.0.2 ()
|    +--- com.android.support:recyclerview-v7:26.0.2 ()
|    +--- com.android.support:preference-v7:26.0.2 ()
|    +--- com.android.support:preference-v14:26.0.2
|    |    +--- com.android.support:support-v4:26.0.2 ()
|    |    +--- com.android.support:appcompat-v7:26.0.2 ()
|    |    +--- com.android.support:recyclerview-v7:26.0.2 ()
|    |    --- com.android.support:preference-v7:26.0.2 ()
|    --- com.android.support:leanback-v17:26.0.2 ()
+--- com.android.support:preference-v14:26.0.2 ()
+--- com.github.mjdev:libaums:0.5.5
|    --- com.android.support:support-annotations:25.1.0 -> 26.0.2
+--- com.android.support:multidex:1.0.1
+--- :AlivcReporter:
+--- :AlivcPlayer:
+--- :AliyunVodPlayer:
+--- :AliyunVodPlayerView:
--- project :common
+--- com.android.support:design:26.0.2
|    +--- com.android.support:support-v4:26.0.2 ()
|    +--- com.android.support:appcompat-v7:26.0.2 ()
|    +--- com.android.support:recyclerview-v7:26.0.2 ()
|    --- com.android.support:transition:26.0.2
|         +--- com.android.support:support-annotations:26.0.2
|         --- com.android.support:support-v4:26.0.2 ()
+--- com.android.support:cardview-v7:26.0.2
|    --- com.android.support:support-annotations:26.0.2
+--- com.android.support:recyclerview-v7:26.0.2 ()
+--- com.android.support:percent:26.0.2
|    --- com.android.support:support-compat:26.0.2 ()
+--- com.tencent.bugly:crashreport_upgrade:1.3.4
+--- com.jakewharton.timber:timber:4.0.1
+--- com.facebook.stetho:stetho:1.3.1
|    +--- com.google.code.findbugs:jsr305:2.0.1 -> 3.0.1
|    --- commons-cli:commons-cli:1.2
+--- com.facebook.stetho:stetho-okhttp3:1.3.1
|    +--- com.google.code.findbugs:jsr305:2.0.1 -> 3.0.1
|    +--- com.squareup.okhttp3:okhttp:3.0.1 -> 3.9.0
|    |    --- com.squareup.okio:okio:1.13.0
|    --- com.facebook.stetho:stetho:1.3.1 ()
+--- com.squareup.okhttp3:okhttp:3.9.0 ()
+--- com.alibaba:fastjson:1.2.40
+--- com.github.bumptech.glide:glide:4.3.1
|    +--- com.github.bumptech.glide:gifdecoder:4.3.1
|    |    --- com.android.support:support-annotations:26.0.2
|    +--- com.github.bumptech.glide:disklrucache:4.3.1
|    --- com.github.bumptech.glide:annotations:4.3.1
+--- com.squareup.picasso:picasso:2.5.2
+--- com.jakewharton.threetenabp:threetenabp:1.0.5
|    --- org.threeten:threetenbp:1.3.3
+--- com.google.zxing:core:3.3.0
+--- com.github.iwgang:countdownview:2.1.6
+--- com.github.ctiao:DanmakuFlameMaster:0.4.6
+--- com.apollographql.apollo:apollo-runtime:0.5.0
|    +--- com.squareup.okhttp3:okhttp:3.8.1 -> 3.9.0 (*)
|    +--- com.nytimes.android:cache:2.0.2
|    |    --- com.google.code.findbugs:jsr305:3.0.1
|    --- com.apollographql.apollo:apollo-api:0.5.0
|         +--- com.google.code.findbugs:jsr305:3.0.1
|         --- javax.annotation:jsr250-api:1.0
+--- com.apollographql.apollo:apollo-android-support:0.5.0
--- com.squareup.leakcanary:leakcanary-android-no-op:1.5
@sav007

apollo gradle plugin
classpath 'com.apollographql.apollo:gradle-plugin:0.4.1' @sav007

but don't have classpath 'com.apollographql.apollo:gradle-plugin:0.5.0'
error message:
Error:Could not find com.apollographql.apollo:gradle-plugin:0.5.0.
Searched in the following locations:
file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.pom
file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.jar
http://maven.aliyun.com/nexus/content/repositories/releases/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.pom
http://maven.aliyun.com/nexus/content/repositories/releases/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.jar
https://oss.sonatype.org/content/repositories/snapshots/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.pom
https://oss.sonatype.org/content/repositories/snapshots/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.jar
https://maven.google.com/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.pom
https://maven.google.com/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.jar
https://jitpack.io/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.pom
https://jitpack.io/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.jar
https://jcenter.bintray.com/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.pom
https://jcenter.bintray.com/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.jar
https://plugins.gradle.org/m2/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.pom
https://plugins.gradle.org/m2/com/apollographql/apollo/gradle-plugin/0.5.0/gradle-plugin-0.5.0.jar
Required by:
project :
@sav007


[KYUUBI #5509][FOLLOWUP] JDBC IT should always depends on kyuubi-hive-jdbc-shaded

:mag: Description
Issue References 🔗

build/dist is going to fail without profile -Pjdbc-shaded after bumping a new version.
Describe Your Solution 🔧
Making the JDBC IT module always depends on kyuubi-hive-jdbc-shaded, to ensure the shaded JDBC is packaged before the JDBC IT module performs copy jars.
Types of changes :bookmark:

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Test Plan 🧪
Bump a new version, then perform making the distribution.
build/mvn versions:set -DgenerateBackupPoms=false -DnewVersion="1.9.1-SNAPSHOT"
build/dist --spark-provided --hive-provided --flink-provided

Before, failed with
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:3.6.1:copy (copy) on project kyuubi-jdbc-it_2.12: Unable to find/resolve artifact.: Could not find artifact org.apache.kyuubi:kyuubi-hive-jdbc-shaded:jar:1.9.1-SNAPSHOT in aliyun-apache-snapshots (https://maven.aliyun.com/repository/apache-snapshots/) -> [Help 1]

After, everything goes well.

Checklist 📝

[x] This patch was not authored or co-authored using Generative Tooling

Be nice. Be informative.

cc @tigrulya-exe

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 61.13%. Comparing base (f1cf1e4) to head (12f600d).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #6135      +/-   ##
============================================
+ Coverage     61.11%   61.13%   +0.01%
  Complexity       23       23
============================================
  Files           624      624
  Lines         37260    37260
  Branches       5046     5046
============================================
+ Hits          22772    22779       +7
+ Misses        12025    12017       -8
- Partials       2463     2464       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Thanks, merged to master


cmd/server: search: don't include spaces in jaroWrinkler distance

Jane Doe matching jan lahore at 81% seemed a bit high, let's ignore the spaces.

Codecov Report

Merging #59 into master will increase coverage by 0.5%.
The diff coverage is 100%.

@@           Coverage Diff            @@
##           master     #59     +/-   ##
========================================
+ Coverage    61.6%   62.1%   +0.5%
========================================
  Files          17      17
  Lines        1336    1338      +2
========================================
+ Hits          823     831      +8
+ Misses        422     418      -4
+ Partials       91      89      -2


Spectators in duty mode can punch other players

This is a "feature" of the Vanish thing we're using and mostly unrelated to CivDuties. Leaving it open anyway

I think it's part of finale actually? It happens on my pvp server which is basically only finale and some non-civ plugins.


Fix Multiple Workers in CI

Description
Currently we are running three workers for Android and five workers for iOS in CI. The success rate for iOS and Android is 58.54% and 69.23% respectively. Ideally we should have a success rate of E2E tests of greater than 80% and a time of less than 25 minutes.

OS
Duration (Past 7 Days)
Success Rate (Past 7 Days)

iOS
30:14
69.23%

Android
24:52
58.54%

Initial results after merging - will update a week out.

OS
Duration (Past 1 Day)
Success Rate (Past 1 Day)

iOS
21:12
100.00%

Android
21:36
57.14%

OS
Duration (Past 3 Days)
Success Rate (Past 3 Days)

iOS
21:02
100.00%

Android
22:00
100.00%


Hide SQL Query

Feature Description
The ability to remove the capability for end users to show underlying SQL queries.
Goal of Feature
It would provide a better UX for our customers. We are building a customer-facing data product and don't want them to be confused by "show queries" nor do we want them to view our code.
Current Solution / Workarounds
N/A
Alternatives
N/A

It’s a great idea.
Safe to assume you’d like to set it globally for the whole project rather than on a page by page basis?

this is done
use neverShowQueries in the layout file https://docs.evidence.dev/reference/themes-and-layouts/


Add support for nested tuples

What is wrong?
contract Foo:
    def foo():
        x: (u256, (u256, u256)) = (0, (1, 2))

causes thread 'main' panicked at 'not yet implemented', compiler/src/lowering/names.rs:38:32
Backtrace
thread 'main' panicked at 'not yet implemented', compiler/src/lowering/names.rs:38:32
stack backtrace:
   0: rust_begin_unwind
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:92:14
   2: core::panicking::panic
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:50:5
   3: fe_compiler::lowering::names::fixed_size_type_desc
             at ./compiler/src/lowering/names.rs:38:32
   4: fe_compiler::lowering::mappers::module::tuple_to_struct_def::{{closure}}
             at ./compiler/src/lowering/mappers/module.rs:43:62
   5: core::iter::adapters::map::map_fold::{{closure}}
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:82:28
   6: <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold::enumerate::{{closure}}
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/enumerate.rs:104:27
   7: core::iter::traits::iterator::Iterator::fold
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2123:21
   8: <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/enumerate.rs:110:9
   9: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:122:9
  10: core::iter::traits::iterator::Iterator::for_each
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:775:9
  11: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:42:17
  12: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:53:9
  13: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:36:9
  14: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:2401:9
  15: core::iter::traits::iterator::Iterator::collect
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:1764:9
  16: fe_compiler::lowering::mappers::module::tuple_to_struct_def
             at ./compiler/src/lowering/mappers/module.rs:37:18
  17: fe_compiler::lowering::mappers::module::module::{{closure}}
             at ./compiler/src/lowering/mappers/module.rs:28:32
  18: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:280:13
  19: core::option::Option<T>::map
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:487:29
  20: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:101:9
  21: alloc::vec::Vec<T,A>::extend_desugared
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:2496:35
  22: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:18:9
  23: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:37:9
  24: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:36:9
  25: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:2401:9
  26: core::iter::traits::iterator::Iterator::collect
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:1764:9
  27: fe_compiler::lowering::mappers::module::module
             at ./compiler/src/lowering/mappers/module.rs:25:35
  28: fe_compiler::lowering::lower
             at ./compiler/src/lowering/mod.rs:12:5
  29: fe_compiler::compile
             at ./compiler/src/lib.rs:51:29
  30: fe::main
             at ./src/main.rs:179:33
  31: core::ops::function::FnOnce::call_once
             at /home/y_nak/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

You've hit an internal compiler error. This is a bug in the Fe compiler.
Fe is still under heavy development, and isn't yet ready for production use.

How can it be fixed
Lower tuples recursively.

could replicate this.
I did some experiments in lowering/names.rs.
The crash was in ```
pub fn fixed_size_type_desc(typ: &FixedSize) -> fe::TypeDesc
FixedSize::Tuple(_) => todo!()

While not fully understanding Rust nor the way this compiler works but I implemented it somehow.
Now the behaviour is that nested Tuple like `x: (u256,(u256, u256)) = (0,(0,0))`
crashes with an AnalyzerError ...
`"tuple_u256_tuple_u256_u256` expects 1 argument, but 2 were provided"`
So this is what the lowering generated with my changes. **I don't know whether this is the supposed result that the lowering should generate.**
Maybe somebody with a better understanding of the supposed Fe compiler functionality can answer this.
The next nested tuple i tried is:
`x: (u256,(u256, u256),(u256, u256)) = (0,(0,0),(0,0))`
This crashed with:
`"tuple_u256_tuple_u256_u256_tuple_u256_u256` expects 1 argument, but 3 were provided"`
Is this the right way Tuples are to be represented for YUL?

My implementaion of `FixedSize::Tuple(_) => todo!()`

:

FixedSize::Tuple(tuple) => fe::TypeDesc::Tuple {
items: {
let mut v1: Vec1<Nodefe::TypeDesc> =
Vec1::new(fixed_size_type_desc(tuple.items.first()).into_node());
for item in tuple.items.iter().skip(1) {
v1.push(fixed_size_type_desc(&item).into_node())
}
Vec1::from(v1)
},
The full Backtraces of the mentioned nested Tuples:

(base) mmm@ttt:~/fe$ ./target/debug/fe --overwrite ./tests/fixtures/features/nested_tuple.fe
thread 'main' panicked at 'failed to analyze lowered AST: AnalyzerError([Diagnostic { severity: Error, code: None, message: "feature not yet implemented", labels: [Label { style: Primary, file_id: SourceFileId(333005103741714625151580942366672813312), range: 0..0, message: "non-base type struct fields is not yet implemented" }], notes: [] }, Diagnostic { severity: Error, code: None, message: "tuple_u256_tuple_u256_u256 expects 1 argument, but 2 were provided", labels: [Label { style: Primary, file_id: SourceFileId(333005103741714625151580942366672813312), range: 62..71, message: "expects 1 argument" }, Label { style: Secondary, file_id: SourceFileId(333005103741714625151580942366672813312), range: 63..64, message: "" }, Label { style: Secondary, file_id: SourceFileId(333005103741714625151580942366672813312), range: 65..70, message: "supplied 2 arguments" }], notes: [] }])', compiler/src/lib.rs:55:59
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
You've hit an internal compiler error. This is a bug in the Fe compiler.
Fe is still under heavy development, and isn't yet ready for production use.
If you would, please report this bug at the following URL:
https://github.com/ethereum/fe/issues/new
(base) mmm@ttt:~/fe$ ./target/debug/fe --overwrite ./tests/fixtures/features/nested_tuple.fe
thread 'main' panicked at 'failed to analyze lowered AST: AnalyzerError([Diagnostic { severity: Error, code: None, message: "feature not yet implemented", labels: [Label { style: Primary, file_id: SourceFileId(194361644908539828904080200297581464859), range: 0..0, message: "non-base type struct fields is not yet implemented" }], notes: [] }, Diagnostic { severity: Error, code: None, message: "feature not yet implemented", labels: [Label { style: Primary, file_id: SourceFileId(194361644908539828904080200297581464859), range: 0..0, message: "non-base type struct fields is not yet implemented" }], notes: [] }, Diagnostic { severity: Error, code: None, message: "tuple_u256_tuple_u256_u256_tuple_u256_u256 expects 1 argument, but 3 were provided", labels: [Label { style: Primary, file_id: SourceFileId(194361644908539828904080200297581464859), range: 75..90, message: "expects 1 argument" }, Label { style: Secondary, file_id: SourceFileId(194361644908539828904080200297581464859), range: 76..77, message: "" }, Label { style: Secondary, file_id: SourceFileId(194361644908539828904080200297581464859), range: 78..83, message: "" }, Label { style: Secondary, file_id: SourceFileId(194361644908539828904080200297581464859), range: 84..89, message: "supplied 3 arguments" }], notes: [] }])', compiler/src/lib.rs:55:59
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
You've hit an internal compiler error. This is a bug in the Fe compiler.
Fe is still under heavy development, and isn't yet ready for production use.
If you would, please report this bug at the following URL:
https://github.com/ethereum/fe/issues/new

Hey @mjobuda, sorry, I didn't notice you were looking into this. I implemented the lowering part of this in #459, because I was doing some nearby tuple-related refactoring, and I couldn't help myself. The resulting lowered code still won't compile, because it has nested structs which aren't supported yet (which maybe you're already working on in #465 :metal:)
Eg (u8, (u16, u32)) becomes
struct tuple_u16_u32_:
  item0: u16
  item1: u32

struct tuple_u8_tuple_u16_u32__:
  item0: u8
  item1: tuple_u16_u32_

@sbillig exactly, in order to have nested tuples, nested structs must work(that's how I understand it after I implemented the strings in the struct fileds as part of #465 ).
Did I understand it right that in #459 you have implemented the lowering of the left side of expressions like:
x: (u16,(u8, u256)) = (1,(2,3))
?
And what is missing to get nested tuples to work  is lowering the right side and getting the nested structs to work?

Resolved in #459 and #642


RDBES: RS_RegDisCategory creation of new code list

Code                          Description
'DeMinimis'              'De minimis'
'HighSurvivability'     'High survivability'
'DamagedFish'          'Damaged fish'
'NotApplicable'        'Not applicable'
'NotKnown'              'Not known'

@HenrikK-N
please provide the description of this new CodeType, also better description is needed for 'DeMinimis' to not be misinterpreted

The description of RS_RegDisCategory: Logbook registered discard category.

The description for Code 'DeMinimis' should be: 'Discards allowed under a ‘de minimis’ exemption from the EU Landing Obligation'

Changes done


error registering fatbin: 222   in cpu-client.c:380

Hello，the following error occurred when I tried to run the test program cricket.testapp.

But when I run it directly without using the server, it can run successfully.
Is it a problem with my driver version?

Thank you so much！

You are getting CUDA error 222. According to the NVIDIA documentation this is:
cudaErrorUnsupportedPtxVersion = 222
This indicates that the provided PTX was compiled with an unsupported toolchain. The most common reason for this, is the PTX was generated by a compiler newer than what is supported by the CUDA driver and PTX JIT compiler.
There seems to be an issue with your setup. You may also have to tweak the arch flag to nvcc in the Makefile that build cricket.testapp.

I've encountered the same issue as well. When I run the program for the first time , it works fine. However, when I run it again with the same parameters, I get an error.
root@desktop:/home/cricket# REMOTE_GPU_ADDRESS=<IP_ADDRESS> LD_PRELOAD=/home/cricket/bin/cricket-client.so  ../cuda/matrix_mul 4096
+08:00:00.000004 INFO:	connection to host "<IP_ADDRESS>"
+08:00:00.000145 DEBUG:	the command is "matrix_mul_v2"
+08:00:00.000160 DEBUG: using prog=99, vers=1	in cpu-client.c:98
+08:00:00.000171 INFO:	connecting via TCP...
+08:00:00.001383 DEBUG: __cudaRegisterFatBinary(fatCubin=0x637a500f6028)	in cpu-client.c:358
+08:00:00.001790 DEBUG: found new kernel: _Z9matrixMulPfS_S_i (symbol table id: 0x4)	in cpu-elf2.c:975
+08:00:00.001815 DEBUG: cbank_param_size: 0x1c	in cpu-elf2.c:724
+08:00:00.002261 DEBUG:	fatbin loaded to 0x637a5148df30
+08:00:00.002278 DEBUG: __cudaRegisterFunction(fatCubinHandle=0x637a5148df30, hostFun=0x637a500f135c, devFunc=_Z9matrixMulPfS_S_i, deviceName=_Z9matrixMulPfS_S_i, thread_limit=-1, tid=[(nil)], bid=[(nil)], bDim=[(nil)], gDim=[(nil)], wSize=(nil))
	in cpu-client.c:322
+08:00:00.002293 DEBUG: request to register known function: "_Z9matrixMulPfS_S_i"	in cpu-client.c:334
Matrix size: 4096 x 4096
Result verification disabled
Using Device 0: "NVIDIA GeForce RTX 4060 Ti"
+08:00:00.881592 DEBUG: cudaLaunchKernel(0x637a500f135c)	in cpu-client-runtime.c:969
+08:00:00.881648 DEBUG:	calling kernel "_Z9matrixMulPfS_S_i" (param_size: 28, param_num: 4)
CUDA matrix multiplication completed.
+08:00:01.276752 DEBUG: __cudaUnregisterFatBinary(fatCubinHandle=0x637a5148df30)	in cpu-client.c:394
+08:00:01.276940 INFO:	api-call-cnt: 15
+08:00:01.276957 INFO:	memcpy-cnt: 201326592
root@desktop:/home/cricket#
root@desktop:/home/cricket#
root@desktop:/home/cricket#
root@desktop:/home/cricket# REMOTE_GPU_ADDRESS=<IP_ADDRESS> LD_PRELOAD=/home/cricket/bin/cricket-client.so  ../cuda/matrix_mul 4096
+08:00:00.000004 INFO:	connection to host "<IP_ADDRESS>"
+08:00:00.000144 DEBUG:	the command is "matrix_mul_v2"
+08:00:00.000160 DEBUG: using prog=99, vers=1	in cpu-client.c:98
+08:00:00.000171 INFO:	connecting via TCP...
+08:00:00.001254 DEBUG: __cudaRegisterFatBinary(fatCubin=0x5fcfc7736028)	in cpu-client.c:358
+08:00:00.001493 DEBUG: found new kernel: _Z9matrixMulPfS_S_i (symbol table id: 0x4)	in cpu-elf2.c:975
+08:00:00.001517 DEBUG: cbank_param_size: 0x1c	in cpu-elf2.c:724
+08:00:00.001700 ERROR: error registering fatbin: 709	in cpu-client.c:380
+08:00:00.001717 DEBUG: __cudaRegisterFunction(fatCubinHandle=(nil), hostFun=0x5fcfc773135c, devFunc=_Z9matrixMulPfS_S_i, deviceName=_Z9matrixMulPfS_S_i, thread_limit=-1, tid=[(nil)], bid=[(nil)], bDim=[(nil)], gDim=[(nil)], wSize=(nil))
	in cpu-client.c:322
+08:00:00.001731 DEBUG: request to register known function: "_Z9matrixMulPfS_S_i"	in cpu-client.c:334
+08:00:00.001843 ERROR: error registering function: -1	in cpu-client.c:344
+08:00:00.001936 INFO:	api-call-cnt: 0
+08:00:00.001951 INFO:	memcpy-cnt: 0

matrix_mul.txt


[OCPNODE-1671] Add ImagePolicy

Add ImagePolicy struct of ImagePolicy CRD for image sigstore signature verification.
Epic: https://issues.redhat.com/browse/OCPNODE-1628

@saschagrunert could you review the api?

/test integration

/assign @QiWang19

/retest

/test e2e-aws-serial-techpreview

@JoelSpeed PTAL

@JoelSpeed could you give this another round of review?

OK, looking at what's going on here, there are a number of comments asking for context (answers to questions I've asked) to make it into godoc, but validation and structure are otherwise all good. So if we can get those updates done, i think we can start getting this merged.
How are the dependent PRs looking? Just conscious we don't have long left of this release before branching

The implementation is currently being developed but hasn't been tested on an actual cluster since the unavailability of the API build.

@JoelSpeed PTAL

I have a commit to not register the API so we can merge before branching

Please remove the second commit, we should not be merging the types without the CRD and tests. What is the motivation for the second commit?
Is this feature going to land in 4.15?

I think the OIDC issuer field needs a little more depth to the godoc there. I assume, since I'm semi familiar with OIDC, that the expectation is that the URL will be prepended to /.well-known/openid-configuration before making a request to discover the endpoints, right?
In that case I'd want to mention that the issue URL should be the full URL including any subpath that the issuer is hosted on and that the issuer URL will be used to discover jwt keys or whatever it's being used for

we have the feature gate https://github.com/openshift/api/pull/1470 for this API.

/test e2e-azure

@mtrmac Would it be fair then to add to the oidcIssuer field an expanded comment that explains what you've just said? That this should typically match the issuer field in the ...
That way users might have an idea of where they may be able to find this value or verify the value matches some other source at the least

The c/image documentation just says

Both oidcIssuer and subjectEmail are mandatory,
exactly specifying the expected identity provider, and the identity of the user obtaining the Fulcio certificate.

I don’t have a strong opinion on whether the details of the field mapping are worth emphasizing.
In the worst case, the signature enforcement currently fails with "Unexpected Fulcio OIDC issuer %q" on this code path, so users learn what value to use that way.

@JoelSpeed I updated the comment for oidcIssuer, PTAL


'libssh2.h' file not found

help me!

Same issue

up

?

up

brew install libssh2
export<EMAIL_ADDRESS>&& swift package generate-xcodeproj

If you're on ubuntu:
sudo apt update
sudo apt install libssh2-1-dev


Move set out snapshot

In this PR, we did several things.

change how to create a TxnKvClient
move set out from Snapshot

This PR closes #806

/run-all-tests

/run-all-tests tikv=v2.1.9 tidb=v2.1.9 pd=v2.1.9

/run-all-tests tikv=v2.1.9 tidb=v2.1.9 pd=v2.1.9


We should store address feature into the feature table

So, drop objectid and multi_point from address table

done with 057aa4a2


Generate multiple different format outputs in the same time ?

Not an issue... But is there a way to generate multiple different format outputs in the same time ?
Could be interesting to let user choose different format.
{
...,
output = ["./erd.md", "./erd.svg"]
...
}

Thanks

You can just include the generator twice:
generator erd {
  provider = "prisma-erd-generator"
  theme    = "forest"
  output   = "./erd.svg"
}

generator erdmd {
  provider = "prisma-erd-generator"
  output   = "./erd.md"
}

Thanks @Justin-noba as simple as that ;)


Component library - gh time-elements

Thoughts about adding github/time-elements to the component library page?
https://github.com/github/time-elements

@thepassle what do you think? should we add "individual" elements there as well?

It's kind of a slippery slope, i prefer to only have a list of libraries/sets rather than single components. If we're gonna post every single component separately it'll quickly become a manually managed webcomponents.org/catalog

Understood

Yeah, I also became curious whether GH has some kind of an element collection defined, but it doesn't seem like it.

Oops, I have to rectify myself. I thought it was a single component, but it's actually a set of multiple elements. My bad. In that case I think we can list it yeah. @robrez would you be willing to PR it? You can find the file here. Please note that the list is ordered alphabetically.


⚠ Bofrost.lu has degraded performance

In bdba8f3, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1651 ms

Resolved: Bofrost.lu performance has improved in 4d73fd8 after 6 minutes.


Can't preview notes in horizontal mode

Hi, I was trying to get this to work today and managed to have the vertical timeline working. However, in the horizontal mode, I can't make it show a preview of the note when I hover/click/control click on an event, as shown in your example.
This is what I get:

No matter where I click on the event, I can't get it to display its info or jump to its note, in the horizontal mode.
If I double-click on the event it sort of glitches and displays the thumbnail inside the event box for like half a second.
I had a similar issue with the original plugin, btw.

Yeah, this is an existing issue I've been trying to triage. This functionality works a lot better in the front matter update I've been working on for the past couple weeks. When that functionality gets released, this should work as expected.

Awesome!

Yeah, this is an existing issue I've been trying to triage. This functionality works a lot better in the front matter update I've been working on for the past couple weeks. When that functionality gets released, this should work as expected.

attach a href link to the  of the title

Was just testing this on the #9 PR. Works pretty splendidly. Hope to have that merged in soon.

Sounds awesome! Can't wait for it to be ready so I can add all of my notes from my history deck from Anki :D

It's fixed now and works pefectly!


PBI script filenames

The CreatePBISequence.sh now creates the files with the Mu2e naming convention.

:memo: The HEAD of main has changed to ab05cd522cb26a49f34d05d972c2589fd9caea7d. Tests are now out of date.