FR: improve Crashlytics initialization fail message

Feature proposal

Firebase Component: Crashlytics

Related to #5020. It says that __mh_execute_header is not found and recommends to add Exported symbols file. The problem is, we don't have such file and when added Crashlytics starts to work but does not display any our symbols which is logical. I've found out that we have this symbol hidden.
We followed zld's (https://github.com/michaeleisel/zld) guide on making linking faster, since it takes around 50 seconds. So we added linker flag - -Wl,-exported_symbols_list,/dev/null which somehow hides __mh_execute_header.
Removing this flag allows Firebase Crashlytics to be initialized properly.
Info about this flag could be added to the message as well.

Hey @iKleMiX - thanks for letting us know about this! We've added this information to the error log in a PR.


'Lock is not yet acquired' using distributed lock

Describe the issue:
When using rioxarray for saving a dask array to geotiff using a distributed client, it fails. The error message says 'Lock is not yet acquired'. It seems to be caused by a bug in Dask's distributed locks.
The original code is based on this example
I have created a synthetic test (see below).
Minimal Complete Verifiable Example:
import threading
from time import sleep
from distributed import Client, Lock
from concurrent.futures import ThreadPoolExecutor
import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s.%(msecs)03d %(levelname)s: %(threadName)s -> %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
)

class MyLock(Lock):
    def __init__(self, name, client):
        self._name = name
        self._lock = Lock(name=name, client=client)

    def acquire(self):
        logging.info(f'Acquiring {self._name}. Currently locked? {self._lock.locked()}')
        try:
            acquired = self._lock.acquire()
            logging.info(f'Acquired? {acquired} Locked? {self._lock.locked()}')
        except Exception as e:
            logging.error(f'Error acquiring: {e}')
            raise e

    def release(self):
        logging.info(f'Releasing {self._name}. Currently locked? {self._lock.locked()}')
        try:
            released = self._lock.release()
            logging.info(f'Released? {released} Locked? {self._lock.locked()}')
        except Exception as e:
            logging.error(f'Error releasing: {e}')
            raise e

def loop_lock(lock: MyLock, event):
    while not event.is_set():
        lock.acquire()
        sleep(1)
        lock.release()

if __name__ == "__main__":
    n_threads = 8
    client = Client(processes=False, n_workers=1, threads_per_worker=n_threads)
    lock = MyLock("lock", client)
    pool = ThreadPoolExecutor(n_threads, thread_name_prefix='loop_lock')
    event = threading.Event()

    with pool:
        logging.info('Launching threads')
        futures = [pool.submit(loop_lock, lock, event) for _ in range(n_threads)]

        logging.info('sleeping in main thread')
        sleep(20)

        logging.info('Finish test')
        event.set()
        # The program never exits

The output messages are

2024-07-24 07:57:22.939 INFO: MainThread -> Launching threads
2024-07-24 07:57:22.941 INFO: loop_lock_0 -> Acquiring lock. Currently locked? False
2024-07-24 07:57:22.943 INFO: loop_lock_0 -> Acquired? True Locked? True
2024-07-24 07:57:22.945 INFO: loop_lock_1 -> Acquiring lock. Currently locked? True
2024-07-24 07:57:22.948 INFO: loop_lock_2 -> Acquiring lock. Currently locked? True
2024-07-24 07:57:22.954 INFO: loop_lock_3 -> Acquiring lock. Currently locked? True
2024-07-24 07:57:22.958 INFO: loop_lock_4 -> Acquiring lock. Currently locked? True
2024-07-24 07:57:22.962 INFO: loop_lock_5 -> Acquiring lock. Currently locked? True
2024-07-24 07:57:22.968 INFO: loop_lock_6 -> Acquiring lock. Currently locked? True
2024-07-24 07:57:22.971 INFO: MainThread -> sleeping in main thread
2024-07-24 07:57:22.972 INFO: loop_lock_7 -> Acquiring lock. Currently locked? True
2024-07-24 07:57:23.944 INFO: loop_lock_0 -> Releasing lock. Currently locked? True
2024-07-24 07:57:23.947 INFO: loop_lock_0 -> Released? None Locked? False
2024-07-24 07:57:23.947 INFO: loop_lock_0 -> Acquiring lock. Currently locked? False
2024-07-24 07:57:23.948 INFO: loop_lock_1 -> Acquired? True Locked? True
2024-07-24 07:57:24.948 INFO: loop_lock_1 -> Releasing lock. Currently locked? True
2024-07-24 07:57:24.949 INFO: loop_lock_2 -> Acquired? True Locked? True
2024-07-24 07:57:24.950 INFO: loop_lock_1 -> Released? None Locked? False
2024-07-24 07:57:24.950 INFO: loop_lock_1 -> Acquiring lock. Currently locked? False
2024-07-24 07:57:25.950 INFO: loop_lock_2 -> Releasing lock. Currently locked? False
2024-07-24 07:57:25.950 ERROR: loop_lock_2 -> Error releasing: Lock is not yet acquired
2024-07-24 07:57:42.972 INFO: MainThread -> Finish test

(I know messages are not extremely useful, I hope the provided code is better).
Anything else we need to know?:
Despite being observed using rioxarray, I tracked the issue until here. Because of that, the minimum example is just a buch of acquire/release.
I have tested other Client (well, local cluster) parameters, like processes set to true, or 8 workers with a thread per worker. The results are similar. Changing the sleep time in 'loop_lock' does not help either (tried 0.01, 1 and 5 seconds)
Tests with local schedulers ('single-threaded' and 'threads') and with a lock based on threading.lock (like in this example) are working. The problem seems limited to the distributed scheduler.
Environment:

Dask version: 2024.7.0
rioxarray version: 0.16.0
Python version: 3.11.4
Operating System: devcontainer based on mcr.microsoft.com/devcontainers/python:3.11-buster
Install method (conda, pip, source): pdm (it uses a virtual environment)

Hi, thanks for your report. We released a fix for distributed Lock in the last Dask release, could you try on version 2024.07.1?

Hi!
I updated to 2024.7.1, and the test is successful :)
Thanks!

Hi!
I updated to 2024.7.1, and the test is successful :)
Thanks!


Report export missing in Glow v24.10

I cannot see the option to export the report in Glow v24.10 - has it been moved or removed?

My bad, I had not copied over the new language .ini file so could not see that the export option had moved to the bottom left.

Hi,
As I mentioned in the patch notes, the Export feature has been moved to the bottom left.

The Export Information feature has been redesigned. It is now located at the bottom of the left menu. This provides a more detailed printing service.


Remove an Origin Trial

I was hoping to find out how to remove the origin trial that appears in the Meta data in the first line of the head on every page. I did not join this origin trial nor did my developer so I'm not sure how it got there. But it shows up in the url inspection tool in my Google search console and I don't like having something in my coding that I have no idea what it does.   Can anyone help me?

Hi there - do you have a public URL to the website that you can share? It's not possible to enroll another site in an Origin Trial - it requires the ability to deploy an HTTP header (or a 1st-party script to inject the token). If you'd prefer to not post the URL here, you could send it via email to<EMAIL_ADDRESS>

I would prefer to email you my site's url if you don't mind... Thank you. !

I just sent you the url

Got it, thanks. Will follow up via email after some investigation.

Closing here and following up via email.

To close the loop here: the Deprecation Trial was being included by a 3rd party component.

To close the loop here: the Deprecation Trial was being included by a 3rd party component.

whoa, 3 comments. sorry about that :/


failed to disable amd in adler32 and FileSaver

not substituted files but original files were included in output
because of bug in MrRio/jsPDF#602.

Thanks!


fix link error

@honeywest I'll bet I'm the only one at O(1) who remembers Anne Francis.

Should this PR be based on compatible?

These links no longer exist in the file. Closing.


Remove internal metrics sending

Coverage decreased (-0.0005%) to 99.917% when pulling f60fa989d9902851b282bcd32f444ba64bc54024 on broker-metrics into a4a1a19c0fda1478145d48d360b9e0188b4c3615 on master.

Coverage decreased (-0.0005%) to 99.917% when pulling 7e17d0d64551893662b0e253d3242fe7beffaa9c on broker-metrics into a4a1a19c0fda1478145d48d360b9e0188b4c3615 on master.

Coverage decreased (-0.0005%) to 99.917% when pulling 1d7a3e0161c5b2d9259ba5dd5d39faf5769a84d7 on broker-metrics into a4a1a19c0fda1478145d48d360b9e0188b4c3615 on master.

Coverage decreased (-0.0005%) to 99.917% when pulling f057a129b990cc50d344a742eba35e2e4c7655b5 on broker-metrics into a4a1a19c0fda1478145d48d360b9e0188b4c3615 on master.

Coverage decreased (-0.0005%) to 99.917% when pulling 9aac5b17943a88ef89567f2b44d0c8db149db02b on broker-metrics into a4a1a19c0fda1478145d48d360b9e0188b4c3615 on master.


Canon.cpp canonicalizeDoubleBond function refactor

Reference Issue
N/A
What does this implement/fix? Explain your changes.
added a flip bond dir function to remove repeated code inside the canonicalizeDoubleBond function
Any other comments?

Thanks @jfkonecn !


Componentize Job Card

The agency and category views are showing the same layout.  Either the cards, or the whole layout, or both should be componentized to prevent duplication

Implemented in 1fc5eca5cb0d2f1a398e70dabb48229bfb5ba136


Enabling Pullup/Pulldown Programatically?

I'm not sure if this is possible, but I  know the python RPi package handles it.
https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/
something like this would be ideal:
...
button = new Gpio(4, 'in', 'both', 'pulldown');

In addition to supporting the Raspberry Pi onoff also supports other platforms like the BeagleBone or C.H.I.P. It other words it supports any Linux system that allows access to GPIOs using the sysfs files located at /sys/class/gpio. There is currently no way to specify how to configure pullup/pulldown resistors using these sysfs files. It's therefore not possible to add this functionality to onoff.
A potential alternative package that does allow pullup/pulldown resistors to be configured programmatically is pigpio.


Map type "keyvalue" not working properly.

Description:
There is an issue when sending the events with mapping type "keyvalue" where the event key values are not mapping into siddhi event.
Steps to reproduce:
Steps:

Setting up the JMS server and put the client jars.
Deploy the siddhi app 1 and 2.
Simulate the 'inMemoryStream', adn got the following ERROR message:

[2017-12-15 05:54:29,028] ERROR {org.wso2.extension.siddhi.map.keyvalue.sourcemapper.KeyValueSourceMapper} - Stream "SweetProductionStream" has an attribute named "name", but the received event {} does not has a value for that attribute. Hence dropping the message.

App1: source the JMS messages from the ActiveMQ server.
@App:name('ReceiveJMSInJsonFormat')
@source(type='jms',@map(type='keyvalue'),
factory.initial='org.apache.activemq.jndi.ActiveMQInitialContextFactory',
provider.url='tcp://localhost:61616',destination='SP_JMS_TEST', connection.factory.type='topic',
connection.factory.jndi.name='TopicConnectionFactory',transport.jms.SubscriptionDurable='true',
transport.jms.DurableSubscriberClientID='wso2SPclient1')
define stream SweetProductionStream(name string, amount double);

from SweetProductionStream#log("Event: ")
insert into IgnoreOutputStream;

App2: simulate the stream and publish message into ActiveMQ server.
@App:name("SiddhiApp")
@app:description("Description of the plan")
@source(type='inMemory' , topic='option_value')
define stream inMemoryStream (name string, amount double);
@sink(type='jms',factory.initial='org.apache.activemq.jndi.ActiveMQInitialContextFactory',
provider.url='tcp://localhost:61616',destination='SP_JMS_TEST', connection.factory.type='topic', connection.factory.jndi.name='TopicConnectionFactory',
@map(type='keyvalue'))
define stream jmsClientStream (name string, amount double);
from inMemoryStream
select name, amount
insert into jmsClientStream;

Fixed by 5509996e0375546f65c39f02d41743e971f579d5


Vue: implement 'Segmentation' UI component(s)

This issue will remain open until all the checkboxes are checked! PRs can reference this issue and will get credit even if the whole issue is not yet closed :+1:
Note: split off from #110

Design doc reference here: http://concept-to-clinic.readthedocs.io/en/latest/design-doc.html#segment
Mock-up:

Expected Behavior

[ ] Display an image view of a given slice of the selected nodule. Allow navigation between slices.
[ ] Overlay the current vertices on top of the nodule image to see the predicted boundary.
[ ] Allow the user to move existing vertices.
[ ] Allow the user to delete existing vertices.
[ ] Allow the user to add a new vertex splitting a line segment connecting two vertices.
[ ] Allow the user to extend the nodule boundary along the Z axis by extending the currently terminal polygon up or down to the adjacent slice which still has unhighlighted nodule.
[ ] Indicate to the user the Z axis extent of slices.

Mocking data
Feel free to mock data for state if it is not yet implemented in the backend API, and feel free to POST to API endpoints that don't exist yet :sparkles:

In Cornerstone Tools (https://github.com/chafey/cornerstoneTools) we have an ROI tool that could be a good starting point for building the nodule boundary selection tool:
https://rawgit.com/chafey/cornerstoneTools/master/examples/freehandRoi/index.html

i am planning to start implementing this component on this weekend, if no one wants to start earlier

@isms I have a question about Segmentation component. Should it be in the sync with Annotate component? When nodule in Annotate selected, should it be also selected in Segmentation component? If so, could i put both Annotate and Segmentation components under the same Nodule (as on added picture)? If i understood correctly, both components represent data of same nodule
Or selection actions should be independent and implemented as on current design mock?

@jjjmm Yes, they should be in sync, the segmentation screen on the right is showing the same nodule so that the radiologist can see what they are annotating and validate or redraw the predicted borders.
Thanks for asking!

@jjjmm are you still working on this issue? If yes, do you need any help?

@Serhiy-Shekhovtsov currently not, you can take this issue if you want

I am taking it. If anyone willing to join - please, put a comment or ping me on gitter, so we can collaborate on this.

I'm currently working on that, but only over cornerstone-tools segmentation part, thus will be glad to collaborate on this :)

Have a look at Area Canvas Editor as well:

It has some advantages over ROI tool:

no cornerstone-tools dependency, you can put it in any div element. and you can make a separate Vue.js component
user can add new points to existing area
user can remove points
dragging of entire area. It doesn't work on demo page, but I can see it in the code, so we can debug and fix it
the code looks pretty clear, we can probably improve it and get rid of jQuery dependency

I didn't start implementing such component yet, only did small research.

@vessemer I have copied and improved the mentioned project to fit our needs in this PR: #249.

Fixed in https://github.com/concept-to-clinic/concept-to-clinic/commit/5ffde736410e4fd47fad7d4b9f2456f1ff4a37d4

@lamby I think it's too early to close this one yet :) I've only implemented a component for area selection, but still there things to be implemented:

Display an image view of a given slice of the selected nodule. Allow navigation between slices.

Code from #148 can be used as an example

Overlay the current vertices on top of the nodule image to see the predicted boundary.

The component is ready, we should read the area and initialize AreaSelect

Allow the user to move existing vertices.
✔ already supported by AreaSelect, we should listen to selection-changed event and update the model
Allow the user to delete existing vertices.
Allow the user to add a new vertex splitting a line segment connecting two vertices.

Not sure what this is means :)

Allow the user to extend the nodule boundary along the Z axis by extending the currently terminal polygon up or down to the adjacent slice which still has unhighlighted nodule.

We should observe stack.currentImageIdIndex change and reinit AreaSelect to display the nodule area at current slice

Indicate to the user the Z axis extent of slices.
✔ already supported by DICOM viewer

@lamby I agree with @Serhiy-Shekhovtsov - this is not done. Reopening.

As a heads up for anyone thinking about this issue, the DrivenData team be doing some work on this feature for some upcoming demos, so the master branch is subject to change!


Licenses usage

@Xe This is the finest collection of exotic licenses I have seen around and it made my day: thank you for this!
I mean this list of licenses:
https://github.com/Xe/x/blob/7859a031be03abfad650daca5f5714e8fa04a15f/cmd/license/licenses/licenses.go
I will be integrating that as tests in my license detection tool for sure. You do not happen to have a link for some rarer animals as seen used in the wild by chance?
I found https://github.com/benhj/TheHackyAsFuckSoftwareLicense  and https://github.com/jamiebuilds/anti-fascist-mit-license and I know where to find the common ones and a few more.
But I could not find a live example of code using the "be gay do crime" licenses beside its text by @s-rah at https://git.openprivacy.ca/sarah/bg-dc-license
Thanks!

I do not, no :(


AccordionItem: click on title link does not work

Clicking on the <a> does not expand the item, but follows the href. See http://www.ember-bootstrap.com/#/components/accordion.
Probably introduced with #307. An e.preventDefault() in the click handler should do the trick. Should be covered by a test.
@dajk wanna have a look?

Ah, yes sure.. I'll do that.

I think this might be related; accordions seem to be broken on iOS 10 (tried both Safari and Chrome) - could be something to do with the missing preventDefault() in the handler and click propagation.

Oh and by broken I mean the accordions appear fine, but clicking on them doesn't open the accordion item. Clicking on the title link follows the href, however


Standalone train model Error

Error
spark verion 2.2.0
 File "/usr/local/spark/python/lib/pyspark.zip/pyspark/worker.py", line 166, in main
    func, profiler, deserializer, serializer = read_command(pickleSer, infile)
  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/worker.py", line 55, in read_command
    command = serializer._read_with_length(file)
  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/serializers.py", line 169, in _read_with_length
    return self.loads(obj)
  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/serializers.py", line 454, in loads
    return pickle.loads(obj)
  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/cloudpickle.py", line 711, in subimport
    __import__(name)
ImportError: ('No module named tensorflowonspark.util', <function subimport at 0x7fd9d2fa6e60>, ('tensorflowonspark.util',))

my shell
${SPARK_HOME}/bin/spark-submit --master ${MASTER} --py-files ${TFoS_HOME}/examples/mnist/spark/mnist_dist.py --conf spark.cores.max=${TOTAL_CORES} --conf spark.task.cpus=${CORES_PER_WORKER} --conf spark.executorEnv.JAVA_HOME="$JAVA_HOME" ${TFoS_HOME}/examples/mnist/spark/mnist_spark.py --cluster_size ${SPARK_WORKER_INSTANCES} --images examples/mnist/csv/train/images --labels examples/mnist/csv/train/labels --format csv --mode train --model mnist_model

vi ~/.bashrc
export SPARK_HOME=/usr/local/spark
export PATH=${SPARK_HOME}/bin:${PATH}
export MASTER=spark://hadoop-master:7077
export SPARK_WORKER_INSTANCES=2
export CORES_PER_WORKER=1
export TOTAL_CORES=$((${CORES_PER_WORKER}*${SPARK_WORKER_INSTANCES}))

pyspark shell
>>import tensorflowonspark.util
>>

Can someone point out the problem ,thanks!

my fault slave worker didn't install tensorflowonspartk


Replace hardcode for paths to placeholders

High-level description
Replaced hardcoded values for paths with placeholders instead of.
Corresponding DC/OS tickets (required)

DCOS_OSS-5661 Generate dcos config for windows EE

Related tickets (optional)

DCOS-ID JIRA title / short description.

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain.
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot changelog-not-required reason

@mesosphere-mergebot request-review @DominikDary , @jongiddy

windows build error:  <ValidationError errors: {}; unset: {'windows_dcos_var_path_json', 'windows_dcos_install_path', 'windows_dcos_install_path_json'}


WARNING: An illegal reflective access operation has occurred

通过 flink run -class  xxxx  -d  xxxx.jar 方式， 发布flink应用， 报错如下错误，运行环境是Temurin OpenJDK 11.0.18版本, Flink版本 1.15.4版本
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jboss.netty.util.internal.ByteBufferUtil (file:/tmp/flink/flink-rpc-akka_7fc6bb06-caa1-4983-9890-290439d78349.jar) to method java.nio.DirectByteBuffer.cleaner()
WARNING: Please consider reporting this to the maintainers of org.jboss.netty.util.internal.ByteBufferUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

See https://flink.apache.org/getting-help/.


Fastlane Build Successful but app crashes on launch

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description

I have successfully released an iPhone app built by Fastlane on CircleCI but after downloading the app from TestFlight, the app crashes on launch. I connected Xcode and from Device and Simulators, I can see logs and stack trace (attached).
Trace: https://gist.github.com/umrashrf/5c1e65fd75b06bb1d832106a1bb20418
Command executed

https://gist.github.com/umrashrf/512fb449c5a3c6726e74d01a73ab7e58
Complete output when running fastlane, including the stack trace and command used

 https://gist.github.com/umrashrf/512fb449c5a3c6726e74d01a73ab7e58

Environment

 [⠋] 🚀 [⠙] 🚀 [⠹] 🚀 [⠸] 🚀 [⠼] 🚀 [⠴] 🚀 [⠦] 🚀 [⠧] 🚀 [⠇] 🚀 [⠏] 🚀 [⠋] 🚀 [⠙] 🚀 [✔] 🚀
[02:23:13]: fastlane detected a Gemfile in the current directory
[02:23:13]: However, it seems like you didn't use `bundle exec`
[02:23:13]: To launch fastlane faster, please use
[02:23:13]:
[02:23:13]: $ bundle exec fastlane env --verbose
[02:23:13]:
[02:23:13]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
Successfully loaded Appfile at path '/Users/distiller/project/fastlane/Appfile'
- app_identifier: 'com.website.AppName'
- apple_id<EMAIL_ADDRESS>- itc_team_id: '123456789'
- team_id: 'AB1C2345DD'
- json_key_file: 'play-store-credentials.json'
- package_name: 'com.website.AppName'
-------
INFO [2022-05-16 02:23:14.63]: Sending anonymous analytics information
INFO [2022-05-16 02:23:14.63]: Learn more at https://docs.fastlane.tools/#metrics
INFO [2022-05-16 02:23:14.63]: No personal or sensitive data is sent.
INFO [2022-05-16 02:23:14.63]: You can disable this by adding `opt_out_usage` at the top of your Fastfile
WARN [2022-05-16 02:23:14.67]: Generating fastlane environment output, this might take a few seconds...
swift-driver version: 1.45.2 DEBUG [2022-05-16 02:23:16.60]: Checking if there are any plugins that should be loaded...
DEBUG [2022-05-16 02:23:16.66]: Loading 'fastlane-plugin-increment_version_code' plugin
WARN [2022-05-16 02:23:16.85]: Installing Ruby gem 'fastlane-plugin-increment_version_code'...
Fetching fastlane-plugin-increment_version_code-0.4.3.gem
INFO [2022-05-16 02:23:17.73]: Successfully installed 'fastlane-plugin-increment_version_code'
🚫 fastlane environment 🚫
Stack

Key
Value

OS
12.3.1

Ruby
2.7.5

Bundler?
false

Git
git version 2.35.1

Installation Source
~/.gem/ruby/2.7.5/bin/fastlane

Host
macOS 12.3.1 (21E258)

Ruby Lib Dir
~/.rubies/ruby-2.7.5/lib

OpenSSL Version
OpenSSL 1.0.2t  10 Sep 2019

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode-13.3.1.app/Contents/Developer/

Xcode Version
13.3.1

Swift Version
5.6

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
`./fastlane/Fastfile`
default_platform(:ios)

platform :ios do
  before_all do |lane|
    ENV["MATCH_KEYCHAIN_NAME"] = "circle-ci"
    ENV["MATCH_KEYCHAIN_PASSWORD"] = "*********"
    create_keychain(
      name: ENV["MATCH_KEYCHAIN_NAME"],
      password: ENV["MATCH_KEYCHAIN_PASSWORD"],
      default_keychain: true,
      unlock: true,
      timeout: 3600,
      add_to_search_list: true
    )
    import_certificate(
      certificate_path: "AppleWWDRCAG3.cer",
      keychain_name: ENV["MATCH_KEYCHAIN_NAME"],
      keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"]
    )
    match(
      type: "appstore",
      app_identifier: "com.website.AppName",
      readonly: true,
      keychain_name: ENV["MATCH_KEYCHAIN_NAME"],
      keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"]
    )
  end

  after_all do |lane, options|
    delete_keychain(name: ENV["MATCH_KEYCHAIN_NAME"])
  end

  desc 'Build the iOS application and push to Testflight.'
  lane :beta do
    api_key = app_store_connect_api_key(
      key_id: ENV["APP_STORE_CONNECT_API_KEY_KEY_ID"],
      issuer_id: ENV["APP_STORE_CONNECT_API_KEY_ISSUER_ID"],
      key_content: ENV["APP_STORE_CONNECT_API_KEY_KEY"],
      duration: 1200,
      in_house: false
    )
    increment_build_number(xcodeproj: "./ios/RentCar.xcodeproj")
    build_app(
      workspace: "./ios/RentCar.xcworkspace",
      scheme: "RentCar",
      export_method: "app-store",
      export_options: {
        method: "app-store",
        provisioningProfiles: {
          "com.website.AppName" => "match AppStore com.website.AppName",
        }
      }
    )
    upload_to_testflight(api_key: api_key, skip_waiting_for_build_processing: true)
  end

  lane :bump do
    paths = [
      "ios/RentCar.xcodeproj/project.pbxproj",
      "ios/RentCar/Info.plist"
    ]
    git_add(path: paths)
    git_commit(path: paths, message: "iOS Version Bump")
    push_to_git_remote()
  end
end

platform :android do
  desc 'Build for Android'
  lane :build do
    gradle(task: 'clean', project_dir: 'android/')
    gradle(task: 'bundle', build_type: 'Release', project_dir: 'android/')
  end

  desc 'Build the Android application and upload to Play store.'
  lane :beta do
    gradle(task: 'clean', project_dir: 'android/')
    increment_version_code(gradle_file_path: "./android/app/build.gradle")
    gradle(task: 'bundle', build_type: 'Release', project_dir: 'android/')
    supply(track: 'internal', aab: './android/app/build/outputs/bundle/release/app-release.aab')
  end

  lane :bump do
    paths = [
      "android/app/build.gradle"
    ]
    git_add(path: paths)
    git_commit(path: paths, message: "Android Version Bump")
    push_to_git_remote()
  end
end

`./fastlane/Appfile`
app_identifier("com.website.AppName") # The bundle identifier of your app
<EMAIL_ADDRESS># Your Apple email address

itc_team_id("123456789") # App Store Connect Team ID
team_id("AB1C2345DD") # Developer Portal Team ID

json_key_file("play-store-credentials.json")
package_name("com.website.AppName")

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

fastlane gems

Gem
Version
Update-Status

fastlane
2.205.2
✅ Up-To-Date

Loaded fastlane plugins:

Plugin
Version
Update-Status

fastlane-plugin-increment_version_code
0.4.3
✅ Up-To-Date

Loaded gems

Gem
Version

did_you_mean
1.4.0

atomos
0.1.3

CFPropertyList
3.0.5

colored2
3.1.2

nanaimo
0.3.0

rexml
3.2.5

xcodeproj
1.21.0

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
1.8.0

plist
3.6.0

public_suffix
4.0.7

addressable
2.8.0

multipart-post
2.0.0

word_wrap
1.0.0

optparse
0.1.1

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

artifactory
3.0.15

babosa
1.0.4

colored
1.2

highline
2.0.3

commander
4.6.0

excon
0.92.2

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

faraday-multipart
1.0.3

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.10.0

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.4

faraday-cookie_jar
0.0.7

faraday_middleware
1.2.0

fastimage
2.2.6

gh_inspector
1.1.3

json
2.3.0

mini_magick
4.11.0

naturally
2.2.1

rubyzip
2.3.2

security
0.1.3

xcpretty-travis-formatter
1.0.1

dotenv
2.7.6

simctl
1.6.8

jwt
2.3.0

uber
0.1.0

declarative
0.0.20

trailblazer-option
0.1.2

representable
3.1.1

retriable
3.1.2

mini_mime
1.1.2

memoist
0.16.2

multi_json
1.15.0

os
1.1.4

signet
0.16.1

googleauth
1.1.2

httpclient
2.8.3

webrick
1.6.1

google-apis-core
0.4.2

google-apis-playcustomapp_v1
0.7.0

google-apis-androidpublisher_v3
0.18.0

google-cloud-env
1.6.0

google-cloud-errors
1.2.0

google-cloud-core
1.6.0

google-apis-iamcredentials_v1
0.10.0

google-apis-storage_v1
0.13.0

rake
13.0.1

digest-crc
0.6.4

google-cloud-storage
1.36.1

emoji_regex
3.2.3

jmespath
1.6.1

aws-partitions
1.575.0

aws-eventstream
1.2.0

aws-sigv4
1.4.0

aws-sdk-core
3.130.0

aws-sdk-kms
1.55.0

aws-sdk-s3
1.113.0

uri
0.10.0

claide
1.1.0

bundler
2.3.11

forwardable
1.3.1

logger
1.4.2

cgi
<IP_ADDRESS>

date
3.0.3

timeout
0.1.0

stringio
0.1.0

ipaddr
1.2.2

openssl
2.1.3

zlib
1.1.0

mutex_m
0.1.0

ostruct
0.2.0

strscan
1.0.3

io-console
0.5.6

delegate
0.1.0

fileutils
1.4.1

singleton
0.1.0

open3
0.1.0

yaml
0.1.0

psych
3.1.0

etc
1.1.0

fastlane-plugin-increment_version_code
0.4.3

generated on: 2022-05-16

WARN [2022-05-16 02:23:18.13]: Take notice that this output may contain sensitive information, or simply information that you don't want to make public.
INFO [2022-05-16 02:23:18.13]: Open https://github.com/fastlane/fastlane/issues/new to submit a new issue ✅
CircleCI received exit code 0

This doesn't seem to be a fastlane issue. Have you created a build locally, uploaded it to Testflight and checked if you get the result?

Using the development certificate and provisioning profile generated by fastlane match gives me an error when running the app on my iPhone. The build was successful but app install was failed.
Error: Unable to install app AppName
More Logs:

 Details
Unable to install "AppName"
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620395
User Info: {
    DVTErrorCreationDateKey = "2022-05-16 23:42:48 +0000";
    IDERunOperationFailingWorker = IDEInstalliPhoneLauncher;
}
--
A valid provisioning profile for this executable was not found.
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620395
User Info: {
    DVTRadarComponentKey = 487925;
    MobileDeviceErrorCode = "(0xE8008015)";
    "com.apple.dtdevicekit.stacktrace" = (
	0   DTDeviceKitBase                     0x000000011fd19614 DTDKCreateNSErrorFromAMDErrorCode + 272
	1   DTDeviceKitBase                     0x000000011fd52dd8 __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 160
	2   DVTFoundation                       0x0000000105c4de58 DVTInvokeWithStrongOwnership + 76
	3   DTDeviceKitBase                     0x000000011fd52b30 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1336
	4   IDEiOSSupportCore                   0x000000013b451590 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.301 + 2916
	5   DVTFoundation                       0x0000000105d75194 __DVT_CALLING_CLIENT_BLOCK__ + 16
	6   DVTFoundation                       0x0000000105d762ac __DVTDispatchAsync_block_invoke + 364
	7   libdispatch.dylib                   0x00000001c00ec604 _dispatch_call_block_and_release + 32
	8   libdispatch.dylib                   0x00000001c00ee1c8 _dispatch_client_callout + 20
	9   libdispatch.dylib                   0x00000001c00f58a8 _dispatch_lane_serial_drain + 668
	10  libdispatch.dylib                   0x00000001c00f6404 _dispatch_lane_invoke + 392
	11  libdispatch.dylib                   0x00000001c0100c98 _dispatch_workloop_worker_thread + 648
	12  libsystem_pthread.dylib             0x00000001c02ae360 _pthread_wqthread + 288
	13  libsystem_pthread.dylib             0x00000001c02ad080 start_wqthread + 8
);
}
--
Analytics Event: com.apple.dt.IDERunOperationWorkerFinished : {
"device_model" = "iPhone14,3";
"device_osBuild" = "15.4.1 (19E258)";
"device_platform" = "com.apple.platform.iphoneos";
"launchSession_schemeCommand" = Run;
"launchSession_state" = 1;
"launchSession_targetArch" = arm64;
"operation_duration_ms" = 2884;
"operation_errorCode" = "-402620395";
"operation_errorDomain" = "com.apple.dt.MobileDeviceErrorDomain";
"operation_errorWorker" = IDEInstalliPhoneLauncher;
"operation_name" = IDEiPhoneRunOperationWorkerGroup;
"param_consoleMode" = 0;
"param_debugger_attachToExtensions" = 0;
"param_debugger_attachToXPC" = 1;
"param_debugger_type" = 5;
"param_destination_isProxy" = 0;
"param_destination_platform" = "com.apple.platform.iphoneos";
"param_diag_MainThreadChecker_stopOnIssue" = 0;
"param_diag_MallocStackLogging_enableDuringAttach" = 0;
"param_diag_MallocStackLogging_enableForXPC" = 1;
"param_diag_allowLocationSimulation" = 1;
"param_diag_gpu_frameCapture_enable" = 0;
"param_diag_gpu_shaderValidation_enable" = 0;
"param_diag_gpu_validation_enable" = 0;
"param_diag_memoryGraphOnResourceException" = 0;
"param_diag_queueDebugging_enable" = 1;
"param_diag_runtimeProfile_generate" = 0;
"param_diag_sanitizer_asan_enable" = 0;
"param_diag_sanitizer_tsan_enable" = 0;
"param_diag_sanitizer_tsan_stopOnIssue" = 0;
"param_diag_sanitizer_ubsan_stopOnIssue" = 0;
"param_diag_showNonLocalizedStrings" = 0;
"param_diag_viewDebugging_enabled" = 1;
"param_diag_viewDebugging_insertDylibOnLaunch" = 1;
"param_install_style" = 0;
"param_launcher_UID" = 2;
"param_launcher_allowDeviceSensorReplayData" = 0;
"param_launcher_kind" = 0;
"param_launcher_style" = 0;
"param_launcher_substyle" = 0;
"param_runnable_appExtensionHostRunMode" = 0;
"param_runnable_productType" = "com.apple.product-type.application";
"param_runnable_swiftVersion" = "5.6";
"param_runnable_type" = 2;
"param_testing_launchedForTesting" = 0;
"param_testing_suppressSimulatorApp" = 0;
"param_testing_usingCLI" = 0;
"sdk_canonicalName" = "iphoneos15.4";
"sdk_osVersion" = "15.4";
"sdk_variant" = iphoneos;
}
System Information
macOS Version 12.3.1 (Build 21E258)
Xcode 13.3.1 (20103) (Build 13E500a)
Timestamp: 2022-05-16T19:42:48-04:00


Magic commands in interactive Python mode not working

Using MacOS 12.4, and the newest v2022.5.1001601848.
When using magic commands in interactive Python mode (test.py),
# %%
#!%%timeit
print('hi')

I get UsageError: Line magic function %%timeit not found.
However, when I directly type in the following in the interactive Python page, it works.
%%timeit
print('hi')

Is there some I should do to get the magic commands to work in the interactive Python situation?

Thanks for filing this issue,
This has been fixed in the latest pre-release version.
You can try the latest pre-release by installing VS Code Insiders and then installing the pre-release version of the Jupyter extension.
Or this fix will be available in the next release, which would be some time today/tomorrow


doc: Re-structures container nic docs into each nic type

Signed-off-by: Thomas Parrott<EMAIL_ADDRESS>

Having nictype for all of them feels odd to me, maybe clarify in the header that below are all the values for nictype with their associated keys and then remove nictype from the various tables?

@stgraber this has been updated and I've added links to each nic type section to reduce scrolling. RE https://discuss.linuxcontainers.org/t/lxd-network-config-problems/4827/6?u=tomp


Muledump not showing all item totals

In this picture: https://gyazo.com/1f1908c3785178159068febe94e6f1ec
You can see that some of my charachter have items, that do not show up in the item totals. This happend after I was toggeling some settings, but while trying to do that again to fix it, it stays the same

This is likely due to existing code in totals.js. I will check it out.

Most likely, vinstaal0 toggled the Fame Bonus Filter option, making lower fame items not show up in the totals. It looks like the fame bonus was set to >5%. Not a bug.
Here's an image to show what option I mean: http://i.imgur.com/zjwAYXO.png

Ow rip, my bad

Thanks Botkiller.


Install using Carthage or manually

is there a way to install it manually?

Hi, if you added it manually, then you can just use Bundle.main. We currently only support Cocoapods, but you are welcome to help me add Carthage support. I could potentially research later.


[Bug]: Windows server 2016 not start

Operating system
openEuler 22.03 LTS SP1
Description
docker-compose up

Docker compose
version: '3.3'
services:
windows:
image: dockurr/windows
container_name: windows-2016
environment:
VERSION: "2016"
USERNAME: "admin"
PASSWORD: "admin123"
LANGUAGE: "CN"
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
Docker log
❯ Extracting Windows Server 2016 image...
❯ Adding drivers to image...
❯ Adding win2016-eval.xml for automatic installation...
❯ Building Windows Server 2016 image...
❯ Creating a 64G growable disk image in raw format...
❯ Booting Windows securely using QEMU v9.2.0...
BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found
BdsDxe: loading Boot0001 "UEFI QEMU DVD-ROM QM00013 " from PciRoot(0x0)/Pci(0x5,0x0)/Sata(0x0,0xFFFF,0x0)
BdsDxe: starting Boot0001 "UEFI QEMU DVD-ROM QM00013 " from PciRoot(0x0)/Pci(0x5,0x0)/Sata(0x0,0xFFFF,0x0)
❯ Windows started succesfully, visit http://localhost:8006/ to view the screen...
Screenshots (optional)

How long did you wait for the boot screen? I think it takes sometime depending on hardware too.

Just tried the windows server 2016 container.It works fine.I wonder what’s up with your hardware…

刚刚尝试了 Windows Server 2016 容器。它工作正常。我想知道你的硬件是怎么回事......

I've tested that it's not a hardware issue, it's caused by a high kernel version, which happens with the 5.10 kernel, and now I've replaced the kernel with 4.19.

Oh,glad it’s working for you.I’m sorry I didn’t look at it that way lol,cuz my kernel version is 6.5.


Local Authentication and Link to MyTimeline Fix

Added development login and fixed link to my timeline for authenticated User.

Merging PR as all checks have passed, no conflicts and is only a fix


Pixel 6 Screen Region Causes Issues with Offset Matching Regions

Preparation

[X] I tested the latest release
[X] I looked at other issues (even the closed ones)
[X] I read the Troubleshooting Guide

FGO server
NA
FGA build number
1589
Describe the bug
Failed to determine Card type: [1,2,3,4,5] and miss-clicking for skills on Pixel 6. Matched regions are offset in both screen orientations resulting in failed skill inputs and script execution.
Tested with and without "Ignore Notch calculation", notch region left blank on screen, but bounding boxes for matching overflow anyway.
Tested with all 3 Game Area Modes, issue persisted in all.
Video
Video of Issue
Device model
Pixel 6
Android version
12
Screen size
1080x2400
RAM
8GB

Looks like you need the opposite of Ignore Notch. A Game Area mode for when FGO still has a black notch bar.
On my phone, FGO fills out the notch area.
I tried googling for this problem and found that at least on Pixel 5 you can change the notch in Developer Options, but that affects all apps.

The issue is also that even with the wide-screen update the Pixel 6's screen is longer than FGO supports. The phone doesn't really have a "Notch Area" it's almost always populated because it's only the camera and is barely noticeable. The only time the area is black is when the resolution is not supported as is the case here. The fix would probably need to be another Screen Region option specifically for the 1080x2040 Aspect Ratio.

Normally, below 18:9 should have blue bars on the left and right, as far as I know.
I'm going to test it in an emulator.

Normally, below 18:9 should have blue bars on the left and right, as far as I know.
I'm going to test it in an emulator.

This is really odd. I definitely used to have blue bars, but they don't appear to be there any more. I don't know exactly when they disappeared (although I assume probably with the wide-screen update), I didn't even notice they were gone until you mentioned them.
I'll include screenshots below.
One from before the wide-screen update and one from after:

I double-checked, you had a typo. Your resolution is 1080x2400, not 1080x2040. That's exactly 20:9, so normally FGA fills the whole screen.
On your device, the black areas are:

On the left 118 pixels notch + 51 pixels black bar
On the right 51 pixels black bar

I currently can't find any rule for calculating the width of the black bars.
But I have a feature idea related to fixing your problem via configurable offsets. That way, we can fix problems for all kinds of devices with black bars, not just yours. Have to discuss it with Mathew first, I probably can't implement it on my own.

Does this work for you:

There should be no black bars on the screen. If there are, switch your phone from Gesture Navigation to 3-button navigation.

I know its not convenient, but, this works for Pixel 4, not sure about 6.

This does appear to fix the issue. I'll do some more testing with settings to see if there's a way to get the same screen population in gesture mode or if there's a way to partition settings across applications.

@calpalimus Did you ever find a solution? Facing the same problem right now.


Save auth cache for multiple scopes

Saves cache in different files for different scopes

Going to close this in favor of "only keeping the last token is the way to go", any objection?


fix fix unrequired slot bug when join node introduced by #25204 #34923

Proposed changes
cherry-pick from #34923
before fix, join node will retain some slots, which are not materialized and unrequired.
join node need remove these slots and not make them be output slots.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

@nextdreamblue There is still one failed case test_join_with_projection after retry.

run buildall

run p0


secure consul

The following features of consul are potential security threats:

consul exec - allows any machine to execute commands on any other machine. Despite the fact, that it is useful, it should be disabled on all nodes via: disable_remote_exec

/v1/catalog/register might pose a serious threat, but I still don't understand it. Can it be used to add checks or services to other nodes?

The below commands post a risk, but only by allowing the machine to execute commands on the same host that it already has access to. The best way to mitigate this risk is to ensure that the consul user does not have sudo access.

check/register - restricted to local agent
service/register - restricted to local agent

I think the best we can do is to ensure that the consul user can't execute sudo and give it a really low amount of permissions. This means that we'll have to simplify the checks and probably not use it for openstack checks...

on the front of locking down the API. 2 recommendations.

there is a patch in flight to support using a socket instead of port for the api server
we could possibly set up an iptables rule to only allow packets from the consul or root user to reach our port for the consul API

We can keep using Consul for checks if we give it sudo privileges to execute specific test scripts rather than a wholesale root sudo access.

Using a UNIX socket instead of a TCP port sounds great. Until that lands, an iptables rule sounds like a good idea.

sorenh: "
iptables -N consul
iptables -A OUTPUT -d <IP_ADDRESS> -m tcp --dport 8500 -j consul
iptables -A OUTPUT -d 127.0.01 -m tcp --dport 8400 -j consul
iptables -A consul -m owner --uid-owner 0 -j ACCEPT
iptables -A consul -m owner --uid-owner  consul -j ACCEPT
iptables -A consul -j DROP
"

You can also use ACLs to secure code execution (https://www.consul.io/docs/internals/acl.html)

@stefanandres I had a look at the implementation of acl's according to the .4 docs and it looked way too complicated to setup (it was very unclear how I could automatically setup tokens as a part of an automated bootstrapping process) and in general way too complicated for the problem it was trying to solve. I was hoping in the longer term that it might get reimplemented as PKI (or that adding ACL as PKI might be a task my team might be able to take on)


Update Rust images to use default rustup profile

The default profile including tools for formatting and linting, which are essential to development.
Also update Dockerfile. Previously it was based on Rust's official docker image which is hardcoded to set up a minimal profile Rust toolchain. That causes the following rust devcontainer feature to operate incompletely. Replacing based image to Rust's official docker image's upstream image solved the problem.
Also format the devcontainer config file itself a little bit.

@microsoft-github-policy-service agree

Firstly I admit that the description above exaggerated the problem for a bit. Currently with a freshly set up devcontainer, the linting and formatting tools are actually available. (Guess that's also the reason why I am the first person complaining this.) However the overall initial configuration is kind of confusing and error-prone when it evolves later (which I will explain later), which brings the idea of this PR.
The based upstream image rust-1 (as shown in https://github.com/rust-lang/docker-rust/blob/master/1.76.0/bookworm/Dockerfile) has been mainly designed for CI usage and:

Set up a pinned version toolchain (e.g. 1.72.1-x86_64-unknown-linux-gnu currently) instead of the latest stable that usually more desired for development
Set the profile to minimal

According to the discussions at https://github.com/rust-lang/rustup/issues/2579 and https://github.com/rust-lang/docker-rust/issues/97, the upstream docker image is intentionally opinionated, and the two points above are not (and probably will never be) configurable.
In the later stage of setting up devcontainer, the "rust" devcontainer feature kicks in, installs a few auxiliary libraries, skips download and set up rustup since it's already there (so the options passed into the feature is unused, which is what I referenced as "operate incompletely"), and forcefully add linting and formatting components to the minimal toolchain that upstream image set up, results in what we see in the fresh devcontainer: a minimal profile version-pinned toolchain with additional desired components.
In my opinion this is confusing. I noticed my toolchain is not updated when I do rustup update, then I realize it is a version-pinned toolchain and do rustup install stable, which installs the latest stable toolchain in minimal profile, which takes away linting and formatting tools. The PR here, which mimics my way to manually patch the devcontainer, will set up a latest version toolchain with default profile, which matches my expectation much better, and I believe that is also the common demand.
I am aware that there are at least two ways to fix this. One is the approach I take, to remove the rustup from based image, instead leverage the devcontainer feature to set up rustup so it will respect the option I added. The other approach is to update the feature script so that it would correct the profile for an existing rustup. Notice that the profile is only considered when installing toolchains, so the missing components still need to be added manually.
I have taken the first approach because I am not aware of the backward compatibility policy (can you post a link so I can check?), and it feels more nature than the alternative approach because only single party take care of the toolchain.
Thanks for reviewing and reading these. Looking forward to what you think on it.

Thank you so much @sgdxbc for taking the time in writing up a beautiful explanation.
The reasoning makes sense to me and I can see how it can be beneficial to switch the profile to minimal. As this is an enhancement to the image, happy to help you with it.
However, as the problem you mentioned on why we shouldn't base out of the official rust image, I understand your point. However, we'd like to ensure that https://github.com/rust-lang/docker-rust/blob/master/1.76.0/bookworm/Dockerfile#L3-L27 code remains intact with this newly built image.
Either make sure Rust Feature already follows the same behavior (eg. setting env variables, installing rust etc) or modify it (preferred), else add commands to the Dockerfile.
Another note: We need to make sure that bookworm, bullseye and buster are making same changes (as we don't want it to impact across distros)

@bamurtaugh @craiglpeters Do we know of a Rust expert who can help us review the reasonings of this PR? Thanks!

I have just checked the upstream dockerfile and the feature script. I admit to not being the one most familiar of the both, but in my opinion they match each other enough.
The first envvars RUSTUP_HOME and CARGO_HOME in dockerfile are set by feature script as well. The PATH is updated by rustup init script on feature side. The RUST_VERSION envvar is missing on feature side, which is expected since it's not setting up a version-pinned toolchain.
The following part of dockerfile downloads rustup init script from https://static.rust-lang.org/rustup/archive/1.26.0/${rustArch}/rustup-init, exam it with hardcoded hash and execute it. The feature script downloads the script from https://static.rust-lang.org/rustup/dist/${download_architecture}-unknown-linux-gnu/rustup-init, exam the script against an also-downloaded hash and execute with same arguments. The rustup script URL differs, but I guess each of them is also good for pinned/rolling strategy.
Although they currently have quiet matching behaviors, I wonder whether we need to keep the similarity forever if we decide to opt out official upstream image. (And if so whether that is solely out of backward-compatibility reason.) If the rust devcontainer feature is self-contained, it seems not particular meaningful to provide a dedicated devcontainer image for users that only want their devcontainers to have Rust. For example, personally I have discarded the dockerfile and switch to set image as base-ubuntu in my devcontainer config, because Ubuntu is my more desirable env. I am wondering how other developer would think.

@bamurtaugh @craiglpeters Do we know of a Rust expert who can help us review the https://github.com/devcontainers/images/pull/960#issuecomment-1940499073 of this PR? Thanks!

@connor4312 I'm wondering if you might have thoughts based on your Rust expertise?


Improve block stream pipelining with dynamic data sources

Two ideas:

Reduce block stream pipeline size to zero if we're creating a lot of dynamic data sources
Avoid restarting the block stream by using broader filters that make it unnecessary

Because this regresses sparse subgraphs with templates, we plan to turn this on by default only when using firehose.

This been implemented as intended so this can be closed.


"Showing X of Y developers" on /developers

When searching for developers it's not always obvious how many are in the list. Or if you've filtered everyone out.
A PR addressing this issue should:

[ ]  Add "Showing X of Y developers" to search results on /developers

I'm not 100% sure where this should go or how it should look. So I'm open to ideas!

@joemasilotti I'd like to work on this!

Sure thing! Once we close out your other open PRs and issues I'll assign it to you.
Two things we have to figure out:

Where does the text go?
How do we calculate Y? Is it total developers on the site, ones looking for a job, not invisible, etc.?

Hey @troyizzle, now that your other issue is wrapped up, do you want to take this one on?

@joemasilotti yes sir!

All yours!

@troyizzle, I just pushed a small PR with some design ideas for the banner. Feel free to build on that or roll your own!
https://github.com/joemasilotti/railsdevs.com/pull/502

@joemasilotti I looked into this some and I'm not sure how the best way of doing this without some major changes to the PagyPaginatorComponent. I thought I could just add something like
In developers/index.html.erb
<%= turbo_frame_tag "developers_pagy" do %>
   <%= render "banner", pagy: @query.pagy %>
<% end %>

In components/pagy_paginator_component/pagy_paginator_component.html.erb
<%= tag.turbo_stream target: "developers_pagy", action: "replace" do %>
  <%= tag.template do %>
    <%= render "developers/banner", pagy: pagy %>
  <% end %>
<% end %>

But to no luck... I assume its because you can't break out of turbo frame?
Looking forward to your feedback!

Hmm, I'm not sure I follow. Why does this have to be inside the Turbo Frame? Can we add a new partial or View Component and render it on app/views/developers/index.html.erb:47? We can pass in the pagy object to get the total count I believe.

That is what I tried unfortunately to no luck, I believe since it can only update things in scope of the turbo frame its being called from?

Weird... am I missing something in #502? If not, I'll merge that PR for now.

Looks good Joe! I was thinking it would be something like on the first results
"1 of 20"
and when loading more results that would get updated to
"1 of 23"
Sorry for the misunderstanding Joe but glad to see your finished solution for it!

Ahhh, that makes sense. Well, that's on me then for not explaining the issue clearly enough. Thanks for the help!


Getting unknown version on build of manageiq latest-hammer pulled by docker

Description
Getting unknown version on build of manageiq latest-hammer pulled by docker
Steps to follow
Used steps mentioned on http://manageiq.org/docs/get-started/docker.
Used latest-hammer tag, found same thing on hammer-2 too.

@simaishi Are you seeing this as well? I thought you looked at this as part of smoke testing.


TransactionType.DeploySSC does not add app to store

Hi, I have been trying to run test cases that involve Atomic Transfers. However, when I try to add an application using TransactionType.DeploySSC it executes but the app is not added/deployed to the store.
<ref *1> Runtime {
  store: {
    accounts: Map(1) {
      '6JHI7HVPHRALW3JO5NMFAKUNJVLLV7NTNC3D645MLYNJ7EJWVDVRCUIQO4' => [AccountStore]
    },
    globalApps: Map(0) {},
    assetDefs: Map(0) {}
  },

When I try to add the same Stateful Smart Contract using the runtime.addApp function, it works properly resulting in this:
<ref *1> Runtime {
  store: {
    accounts: Map(1) {
      'XDKZ6KLRFR7WD4LAKAAKZ6FUOOUHEFOZ6SANFQ2CHTE4HI437HLQRPTX3Q' => [AccountStore]
    },
    globalApps: Map(1) {
      1 => 'XDKZ6KLRFR7WD4LAKAAKZ6FUOOUHEFOZ6SANFQ2CHTE4HI437HLQRPTX3Q'
    },
    assetDefs: Map(0) {}
  },

This is the code I have written in order to deploy an app, I'm quite sure it's correct but I may be wrong once again:
runtime.executeTx(
  {
    type: types.TransactionType.DeploySSC,
    sign: types.SignType.SecretKey,
    fromAccount: master.account,
    approvalProgram: approvalProgram,
    globalBytes: 5,
    globalInts: 4,
    localBytes: 0,
    localInts: 0,
    appArgs: [
      "int:0",
      "int:25412621"
    ],
    payFlags: { totalFee: 1000 }
  }
)

Hi, i tried deploying using
runtime.executeTx({
      type: TransactionType.DeploySSC,
      sign: SignType.SecretKey,
      fromAccount: john.account,
      approvalProgram: approvalProgram,
      clearProgram: clearProgram,
      globalBytes: 5,
      globalInts: 4,
      localBytes: 0,
      localInts: 0,
      appArgs: [
        "int:0",
        "int:25412621"
      ],
      payFlags: { totalFee: 1000 }
    });

you can also refer to https://github.com/scale-it/algo-builder/blob/f45382d3fab32edad856d6bd952b6703950075c8/packages/runtime/test/integration/execute-transaction.ts#L156
i think probably this is happening because clearProgram is not passed.
are you using this in js project ? using ts project is really helpful, it shows type error instantly.
also, we will be adding more docs about parameters.
Please let me know if this solves your problem

I'm still facing the same problem, I went ahead to try out the example from the reference as well and it still wasn't deployed. I'm using the yarn installed version of algob by the way.

okay, version maybe the problem, you can use yarn link to link with the latest code,
git clone https://github.com/scale-it/algo-builder.git
cd algo-builder
yarn install
yarn build
cd packages/algob
yarn link

Hi, Thanks I was able to deploy the app once I used the latest code. However I've run into another problem. When I attempt to call the deployed application i get the following error:
RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
      at boundsError (internal/buffer.js:81:11)
      at Buffer.readBigUInt64BE (internal/buffer.js:114:5)
      at Btoi.execute (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/interpreter/opcode-list.js:882:43)
      at Interpreter.execute (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/interpreter/interpreter.js:147:25)
      at Runtime.run (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/runtime.js:496:21)
      at /home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:387:34
      at Array.forEach (<anonymous>)
      at Ctx.processTransactions (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:366:19)
      at Runtime.executeTx (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/runtime.js:482:18)
      at Context.<anonymous> (test/sample-test.js:186:13)
      at processImmediate (internal/timers.js:462:21)

Here is the transaction I have attempted to execute  contracEntryTx is the transaction:
    const createContractTxGroup = [
      {
        type: types.TransactionType.DeploySSC,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        approvalProgram: approvalProgram,
        clearProgram: clearProgram,
        localInts: 0,
        localBytes: 0,
        globalInts: 4,
        globalBytes: 5,
        appArgs: [
          "int:0",
          "int:25412621"
        ],
        payFlags: { totalFee: validTxFee }
      },
      {
        type: types.TransactionType.TransferAlgo,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        toAccountAddr: escrow.address,
        amountMicroAlgos: contractFunds,
        payFlags: { totalFee: validTxFee }
      }
    ];

    runtime.executeTx(createContractTxGroup);

    syncAccounts();

    const iterator = runtime.store.globalApps.keys();
    const appId = iterator.next().value;

    const appArgs = [stringToBytes('submit'), stringToBytes('50')]

    const appAccounts = [
      developer.address,
      escrow.address
    ]

    const contractEntryTx = {
      type: types.TransactionType.CallNoOpSSC,
      sign: types.SignType.SecretKey,
      fromAccount: contract_owner.account,
      appId,
      payFlags: {totalFee: validTxFee},
      appArgs,
      accounts: appAccounts
    }

    runtime.executeTx(contractEntryTx);

Here's a snippet of the code for the stateful smart contract being deployed (I have included the code that is executed on submission to the contract.

    ESCROW_ACCOUNT = 2
    DEVELOPER_ACCOUNT = 1

    # ensuring the account is funded with minimum amount of funds specified before allowing submissions
    is_account_funded = Balance(Int(ESCROW_ACCOUNT)) >= Int(withdraw_amount)

    on_submit = Seq([
        Assert(
            is_creator
        ),
        Assert(
            Global.round() >= Btoi(App.globalGet(Bytes("SubmissionBegin")))
        ),
        Assert(
            Global.round() <= Btoi(App.globalGet(Bytes("SubmissionEnd")))
        ),
        If(Btoi(Txn.application_args[1]) > Btoi(App.globalGet(Bytes("LeaderScore"))),
            Return(Int(0))
        ),
        App.globalPut(Bytes("LeaderAddress"), Txn.accounts[DEVELOPER_ACCOUNT]),
        App.globalPut(Bytes("LeaderScore"), Txn.application_args[1]),
        Return(is_account_funded)
    ])

If you can assist with this that would be great. Thanks!

Hi
Assert(
            Global.round() >= Btoi(App.globalGet(Bytes("SubmissionBegin")))
        ),
        Assert(
            Global.round() <= Btoi(App.globalGet(Bytes("SubmissionEnd")))
        ),

i need some more detail about this, are these values stored as Bytes while creating application ?
or as integers as in this case
App.globalPut(Bytes("SubmissionEnd"), Btoi(Txn.application_args[1]))

oh, got it, error is coming from here stringToBytes('50') you need to convert from integer to bytes instead of string.
also, we have added debug trace, you can check the values being pushed into stack at each step. it is very useful for debugging
https://github.com/scale-it/algo-builder/blob/master/docs/guide/testing-teal.md#debugging

This is an example goal command which is why I used the stringToBytes('50').
./goal app call --app-id 1 --from [contract_owner_address] --app-arg "str:submit" --app-arg "str:50" --app-account [developer_address] --app-account [escrow_address]

I have tried the following as well but still get the same error: parseSSCAppArgs(['str:submit','str:50'])

The smart contract/app essentially takes the number passed along with 'str:50' and compares it with the current score. If the passed argument value, 50 in this case is less than the currently stored score. Then the newly passed argument/value is stored along with the address passed with the call to the app.

okay, it think we should pass it as int:50. because we are converting a integer into bytes and then back to integer from bytes.

let me check if passing str:50 works on algorand node, probably it will give some other value or throw error.

This is how the value is stored in the global state on my algorand node.
"LeaderScore": {
    "tb": "25",
    "tt": 1
  },

str:50 works as an app-arg on my algorand node.

Okay, thanks. looking into it

We suspect that there is some rubbish number trying to convert to integer. Let's by creating TEAL code with 2 branches:

Set the value using str:50 to "mynumber" global.
Read the value using Btoi(...) and compare it to a hardcoded integer in TEAL:Assert(
    Int(50) == Btoi(App.globalGet(Bytes("mynumber")))
)

And run it in both our runtime and the go-algorand node.

Hi
Checked on algorand node, Btoi("str:50") indeed gives some garbage value, which greater than Int(50) that's why the code passes,

only fails if you compare exact values (==) instead of (>).

https://github.com/scale-it/algo-builder/tree/test-example/examples/check

Algo Builder helped to detect nasty bug / misuse :+1:

Thanks a lot guys! It works now.
I have one final step in my test suite which is to test withdrawing the funds. Here is my code:
// setup escrow account
    const escrowProg = getProgram('escrow_contract.py');
    const lsig = runtime.getLogicSig(escrowProg, []);
    const escrowAddress = lsig.address();

    // sync escrow account
    escrow = runtime.getAccount(escrowAddress);
    console.log('Escrow Address: ', escrowAddress);

    // create application
    const createContractTxGroup = [
      {
        type: types.TransactionType.DeploySSC,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        approvalProgram: approvalProgram,
        clearProgram: clearProgram,
        localInts: 0,
        localBytes: 0,
        globalInts: 4,
        globalBytes: 5,
        appArgs: [
          "int:0",
          "int:25412621"
        ],
        payFlags: { totalFee: validTxFee }
      },
      {
        type: types.TransactionType.TransferAlgo,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        toAccountAddr: escrowAddress,
        amountMicroAlgos: contractFunds,
        payFlags: { totalFee: validTxFee }
      }
    ];

    runtime.executeTx(createContractTxGroup);

    syncAccounts();

    const iterator = runtime.store.globalApps.keys();
    const appId = iterator.next().value;

    const appAccounts = [
      developer.address,
      escrow.address
    ]

    const contractEntryTx = {
      type: types.TransactionType.CallNoOpSSC,
      sign: types.SignType.SecretKey,
      fromAccount: contract_owner.account,
      appId,
      payFlags: {totalFee: validTxFee},
      appArgs: ['str:submit','int:50'],
      accounts: appAccounts
    }

    runtime.executeTx(contractEntryTx);

    syncAccounts();

    appArgs = [stringToBytes('deposit')];
    txGroup = [
      {
        type: types.TransactionType.CallNoOpSSC,
        sign: types.SignType.SecretKey,
        fromAccount: developer.account,
        appId,
        payFlags: { totalFee: 1000 },
        appArgs: appArgs
      },
      {
        type: types.TransactionType.TransferAlgo,
        sign: types.SignType.LogicSignature,
        fromAccountAddr: escrow.account.addr,
        toAccountAddr: developer.address,
        amountMicroAlgos: 0,
        lsig: lsig,
        payFlags: { totalFee: 1000, closeRemainderTo: developer.address }
      }
    ];

    runtime.executeTx(txGroup);

When I execute the last transaction (txGroup) to withdraw, I get the following error:
Error: RUNTIME_ERR1401: Cannot withdraw 1000 microalgos from account EO7DEARIDKG2C4LXX2KI2UGACPGAKDW5SK5EJJQ24HCCYT3BASEWUHJZHI: resulting balance would be insufficient

I used the crowdfunding example as a reference, I would expect the closeRemainderTo to prevent this from happening. Is there something I'm doing wrong?

Hi
this error occurs when resulting account balance after transaction is less than min Balance, minimum balance increases when account is opted-in(to ASA or SSC) or created asa or ssc,
Possible cases:

does developer.account has enough balance to cover fees ?
does escrow account has enough balance ?

when we use closeRemainderTo, it ensures, all the remaining balance is sent to closeRemainderTo address after transaction is completed, in this case i think transaction is failing before

The error occurs for the escrow account, I noticed something odd when I printed out the balances in the accounts.
Stateful smart contract withdrawal
developer account 50000000n
developer address SFTRLDTYSEOMVWVQNQFCMEHVOMKEZYYGP6EIJIFENDSQYXUGXLMT7QG7L4
escrow account 202000n
escrow address 44BF7PCMOGR2CEQTQYDWIXHTPSGMLBZODM5A66HCSV25ZQKBPNVJY2HULY
    1) should allow withdrawal for winner

  4 passing (547ms)
  1 failing

  1) Stateful smart contract withdrawal
       should allow withdrawal for winner:
     Error: RUNTIME_ERR1401: Cannot withdraw 272000 microalgos from account 44BF7PCMOGR2CEQTQYDWIXHTPSGMLBZODM5A66HCSV25ZQKBPNVJY2HULY: resulting balance would be insufficient
      at Ctx.assertMinBalance (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:24:19)
      at Ctx.deductFee (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:219:14)
      at /home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:368:18
      at Array.forEach (<anonymous>)
      at Ctx.processTransactions (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:366:19)
      at Runtime.executeTx (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/runtime.js:482:18)
      at Context.<anonymous> (test/sample-test.js:401:13)
      at processImmediate (internal/timers.js:462:21)

The error shows that 272000 is being withdrawn. However, it's a closeout command so the value truly should be 202000. I have checked the amount transferred to the escrow as well and it's 202000. I'm not sure where the extra 70000 being withdrawn comes from. Once again here is the transaction I am attempting to execute:
const withdrawFundsTxGroup = [
      {
        type: types.TransactionType.CallNoOpSSC,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        appId,
        appArgs: [
          "str:deposit",
        ],
        payFlags: { totalFee: validTxFee }
      },
      {
        type: types.TransactionType.TransferAlgo,
        sign: types.SignType.LogicSignature,
        fromAccountAddr: escrow.account.addr,
        toAccountAddr: GLOBAL_ZERO_ADDRESS,
        amountMicroAlgos: 0,
        lsig: lsig,
        payFlags: {closeRemainderTo: developer.address}
      }
    ];

this happening probably because you have not passed totalFee in payFlags, by default suggested params fee could be higher, as in this case.
does this solves this ?

this is happening probably because you have not passed totalFee in payFlags, by default when transaction parameters are processed fee could be higher, as in this case.
does this solves this ?

When I add the totalFee in payFlags I run into this error that I pointed out earlier in this reply:

Thanks a lot guys! It works now. I changed my contract to accept "int:50" instead.
I have one final step in my test suite which is to test withdrawing the funds. Here is my code:
// setup escrow account
    const escrowProg = getProgram('escrow_contract.py');
    const lsig = runtime.getLogicSig(escrowProg, []);
    const escrowAddress = lsig.address();

    // sync escrow account
    escrow = runtime.getAccount(escrowAddress);
    console.log('Escrow Address: ', escrowAddress);

    // create application
    const createContractTxGroup = [
      {
        type: types.TransactionType.DeploySSC,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        approvalProgram: approvalProgram,
        clearProgram: clearProgram,
        localInts: 0,
        localBytes: 0,
        globalInts: 4,
        globalBytes: 5,
        appArgs: [
          "int:0",
          "int:25412621"
        ],
        payFlags: { totalFee: validTxFee }
      },
      {
        type: types.TransactionType.TransferAlgo,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        toAccountAddr: escrowAddress,
        amountMicroAlgos: contractFunds,
        payFlags: { totalFee: validTxFee }
      }
    ];

    runtime.executeTx(createContractTxGroup);

    syncAccounts();

    const iterator = runtime.store.globalApps.keys();
    const appId = iterator.next().value;

    const appAccounts = [
      developer.address,
      escrow.address
    ]

    const contractEntryTx = {
      type: types.TransactionType.CallNoOpSSC,
      sign: types.SignType.SecretKey,
      fromAccount: contract_owner.account,
      appId,
      payFlags: {totalFee: validTxFee},
      appArgs: ['str:submit','int:50'],
      accounts: appAccounts
    }

    runtime.executeTx(contractEntryTx);

    syncAccounts();

    appArgs = [stringToBytes('deposit')];
    txGroup = [
      {
        type: types.TransactionType.CallNoOpSSC,
        sign: types.SignType.SecretKey,
        fromAccount: developer.account,
        appId,
        payFlags: { totalFee: 1000 },
        appArgs: appArgs
      },
      {
        type: types.TransactionType.TransferAlgo,
        sign: types.SignType.LogicSignature,
        fromAccountAddr: escrow.account.addr,
        toAccountAddr: developer.address,
        amountMicroAlgos: 0,
        lsig: lsig,
        payFlags: { totalFee: 1000, closeRemainderTo: developer.address }
      }
    ];

    runtime.executeTx(txGroup);

When I execute the last transaction (txGroup) to withdraw, I get the following error:
Error: RUNTIME_ERR1401: Cannot withdraw 1000 microalgos from account EO7DEARIDKG2C4LXX2KI2UGACPGAKDW5SK5EJJQ24HCCYT3BASEWUHJZHI: resulting balance would be insufficient

I used the crowdfunding example as a reference, I would expect the closeRemainderTo to prevent this from happening. Is there something I'm doing wrong?

okay, i am not able to recreate this issue, we have test for it https://github.com/scale-it/algo-builder/blob/ed8128f8908e9d28d83081806cd33d55f5b77c7d/packages/runtime/test/integration/escrow-account.ts#L117
let me try one more thing

this error probably occurs while deducting fee,  tried a test with group tx also, not able to recreate

The error shows that 272000 is being withdrawn. However, it's a closeout command so the value truly should be 202000. I have checked the amount transferred to the escrow as well and it's 202000. I'm not sure where the extra 70000 being withdrawn comes from. Once again here is the transaction I am attempting to execute:

could you check these logs after passing totalFee ?

I tried adding it, here is my code:
    const withdrawFundsTxGroup = [
      {
        type: types.TransactionType.CallNoOpSSC,
        sign: types.SignType.SecretKey,
        fromAccount: contract_owner.account,
        appId,
        appArgs: [
          "str:deposit",
        ],
        payFlags: { totalFee: validTxFee }
      },
      {
        type: types.TransactionType.TransferAlgo,
        sign: types.SignType.LogicSignature,
        fromAccountAddr: escrow.account.addr,
        toAccountAddr: GLOBAL_ZERO_ADDRESS,
        amountMicroAlgos: 0,
        lsig: lsig,
        payFlags: {totalFee:1000, closeRemainderTo: developer.address}
      }
    ];

However I get the following error:
Error: RUNTIME_ERR1401: Cannot withdraw 1000 microalgos from account YRH6HL54QZUVWJNN4TQCIMTCMTRPAM6SFBPLDMWCMQAI3SBQQICSNXLVRQ: resulting balance would be insufficient
      at Ctx.assertMinBalance (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:24:19)
      at Ctx.deductFee (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:219:14)
      at /home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:368:18
      at Array.forEach (<anonymous>)
      at Ctx.processTransactions (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:366:19)
      at Runtime.executeTx (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/runtime.js:482:18)
      at Context.<anonymous> (test/sample-test.js:401:13)
      at processImmediate (internal/timers.js:462:21)

in this case what is the balance of address in the error ?

It's the escrow account and it has 202000 as well. Here's a log of the accounts:
developer account 50000000n
developer address X7OG5HNSPK2777NNWXFRC2TNTIYVZYOY5VU7MDLNJYTXCZ5EGXSOR6TRC4
escrow account 202000n
escrow address YRH6HL54QZUVWJNN4TQCIMTCMTRPAM6SFBPLDMWCMQAI3SBQQICSNXLVRQ
    1) should allow withdrawal for winner

  4 passing (640ms)
  1 failing

  1) Stateful smart contract withdrawal
       should allow withdrawal for winner:
     Error: RUNTIME_ERR1401: Cannot withdraw 1000 microalgos from account YRH6HL54QZUVWJNN4TQCIMTCMTRPAM6SFBPLDMWCMQAI3SBQQICSNXLVRQ: resulting balance would be insufficient
      at Ctx.assertMinBalance (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:24:19)
      at Ctx.deductFee (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:219:14)
      at /home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:368:18
      at Array.forEach (<anonymous>)
      at Ctx.processTransactions (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/ctx.js:366:19)
      at Runtime.executeTx (/home/paul/Desktop/algo_proj/algo-builder/packages/runtime/build/runtime.js:482:18)
      at Context.<anonymous> (test/sample-test.js:401:13)
      at processImmediate (internal/timers.js:462:21)

okay, got it, i think you are using previous version of algob,
this is happening because of algorand min_balance.
In previous version min balance is  = 1e6 that's why the code is failing
https://github.com/scale-it/algo-builder/commit/e93f75ff45452f1eadb5e035e97af7c2c15c82da
we have updated the min balance in this PR by taking reference from here https://github.com/algorand/go-algorand/blob/02eacd13d55251c854042a12eca8dc066d840e8c/config/consensus.go#L672 (Updated new min balance is 0.1e6)

so to fix this you will have to increase the escrow balance.

That fixed it! Thanks for all the help!


adding method getDriverName()

This method is called when the Mongodb debug panel is opened and appears to exist in most other yii2 database Connection classes as well.
Returns string mongodb.

getDriverName() method has no purpose in the scope of MongoDB.
To resolve the troubles with debug panle hasExplain() method should be overridden instead.

Relates to #39


Added Balloon Popper Game using Python

A simple 2D Balloon Popper Game using Python.
closes #309

@TusharAMD Made new PRs. Kindly review


chore: upgrade flair to latest version (0.12.2)

Description
As of #3012, we decided to upgrade flair to 0.12.0 to avoid some known installation issues with both dependencies: tokenizers and sentencepiece. It was solved, but we recently included the ArgillaAutoTrainTrainer at #2940 (kudos to @davidberenstein1957), and it seems that autotrain-advanced dependency expects a greater huggingface_hub version, while flair 0.12.0 had it pinned to ==0.10.0 which was pretty restrictive and, so on, running into conflicts with autotrain-advanced.
So on, it seems that flair 0.12.2 already defines huggingface_hub dependency as >=0.10.0 which is more relaxed, and doesn't run into any conflict with the rest of the dependencies.
See the previous huggingface_hub dependency pinned to ==0.10.0 at https://github.com/flairNLP/flair/blob/d13f8ea36e60c5ab1d7468893498db96d91fd4be/requirements.txt#L22, and now being pinned to >=0.10.0 at https://github.com/flairNLP/flair/blob/621e7dd58be8e3c5985176d9a7f54eb5c0cd8c88/requirements.txt#L22, as of 0.12.2, since in 0.12.1 it's still pinned to ==0.10.0.
Type of change

[X] Upgrade/Add dependency

How Has This Been Tested
(Please describe the tests that you ran to verify your changes. And ideally, reference tests)

[X] Installed via pip in Python 3.8, 3.9, 3.10, and 3.11; and with conda in Python 3.8

Checklist

[X] I have merged the original branch into my forked branch
[X] I added relevant documentation
[ ] follows the style guidelines of this project
[ ] I did a self-review of my code
[ ] I made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/)

P.S. It also works in Python 3.7, in case we continue giving support to it at least for the v1.9.0 👍🏻


Touch up mailing list address in README.md

Signed-off-by: TomSweeneyRedHat<EMAIL_ADDRESS>As the title says.

/lgtm

/hold
LGTM, unhold when green

@mheon, good to let the hold be cancelled?

/hold cancel


Add key vaults for secret management

This PR adds two key vaults for secret management.
Changes

Adds pdh*-appconfig key vault
Adds pdh*-clientconfig key vault
Grants dev access to both key vaults

Checklist

[x] Tested locally?
[ ] Added new dependencies?
[ ] Updated the docs?
[ ] Added a test?
[ ] Did you check for sensitive data, and remove any?
[ ] Are additional approvals needed for this change?
[ ] Are there potential vulnerabilities or licensing issues with any new dependencies introduced?

Fixes

#issue

To Be Done

After this PR rolls out, we need to populate the key vaults with secrets.
Follow on PRs will switch our apps and configs to use the key vaults.

Is there some limitation that forces us into using three key vaults per environment as opposed to one key vault with more fine-grained access policies?

@cglodosky Great question. I've been unable to find a way to grant access to secrets on a per secret level or any type of organization structure that can be utilized within Key Vaults. Access can be granted to various Key Vault services (like keys, certificates, etc) and operations (read, write, decrypt, etc), but not to individual objects within a Key Vault.
The issue is our client secrets should eventually be secured that we can't even see them, so that needs to be a separate vault. App secrets could potentially be held under the same vault that contains our HTTPS cert and encryption keys, but I'm not sure what else we will store in there in the future, so I thought it was cleaner to have a dedicated Key Vault for app configuration as well.


Distributed Redis cache configuration not obeying sliding window expiration update on access

Hi there,
First, thank you for a great package!
We are experiencing an issue when using a distributed Redis configuration and a sliding window expiry, where accessing a key updates the sliding window only on the first access.
We are using this distributed Redis cache successfully for non-expiry, absolute expiry and sliding window when the cache key is regenerated on cache miss. This new use case uses the sliding window expiry as a gate (like a session cache).
Have we misunderstood the behaviour of a distributed Redis cache configuration with respect to sliding window expiration?
From the log, it appears that given the key is not in system cache, it will retrieve it from Redis with the sliding window update. The next access finds the key in system cache, and appears not to push the sliding window update(?). Note that the cache item itself has the expiration, not the cache configuration.
Here is our configuration:
ICacheManagerConfiguration CacheL1L2BP = new ConfigurationBuilder()
        //.WithUpdateMode(CacheUpdateMode.Up) // this has no effect
        .WithMicrosoftLogging((logger) => logger.AddProvider(new NLogLoggerProvider()))
        .WithSystemRuntimeCacheHandle("In-Process")
        .And
        .WithRedisConfiguration("Redis", redisConnection, enableKeyspaceNotifications: true)
        .WithJsonSerializer()
        .WithMaxRetries(4)
        .WithRetryTimeout(2000)
        .WithRedisBackplane("Redis")
        .WithRedisCacheHandle("Redis", true)
        .EnableStatistics()
        .Build();

Note that we suffix the ,allowAdmin=true (also tried ,useAdmin=true) to the connection string, but we still get the message:
Could not read configuration from redis to validate notify-keyspace-events. Most likely useAdmin is not set to true.

However we do see keyspace events (see log below). Our Redis cache is a Azure Redis Standard C0 with the notify-keyspace-events set to AKE.
This is the reproduction code (see attached solution):
// create a boolean gate cache
ICacheManager<bool> distribCache = CacheFactory.FromConfiguration<bool>("Distrib Test", CacheL1L2BP);

// add/update the key @ t0, expiry @ t0+60
Console.WriteLine($"Add Key 123 @ t0     -> {DateTime.UtcNow}={distribCache.AddOrUpdate(new CacheItem<bool>("123", true, ExpirationMode.Sliding, TimeSpan.FromSeconds(60)), v => true)}");

// next access @ t0+45
Thread.Sleep(45000);

// access @ t0+45, expiry @ t0+105, success
Console.WriteLine($"Get Key 123 @ t0+45  -> {DateTime.UtcNow}={distribCache.Get("123")}");

// next access @ t0+90
Thread.Sleep(45000);

// access @ t0+90, expiry @ t0+150, success
Console.WriteLine($"Get Key 123 @ t0+90  -> {DateTime.UtcNow}={distribCache.Get("123")}");

// next access @ t0+135
Thread.Sleep(45000);

// access @ t0+135, expiry @ t0+195, failure
Console.WriteLine($"Get Key 123 @ t0+135 -> {DateTime.UtcNow}={distribCache.Get("123")}");

Here is the NLog. I removed the cache startup preamble:
2021-02-13T17:46:55.3439844Z DEBUG LAPTOP-12345678 - CacheManager.Redis.RedisCacheHandle Could not read configuration from redis to validate notify-keyspace-events. Most likely useAdmin is not set to true.
2021-02-13T17:46:55.6124058Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Add or update: 123 .
2021-02-13T17:46:55.6124058Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Add ['123', exp:Sliding 00:01:00, lastAccess:2/13/2021 5:46:55 PM] started.
2021-02-13T17:46:55.6313512Z INFO LAPTOP-12345678 - CacheManager.Redis.RedisCacheHandle Loading scripts.
2021-02-13T17:46:55.9920906Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Evict [:123] from other handles excluding handle '1'.
2021-02-13T17:46:55.9920906Z DEBUG LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Evicting ':123' from handle 'In-Process'.
2021-02-13T17:46:55.9920906Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Notified backplane 'change' because ['123', exp:Sliding 00:01:00, lastAccess:2/13/2021 5:46:55 PM] was added.
2021-02-13T17:46:55.9920906Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Add or update: 123 : successfully added the item.
2021-02-13T17:46:56.0289973Z DEBUG LAPTOP-12345678 - CacheManager.Redis.RedisCacheBackplane Backplane is sending 1 messages (0 skipped).
2021-02-13T17:47:41.1052721Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123] started.
2021-02-13T17:47:41.1052721Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123], item NOT found in handle[0] 'In-Process'.
2021-02-13T17:47:41.2129921Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123], found in handle[1] 'Redis'.
2021-02-13T17:47:41.4124504Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Start updating handles with ['123', exp:Sliding 00:01:00, lastAccess:2/13/2021 5:47:41 PM].
2021-02-13T17:47:41.4144451Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Updating handles, added ['123', exp:Sliding 00:01:00, lastAccess:2/13/2021 5:47:41 PM] to handle 'In-Process'.
2021-02-13T17:48:26.4782297Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123] started.
2021-02-13T17:48:26.4782297Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123], found in handle[0] 'In-Process'.
2021-02-13T17:48:26.4782297Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Start updating handles with ['123', exp:Sliding 00:01:00, lastAccess:2/13/2021 5:48:26 PM].
2021-02-13T17:48:41.5127934Z DEBUG LAPTOP-12345678 - CacheManager.Redis.RedisCacheHandle Got expired event for key ':123'
2021-02-13T17:48:41.5127934Z DEBUG LAPTOP-12345678 - CacheManager.Redis.RedisCacheHandle 'Redis' triggered remove ':123' because 'Expired'.
2021-02-13T17:48:41.5127934Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Cleaning handles above '1' because of remove event.
2021-02-13T17:48:41.5247595Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Evict from handles above: 123 : above handle 1.
2021-02-13T17:48:41.5247595Z DEBUG LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Evicting ':123' from handle 'In-Process'.
2021-02-13T17:49:11.4953541Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123] started.
2021-02-13T17:49:11.4953541Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123], item NOT found in handle[0] 'In-Process'.
2021-02-13T17:49:11.5609279Z TRACE LAPTOP-12345678 - CacheManager.Core.BaseCacheManager Get [:123], item NOT found in handle[1] 'Redis'.

Solution:
CacheSliding.zip

Hi @GMacAussie
That is  the expected behavior, if both cache layers have the same sliding expiration, it might never get refreshed.
I'm usually using a shorter absolute-expiration in the first layer and longer sliding-expiration in the Redis layer.
If you still want to use the same cache expiration in both layers because you cannot configure them separately or want to use the per key expiration, you can "update" the sliding window in both layers by calling .Expire, which will do a Get and then effectively a Put in both layers.
This operation is rather inefficient performance wise if you call that on every GET operation.
Expire has to get the full data of the key, and then sends it to Redis to update the sliding windows. If you do that on every GET, you loose a lot of performance benefits of a 2 layered cache.
I highly recommend not to do that on every GET
But there are solutions for this which would work, you need a small time window in which the Expire call would be skipped, but you'd have to make sure that the next call outside that window or the last call within the window would trigger an Expire; otherwise you could miss one call.
That concept is called debouncing.
Unfortunately, it is nontrivial to implement debouncing properly and also very dependent on a use-case (needs configuration again at least).
That's why this library doesn't handle stuff like that yet.

Thanks for the reply @MichaCo.
Debouncing sounds a bit fraught, and at the end of the day it just might be easier (and more reliable?) to use Redis as a single cache layer.
Thanks for again for your reply.


Added v19 of ORDS and listening to any interfaces

Hi,
added the checksum for latest version of ords and modify the configuration file to listen on any address, this allow not to specify the ip address in a k8s environment

You seem to have combined two changes into a single pull request. I'm seeing changes to both the RAC Dockerfiles/scripts as well as the ORDS ones. Also, you have switched one of the source images to the container-registry, which we don't do here on GitHub.
I'm going to close this PR as it's a little too messy to merge. I would suggest creating a separate branch from master for each changeset so that each PR can be reviewed just by a single codeowner.
You can learn more about the standard GitHub Flow here: https://guides.github.com/introduction/flow/


Don't collapse unintentional top-level errors

This should fix https://github.com/facebookincubator/create-react-app/issues/2144.
If the error is one of the built-in ones, we don't collapse, and show all the internal frames up to the first instance of user code. Then collapsing logic works as before.
I found the variable overwriting confusing and hard to deal with, so I tried to separate variables. Let me know if I missed some case.

LGTM.


Undo

We are already have the setup to reset state and scope to previous values on error. We can re-use the same setup to implement undo behavior

https://github.com/avcs06/EpicManager/commit/8f694c6d4985eb787778c01f20501411a76e56dd


When will the code be released?

When will the code be released?

Thanks for the reminder! I'll get it done before the new year.

Code is now released, but not very clean. Thanks for your patience


Journal-names

imdone almost hit a PERFECT hit on my current workflow. Looking very much forward to whats next!
In the settings, it supports journal filenames based on text and one variable (${DATE}). Would it be, or is it in the pipeline to expand journal creations to support more advanced name-templates? Example, based on highlighed text, a popup to ask for part of the filenames, and so on.
I usually ends up taking a lot of notes during the day, all in the format "YYYY-MM-DD notename here.md".

This looks like an interesting idea.  Not very urgent on the enhancement list for me though.  If you want to look at implementing this, I'd merge a pull request!

I'm planning on implementing this in the next week.  I'll get my ideas on a wireframe and post them here.

If this could use the tags, context or meta data you could create a log for a single issue. This would be very helpful and could begin to become an issue log/archive library.

Issue closed with imdone.io by removing a comment.

https://github.com/imdone/imdone-atom/blob/729c88d5c2b7a6fe241f0f1eb2f94f821f463b3a/lib/imdone-atom.coffee#L193-L212


Fix test-assets Folder Reference in README

Noticed that benchmarks CI is failing.
7c209e7 should solve it in the next PR


Broken link in release comments.

"is damaged and can't be opened" error" link broken

Duplicate of #1

He is referring to the link in the release notes for v0.3.2 is broken.
The link can be found on this page: https://github.com/romannurik/AndroidDesignPreview/releases

Ah, fixed.

:+1:

Genial para poder y tener a la mano un buen teabajo


Hope to support the spigot core

Hope to support the spigot core.

Well, FakePlayer was designed base on Purpur, and it use lots of APIs which purpur and paper provied, it will be a big job to support spigot, I think it will not get supporting recently becuase this plugin is for free.


Improving error message when users pass layers_to_transform and layers_pattern

This tries to add some verbose message when users pass layers_to_transform and layers_pattern addressing point 3 in #2155.

@JINO-ROHIT Please let me know if the PR is ready for review (always ping me if it's ready).

Wait, how is this PR different from #2159?

yeah actually #2159 simply adds the check if
if self.layers_to_transform is not None and self.layers_pattern is None:
            raise ValueError(
                "When `layers_to_transform` is specified, `layers_pattern` must also be specified. "
            )

This PR is making the error message better logging for layers_transform and layers_pattern if specified, this commit basically - 1f26074
Looks weird that the other commits are being shown here

Looks weird that the other commits are being shown here

Yes, I can't really review this PR because of that. Probably it's easiest to just open a new PR and ensuring it only contains the commit intended for that PR.

sure


FIX incorrectly indexing functional masks

There's still a bug in the previous version, hot fix

Codecov Report

Merging #11 (f66101a) into main (3b94b1b) will increase coverage by 4.27%.
The diff coverage is 78.57%.

Additional details and impacted files

@@            Coverage Diff             @@
##             main      #11      +/-   ##
==========================================
+ Coverage   46.19%   50.46%   +4.27%
==========================================
  Files           5        5
  Lines         210      214       +4
==========================================
+ Hits           97      108      +11
+ Misses        113      106       -7

Impacted Files
Coverage Δ

giga_auto_qc/assessments.py
53.33% <78.57%> (+6.76%)
:arrow_up:


Support diff of system derivation

$ nix-diff /nix/store/lf3l0fn8lfllhm6kb1w5jlfdc181d29z-nixos-system-station-18.09.pre.5da8543.drv \
           /nix/store/7spzzxnkxg7w053m288vfvvbhaxd4lmx-nixos-system-station-18.09.pre.01b254e.drv
- /nix/store/lf3l0fn8lfllhm6kb1w5jlfdc181d29z-nixos-system-station-18.09.pre.5da8543.drv:{out}
+ /nix/store/7spzzxnkxg7w053m288vfvvbhaxd4lmx-nixos-system-station-18.09.pre.01b254e.drv:{out}
• The derivation names do not match

The workaround is to rename those derivations to s1.drv s2.drv and then nix-diff s1.drv s2.drv

See: https://github.com/Gabriel439/nix-diff/issues/6
Based on that issue, I believe you can set nixos.system.label to a fixed string so that the derivation name is unaffected by the change in the nixpkgs revision

Would you be willing to cut another release for this?  I happen to have a use case diffing versions of user environments and would like to be able to just install this without any overlays.  At the moment I'm using the cp and nix-diff {s1,s2}.drv workaround.

@bhipple: Yeah, no problem!  I just uploaded this to Hackage as nix-diff-1.0.3


Update VCRedist version to latest

Summary of the Pull Request
Updates the VC++ Redist to the latest released version to fix an issue with the PowerToys Installer failing due to installing an earlier version of the package for those who already have the latest VC++ redist installed.

PR Checklist

[X] Closes: #19090
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed
Built installer locally and verified it pulls in latest VC++ redist.

Summary of the Pull Request
Updates the VC++ Redist to the latest released version to fix an issue with the PowerToys Installer failing due to installing an earlier version of the package for those who already have the latest VC++ redist installed.
PR Checklist

[x]  Closes: 0.59.1 Setup Failed #19090

[ ]  Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected

[ ]  Tests: Added/updated and all pass

[ ]  Localization: All end user facing strings can be localized

[ ]  Dev docs: Added/updated

[ ]  New binaries: Added on the required places

[ ]  JSON for signing for new binaries
[ ]  WXS for installer for new binaries and localization folder
[ ]  YML for CI pipeline for new test projects
[ ]  YML for signed pipeline

[ ]  Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments
Validation Steps Performed
Built installer locally and verified it pulls in latest VC++ redist.

Summary of the Pull Request
Updates the VC++ Redist to the latest released version to fix an issue with the PowerToys Installer failing due to installing an earlier version of the package for those who already have the latest VC++ redist installed.
PR Checklist

[x]   Closes: 0.59.1 Setup Failed #19090

[ ]   Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected

[ ]   Tests: Added/updated and all pass

[ ]   Localization: All end user facing strings can be localized

[ ]   Dev docs: Added/updated

[ ]   New binaries: Added on the required places

[ ]   JSON for signing for new binaries
[ ]   WXS for installer for new binaries and localization folder
[ ]   YML for CI pipeline for new test projects
[ ]   YML for signed pipeline

[ ]   Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments
Validation Steps Performed
Built installer locally and verified it pulls in latest VC++ redist.

/azp run


Night CI 2023-08-02: Failed

action url: https://github.com/spidernet-io/egressgateway/actions/runs/5743249615

same with #661