Eliminate Interface Directory/Reorganize necessary files

Removed Functions Documentation
Index of Removed Functions
File: file.rs: PR #53

removefile
openfile
openmetadata
pathexists
EmulatedFile Struct

new
new_metadata
close
shrink
fdatasync
fsync
sync_file_range
readat
writeat
readfile_to_new_bytes
writefile_from_bytes
zerofill_at
as_fd_handle_raw_int

EmulatedFileMap Struct

new
write_to_map
extend_map
close_emulatedfilemap
mapfilenew

Test Module

test_path_exists_true
test_path_exists_false

File: misc.rs: PR #54

AdvisoryLock Struct

new
lock_ex
lock_sh
try_lock_ex
try_lock_sh
unlock

File: pipe.rs: PR #55

new_pipe
EmulatedPipe Struct

new_with_capacity
set_eof
get_write_ref
get_read_ref
incr_ref
decr_ref
check_select_read
check_select_write
write_to_pipe
read_from_pipe

Debug Implementation for EmulatedPipe

File: types.rs: PR #56

FSData Struct
get_fdset
get_statdatastruct
get_fsdatastruct
get_ioctlptrunion
get_ioctl_int
get_ioctl_char
pack_dirents
get_sockaddr
get_epollevent
get_itimerval
get_constitimerval
get_sem
get_ifaddrs

File: file.rs
removefile

Purpose:
Deletes a file from the filesystem.
Details:
Takes a filename as input, checks if the file exists, and removes it.

openfile

Purpose:
Opens a file and creates an EmulatedFile object with a specified filesize.
Details:
Used to open files for reading and writing, with options for file creation.

openmetadata

Purpose:
Opens a file to access its metadata and returns an EmulatedFile object.
Details:
Retrieves the file size and relevant metadata upon opening.

pathexists

Purpose:
Checks if a given file path exists.
Details:
Returns a boolean indicating whether the file path is valid.

EmulatedFile Struct
new

Purpose:
Creates a new EmulatedFile instance, opening a file and initializing its size.
Details:
Opens the file with read/write permissions and stores a Mutex<File>.

new_metadata

Purpose:
Creates an EmulatedFile instance by reading the file's metadata.
Details:
Retrieves file size and other metadata.

close

Purpose:
Closes the EmulatedFile.
Details:
Ensures resources are released after file operations.

shrink

Purpose:
Shrinks the file size to the specified length.
Details:
Reduces the file length and updates the filesize field.

fdatasync

Purpose:
Syncs data to disk without syncing file metadata.
Details:
Uses sync_data() to ensure file data is written to disk.

fsync

Purpose:
Syncs both file data and metadata to disk.
Details:
Ensures full synchronization of file contents.

sync_file_range

Purpose:
Syncs a specified file range to disk.
Details:
Allows syncing a portion of the file's data based on offset, bytes, and flags.

readat

Purpose:
Reads data from a file at a specified offset.
Details:
Populates a C-buffer with data read from the file.

writeat

Purpose:
Writes data to a file at a specified offset.
Details:
Takes data from a C-buffer and writes it to the file.

readfile_to_new_bytes

Purpose:
Reads the entire file into a byte vector.
Details:
Useful for reading a file's full content into memory.

writefile_from_bytes

Purpose:
Writes an entire byte vector to the file.
Details:
Replaces the file's content with new data from the byte buffer.

zerofill_at

Purpose:
Writes zeroes to the file starting at a specified offset.
Details:
Useful for initializing or overwriting portions of the file with zeros.

as_fd_handle_raw_int

Purpose:
Retrieves the file descriptor as an integer.
Details:
Returns the raw file descriptor from the file object.

EmulatedFileMap Struct
new

Purpose:
Creates a new EmulatedFileMap instance and maps a file into memory.
Details:
Maps 1MB of file space and reserves 8 bytes for tracking written data.

write_to_map

Purpose:
Writes data to the mapped region of the file.
Details:
Automatically extends the mapped memory if the data exceeds the current map size.

extend_map

Purpose:
Extends the memory-mapped region of the file by 1MB.
Details:
Resizes the map when more space is needed for logging or writing.

close_emulatedfilemap

Purpose:
Closes the memory-mapped file, unmaps the file, and releases resources.
Details:
Ensures the file is properly unmapped before closing.

mapfilenew

Purpose:
Creates a new memory-mapped file.
Details:
Opens the file and maps 1MB of space, preparing the file for logging or other operations.

Test Module
test_path_exists_true

Purpose:
Tests whether pathexists returns true for an existing file.
Details:
Uses a temporary file to verify the functionality of pathexists.

test_path_exists_false

Purpose:
Tests whether pathexists returns false for a non-existent file.
Details:
Verifies that the function behaves as expected when the file does not exist.

File: misc.rs
AdvisoryLock Struct
new

Purpose:
Initializes a new AdvisoryLock instance.
Details:
Creates a new mutex with a guard value of 0 (unlocked state) and a condition variable for managing locks.

lock_ex

Purpose:
Acquires an exclusive lock on the mutex.
Details:
Waits until the guard value is 0 (unlocked) before setting it to -1 to indicate that an exclusive lock is held.

lock_sh

Purpose:
Acquires a shared lock on the mutex.
Details:
Waits until no exclusive lock is held (guard value >= 0) and increments the guard value to indicate a shared lock is held.

try_lock_ex

Purpose:
Attempts to acquire an exclusive lock without blocking.
Details:
If the guard value is 0 (unlocked), it sets it to -1 and returns true. Otherwise, it returns false.

try_lock_sh

Purpose:
Attempts to acquire a shared lock without blocking.
Details:
If no exclusive lock is held (guard value >= 0), it increments the guard value and returns true. Otherwise, it returns false.

unlock

Purpose:
Releases the lock, whether shared or exclusive.
Details:

If a shared lock is held (guard value > 0), it decrements the guard value by 1. If no more shared locks are held (guard value becomes 0), it notifies a waiting writer.
If an exclusive lock is held (guard value -1), it sets the guard value to 0 and notifies all waiting readers and writers.

File: pipe.rs
new_pipe

Purpose:
Creates a new pipe with the specified buffer size.
Details:
Calls EmulatedPipe::new_with_capacity to initialize the pipe.

EmulatedPipe Struct
new_with_capacity

Purpose:
Initializes a new EmulatedPipe with a specified buffer size.
Details:
Uses a RingBuffer to split the buffer into a producer (write end) and consumer (read end).

set_eof

Purpose:
Marks the pipe as having reached the end-of-file (EOF).
Details:
Sets the eof flag to true, indicating no more data will be written to the pipe.

get_write_ref

Purpose:
Retrieves the current write reference count.
Details:
Returns the number of active write references on the pipe.

get_read_ref

Purpose:
Retrieves the current read reference count.
Details:
Returns the number of active read references on the pipe.

incr_ref

Purpose:
Increments the reference count for either read or write, based on flags.
Details:
Increases the reference count depending on whether the pipe is opened for reading (O_RDONLY) or writing (O_WRONLY).

decr_ref

Purpose:
Decrements the reference count for either read or write, based on flags.
Details:
Decreases the reference count depending on whether the pipe is closed for reading (O_RDONLY) or writing (O_WRONLY).

check_select_read

Purpose:
Checks whether the pipe is ready for reading.
Details:
Returns true if the pipe has data to be read or has reached EOF. Otherwise, it returns false.

check_select_write

Purpose:
Checks whether the pipe is ready for writing.
Details:
Returns true if there is available space in the pipe's write buffer.

write_to_pipe

Purpose:
Writes data to the pipe from a provided memory buffer.
Details:
Attempts to write length bytes into the pipe. If the pipe is full and non-blocking mode is enabled, it returns EAGAIN. If all read ends are closed, it returns EPIPE.

read_from_pipe

Purpose:
Reads data from the pipe into a provided memory buffer.
Details:
Reads up to length bytes. If non-blocking mode is enabled and no data is available, it returns EAGAIN. If EOF is reached, it returns 0.

Debug Implementation for EmulatedPipe

Purpose:
Provides a custom Debug implementation for the EmulatedPipe struct.
Details:
Displays the read/write reference counts and the EOF status.

File: types.rs
FSData Struct

Purpose:
Represents filesystem data, including information such as block size, total blocks, and free blocks.
Details:
This struct includes fields like f_bsize (block size) and f_blocks (total number of blocks), among others. It is designed to maintain compatibility with the stat and fstat system calls.

get_fdset

Purpose:
Retrieves a file descriptor set from the union argument.
Details:
Converts a raw pointer to an internal FdSet and returns a reference to it if valid. Otherwise, returns None.

get_statdatastruct

Purpose:
Retrieves a stat structure from the union argument.
Details:
Returns a mutable reference to a stat structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

get_fsdatastruct

Purpose:
Retrieves a statfs structure from the union argument.
Details:
Returns a mutable reference to a statfs structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

get_ioctlptrunion

Purpose:
Retrieves an IoctlPtrUnion from the union argument.
Details:
Returns the IoctlPtrUnion without any additional validation.

get_ioctl_int

Purpose:
Retrieves an integer from an IoctlPtrUnion.
Details:
Returns the integer value if the pointer is valid. Otherwise, returns an error indicating an invalid pointer.

get_ioctl_char

Purpose:
Retrieves a character (u8) from an IoctlPtrUnion.
Details:
Returns the character value if the pointer is valid. Otherwise, returns an error indicating an invalid pointer.

pack_dirents

Purpose:
Packs directory entries into a buffer.
Details:
Takes a vector of directory entries (ClippedDirent structs) and their associated names, and packs them into a buffer pointed to by baseptr. It assumes the names are null-terminated and padded to the next 8-byte boundary.

get_sockaddr

Purpose:
Retrieves a SockaddrDummy structure from the union argument.
Details:
Returns a mutable reference to a SockaddrDummy structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

get_epollevent

Purpose:
Retrieves an epoll_event structure from the union argument.
Details:
Returns a mutable reference to an epoll_event structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

get_itimerval

Purpose:
Retrieves an itimerval structure from the union argument.
Details:
Returns a mutable reference to an itimerval structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

get_constitimerval

Purpose:
Retrieves a constant itimerval structure from the union argument.
Details:
Returns a reference to an itimerval structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

get_sem

Purpose:
Retrieves a sem_t structure (semaphore) from the union argument.
Details:
Returns a mutable reference to a sem_t structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

get_ifaddrs

Purpose:
Retrieves an ifaddrs structure (network interface address) from the union argument.
Details:
Returns a mutable reference to an ifaddrs structure if the pointer is valid. Otherwise, returns an error indicating an invalid data pointer.

Removing commented lines under /interface folder should be good for now. That would be great if @ChinmayShringi can put a draft on items need to be done here.

@Yaxuan-w, I have updated the draft for the functions along with a short description of what they did. Please let me know if I missed anything.


Add verifytarget to update alias to address Issue #1479

I get what you did with all the try and throw reasons but how often do you think GAM does all that just to keep the API call from causing Python to throw an error? I wonder if it makes sense to have something like.a return_nothing_on_errors passed into gapi.call? If the given errors triggered we'd just return something like {}.
Otherwise looks good but just.a Friday evening thought to save us some trouble

Got it. My vote is to just make it the default behavior and maybe add an
option to NOT check if admin is certain the target already exists.
On Fri, Feb 11, 2022, 10:02 PM Ross Scroggs @.***>
wrote:

@.**** commented on this pull request.
In src/gam/init.py
https://github.com/GAM-team/GAM/pull/1481#discussion_r805108685:

 cd = buildGAPIObject('directory')

 alias = normalizeEmailAddressOrUID(sys.argv[3], noUid=True, noLower=True)
 target_type = sys.argv[4].lower()
 if target_type not in ['user', 'group', 'target']:
     controlflow.expected_argument_exit(
         'target type', ', '.join(['user', 'group', 'target']), target_type)
 target_email = normalizeEmailAddressOrUID(sys.argv[5])

if len(sys.argv) > 6:

   myarg = sys.argv[6].lower().replace('_', '')

   if myarg != 'verifynotinvitable':

i = 6
while i < len(sys.argv):

   myarg = sys.argv[i].lower().replace('_', '')

   if myarg == 'verifynotinvitable':

       if gapi_cloudidentity_userinvitations.is_invitable_user(alias):

           controlflow.system_error_exit(51, f'Alias not updated, {alias} is an unmanaged account')

verifynotinvitable is verifying that the alias is not an unmanaged
account; should it be verifying that the target is not an unmanaged account.
—
Reply to this email directly, view it on GitHub
https://github.com/GAM-team/GAM/pull/1481#discussion_r805108685, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDIZMGHO366U6IHWDBNFNDU2XEVDANCNFSM5OF72WEQ
.
You are receiving this because you commented.Message ID:
@.***>

The unmanaged account can only exist if the alias address does not exist (you can't have an unmanaged account for any user, group or alias address in Workspace). So the unmanaged check is unnecessary, we'd fail on deleting the alias anyway.

Should the verifynotinvitable code be taken out of create alias as well? They're both checking the alias about to be created.

Sorry for being slow here, but in both cases, the verifynotinvitable check is against the alias we are creating, not the target.
Additionally, I'm curious about the invitable check itself
$ gam print userinvitations
Getting all User Invitations in Google Workspace account (may take some time on a large account)...
Got 3 User Invitations...
name,state,updateTime,mailsSentCount
conflict2@clouddevices.us,ACCEPTED,2018-04-30T14:05:24.902Z,1
consumer-ross@s.jaylee.us,NOT_YET_SENT,2021-03-15T21:17:10.381Z,2
consumer-test1@s.jaylee.us,NOT_YET_SENT,2021-03-12T16:50:14.365Z,
$ gam check userinvitation<EMAIL_ADDRESS> isInvitableUser: False
$ gam check userinvitation<EMAIL_ADDRESS> isInvitableUser: False

But update alias is not creating a new address, it's moving the alias to a
new user/group. If both deletes fail then we know it's not a managed
address and we fail on the update there.
The list invites command pulls an indexed list of uanaged users whereas the
check invitable command does a "real time" check on the address. It can
take 24-48 hours for an address that was evicted, accepted invite or
renamed out of the domain on their own to appear in the list so the check
is more accurate to current status while the list is more complete (but
lags)
On Sat, Feb 12, 2022, 9:57 AM Ross Scroggs @.***> wrote:

Sorry for being slow here, but in both cases, the verifynotinvitable check
is against the alias we are creating, not the target.
Additionally, I'm curious about the invitable check itself
$ gam print userinvitations
Getting all User Invitations in Google Workspace account (may take some time on a large account)...
Got 3 User Invitations...
@.@.@.,NOT_YET_SENT,2021-03-12T16:50:14.365Z,
$ gam check userinvitation @.
isInvitableUser: False
$ gam check userinvitation @.***
isInvitableUser: False
—
Reply to this email directly, view it on GitHub
https://github.com/GAM-team/GAM/pull/1481#issuecomment-1037248215, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDIZMC4GALCQE3E66BLHY3U2ZYMXANCNFSM5OF72WEQ
.
You are receiving this because you commented.Message ID:
@.***>


feat: migrate ecx resources to fabric v4

migrated resources:

data "equinix_ecx_l2_sellerprofile"  --> data "equinix_fabric_service_profiles"
data "equinix_ecx_port"  --> data "equinix_fabric_ports"
resource "equinix_ecx_l2_connection" --> resource "equinix_fabric_connection"

Although it might be possible to split this into smaller PRs, the primary complexity lies in the migration of the equinix_fabric_connection resource, which requires a full migration at once. Considering the complexity, I'll outline the key points below:

The input/output variables have been kept compatible to avoid necessitating a major release. Some optional variables have been added, and two have been deprecated (speed_unit and secondary_speed_unit).
I've moved the local variables to a separate file for better readability.
This module simplifies the creation of fabric v4 connections through the inference of some complex fields, such as connection.type, access_point.type and access_point.link_protocol.type.
While the functionality to support FCR and Fabric Network is already defined, I've left that code commented out with a TODO to add it in future releases.

This approach ensures minimal disruption

Let's chase this PR with one that adds the README.md auto-updater workflow and updates the README.md (the modules in the README were not updated in this PR)


Comments on 08.04.22

Opening as a PR so we can discuss with further comments.
Key questions:

Should we narrow the scope to make the initial version simpler and easier to understand?
Should HTTP distribution be its own method?
Should Cert Transparency / special subdomains be in the TLS method?
Should we separate domain and IP addresses entirely?

Should Cert Transparency / special subdomains be in the TLS method?

I didn't see you mentioning this in the comments. Why should it be specific to TLS distribution only? (If this is what you mean - I am not sure!) Distributing root keys is essential and orthogonal to distributing emblems.


Add exception handling to 'ref.refresh()'

Is your feature request related to a problem? Please describe.
#3651
Describe the solution you'd like
Here is how riverpod currently recomments implementing a pull to refresh.
RefreshIndicator(
   onRefresh: () async => ref.refresh(provider.future),
   child: ...
)

However, this leads to an exception at the UI level if reading the updated value fails. The “ref.refresh()” function should take care of this.
Instead of returning a value, ref.refresh() should be handled similarly to a mutation that is watched by ref.watch(provider) and can be listened to by ref.listen(provider). Therefore, it does not need to return an actual value, but indicate when the operation has finished (see RefreshIndicator.onRefresh).
Options:

ref.refresh() should return a Future<void> / void / FutureOr<void>
ref.refresh() returns a value? only containing a value if the refresh was successful

Describe alternatives you've considered
Users should implement their own exception handling. But this needs to be explicitly mentioned in the API reference. Also, the examples in the documentation should be updated accordingly.

There's nothing wrong with the future throwing IMO. You're not even awaiting it.
That's similar to ref.watch(provider.future)
Why does that matter?

You're not even awaiting it.

Thanks...
Uncaught exceptions in callbacks are forwarded to the PlatformDispatcher. If these are not handled properly, such “errors” are logged for no reason.

There is an error in your code afterall. Why would we want to silence it?
If you want to silence it for the sake of error logging, you can do refresh(...)..ignore()

Yes, the error is that the rebuild of the provider failed, e.g. due to a failed network request. This is logged by provider observer or the network service. However, since ref.refresh  triggers an exception, there is an additional error at the UI level, but it is not a UI problem.
This might be nitpicky and .ignore() would solve this. However, I think ref.refresh() should handle this out of the box.

This isn't up to ref.refresh. If anything, it's up to RefreshIndicator.
You likely want a RefreshIndicator that does not report errors as "uncaught". Because RefreshIndicator explicitly decided to report the error
You could make a wrapper around it:
class MyIndicator extends StatelessWidget {
  Future<void> Function() onRefresh;

  build(ctx) {
    return RefreshIndicator(onRefresh: () => onRefresh()..ignore(), child: child);
  }
}

Hi @rrousselGit, thank you for taking your time and reviewing this feature request. I understand that this is not a critical issue. Maybe some people also rely on refresh to return a value. For me, its usage was always for (async) callbacks.
Feel free to close this.
Some suggestions:

We could update the API reference to mention that refresh can throw exceptions. This was not obvious to me and certainly not to others either.
When implementing mutations, consider adding exception handling to them as they are also frequently used in callbacks.

We could update the API reference to mention that refresh can throw exceptions. This was not obvious to me and certainly not to others either.

It is part of the documentation of provider.future that it will rethrow any error.
This is unrelated to ref.refresh.
Changing provider.future to return a Result-like object would be a massive breaking change, as it's very common for folks to do:
await ref.watch(provider.future);

In this scenario, it is very much expected that any error thrown by provider is rethrown.
For now, I'd rather not do such a change.


Redirect logged user when login in visitor's settings

Tasks

[ ] Redirect user to personal settings when login in visitor settings.
( /settings to /me/settings )

@robertu7 could add your solution here ? 👋🏾

There is no need to handle redirection, we can move /settings to /me/settings and render current /settings's view if viewer is anonymous.
Notice that /me/* are protected routes, we might also have to alter the /me and allow a whitelisted paths (/me/settings) to skip validation.


event_schema: Improve documentation

This is a follow up to the big event_schema PR we merged a few days ago.

This is great, merged and added 0c2d1f068d3d74c0b988a21e731dd0bf1dedd7ba on top to cover some additional topics.  Huge thanks for doing this @showell!


Be more robust against transient failures (e.g. HTTP 504 Gateway Timeout)

For some yet-to-be-investigated reasons our OBS sometimes has guru meditation moments and HTTP 504 Gateway Timeout errors while retrieving the build status end up causing the runner to fail completely:
> monitor --rev 2 --srcmd5 0b305f2e17b55c7f893b134f46c41c4d --build-log-out build.log --prev-endtime-for-commit<PHONE_NUMBER> --project apertis:v2024dev2:target --package linux --repository default --arch armv7hl
Live build log: https://build.collabora.com/package/live_build_log/apertis:v2024dev2:target/linux/default/armv7hl
Monitoring build, current status is 'building'...
Error running command:
   0: Request failed: HTTP status server error (504 Gateway Timeout) for url (https://build.collabora.com/source/apertis:v2024dev2:target/linux)
   1: HTTP status server error (504 Gateway Timeout) for url (https://build.collabora.com/source/apertis:v2024dev2:target/linux)
Location:
   /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/convert/mod.rs:550
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ SPANTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   0: obs_gitlab_runner::retry::retry_request
      at src/retry.rs:63
   1: obs_gitlab_runner::monitor::get_latest_revision
      at src/monitor.rs:82
   2: obs_gitlab_runner::monitor::get_latest_state
      at src/monitor.rs:95
   3: obs_gitlab_runner::monitor::monitor_package with self=ObsMonitor { package: MonitoredPackage { project: "apertis:v2024dev2:target", package: "linux", repository: "default", arch: "armv7hl", rev: "2", srcmd5: "0b305f2e17b55c7f893b134f46c41c4d", prev_endtime_for_commit: Some(1685065926) } } options=PackageMonitoringOptions { sleep_on_building: 10s, sleep_on_dirty: 30s, sleep_on_old_status: 15s, max_old_status_retries: 40 }
      at src/monitor.rs:189
   4: obs_gitlab_runner::handler::run_monitor with args=MonitorAction { project: "apertis:v2024dev2:target", package: "linux", rev: "2", srcmd5: "0b305f2e17b55c7f893b134f46c41c4d", repository: "default", arch: "armv7hl", prev_endtime_for_commit: Some(1685065926), build_log_out: "build.log" }
      at src/handler.rs:416
   5: obs_gitlab_runner::handler::command with cmdline="monitor --rev 2 --srcmd5 0b305f2e17b55c7f893b134f46c41c4d --build-log-out build.log --prev-endtime-for-commit<PHONE_NUMBER> --project apertis:v2024dev2:target --package linux --repository default --arch armv7hl"
      at src/handler.rs:554
   6: gitlab_runner::run::run with gitlab.job=2462923
      at /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/gitlab-runner-0.0.5/src/run.rs:137
Backtrace omitted.
Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.

From the stack trace I assume the runner is already retrying the request, I wonder if it should be more persistent in doing so and maybe print some information so we can track more easily how long things have been failing.

And indeed, from @refi64:

it does retry, for up to 10 minutes
I can just remove the limits really, it's kinda a holdover from when job cancellation didn't work yet
but it does have retry support for 10 minutes for basic API requests and 1 hour for large file uploads

@sjoerd agreed that at this point all arbitrary timelimits should be dropped and keep retrying until the GitLab job is canceled.

We've stopped timing out on retries so this is fixed (retries will be done until gitlab cancels the job)


DIBP feedback

What do you need?
Reviewing suggestions for Content Guide entries received from DIBP. In particular the capitalisation of proper nouns (Department and Minister etc) - would like to resolve this before we publish the new guide.
Reference: DIBP Writing style guide
https://github.com/AusDTO/gov-au-content-guide/issues/221

Content Clinic: agree with uppercase D and M
But need to provide some minimal guidance about user not understanding department.
Expand Department example to add '... we'

This commit https://github.com/govau/content-guide/commit/dc434608f937317bd70e3954c9284165b267eedc should achieve Content Clinic request.

Now being tracked in Trello


MAINT: refactor random variables

~WIP.~
This PR refactors the random variables module.

Those pesky underscores are removed
random_variables is now its own directory with its own __init__.py, where the random variables are split up into continuous, discrete and multivariate, as we have in PyMC3. As we support more and more random variables (and as we add more and more documentation), this structure will make our lives easier in terms of maintenance.

Now, the random variables are exposed through pm, as well as through pm.random_variables. E.g., you can access pm.Normal and pm.random_variables.Normal. I believe this is the same as what we have with PyMC3.

Will review in next 48 hours!

Great stuff!


Example Docs dont clearly explain how to capture Sharing events into my app at the App.tsx level with React Nav

Please give specific instrucs on how to capture incoming share event at the App.tsx level in React Nav Expo app.

Can you give me a little more information, do you want to retrieve the shareIntent before the application is fully loaded?
If so, you'll have to manage everything in App.tsx and react navigation won't have access to it.

I want to handle an incoming share in my app.TSX and nothing to do with
react navigation and I needed to trigger an event that I can then handle
On Mon, Jun 24, 2024 at 1:18 AM Anselme Chorein @.***>
wrote:

Can you give me a little more information, do you want to retrieve the
shareIntent before the application is fully loaded?
If so, you'll have to manage everything in App.tsx and react navigation
won't have access to it.
—
Reply to this email directly, view it on GitHub
https://github.com/achorein/expo-share-intent/issues/72#issuecomment-2185893035,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABS6UT7XENLOI2BONI3Y2KTZI7I5PAVCNFSM6AAAAABJY7XE5WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBVHA4TGMBTGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

the basic example handle this use case https://github.com/achorein/expo-share-intent/blob/main/example/basic/App.tsx

basic example does not show how to trigger an event upon receipt of sharing
intent. It only has a
On Mon, Jun 24, 2024 at 6:36 AM Anselme Chorein @.***>
wrote:

the basic example handle this use case
https://github.com/achorein/expo-share-intent/blob/main/example/basic/App.tsx
—
Reply to this email directly, view it on GitHub
https://github.com/achorein/expo-share-intent/issues/72#issuecomment-2186603214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABS6UT4PYREPOPLPHM3T5SLZJAOHPAVCNFSM6AAAAABJY7XE5WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBWGYYDGMRRGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

my app has multiple providers too.
On Mon, Jun 24, 2024 at 6:36 AM Anselme Chorein @.***>
wrote:

the basic example handle this use case
https://github.com/achorein/expo-share-intent/blob/main/example/basic/App.tsx
—
Reply to this email directly, view it on GitHub
https://github.com/achorein/expo-share-intent/issues/72#issuecomment-2186603214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABS6UT4PYREPOPLPHM3T5SLZJAOHPAVCNFSM6AAAAABJY7XE5WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBWGYYDGMRRGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

i don't understand, can you give me an example of what type of event you want to handle ?

Need example of useEffect() that can trigger when an incoming share intent arrives in my app.
Not working:
expoShareIntent[scheme] from expoConfig: com.aaa.bbb.ccc
DEBUG  useShareIntent[mount] com.aaa.bbb.ccc {"debug": true, "onResetShareIntent": [Function onResetShareIntent]}
DEBUG  useShareIntent[refresh] null
DEBUG  useShareIntent[to-background] reset intent
DEBUG  expoShareIntent[scheme] from expoConfig: com.aaa.bbb.ccc
DEBUG  expoShareIntent[scheme] from expoConfig: com.aaa.bbb.ccc
DEBUG  useShareIntent[mount] com.aaa.bbb.ccc {"debug": true, "onResetShareIntent": [Function onResetShareIntent]}
DEBUG  useShareIntent[refresh] com.aaa.bbb.cccProtocol://dataUrl=ShareKey#text
DEBUG  expoShareIntent[scheme] from expoConfig: com.aaa.bbb.ccc
DEBUG  useShareIntent[active] refresh intent
DEBUG  useShareIntent[refresh] com.aaa.bbb.cccProtocol://dataUrl=ShareKey#text
DEBUG  expoShareIntent[scheme] from expoConfig: com.aaa.bbb.ccc
DEBUG  useShareIntent[to-background] reset intent
DEBUG  expoShareIntent[scheme] from expoConfig: com.aaa.bbb.ccc
DEBUG  useShareIntent[active] refresh intent
DEBUG  useShareIntent[refresh] com.aaa.bbb.cccProtocol://dataUrl=ShareKey#text
DEBUG  expoShareIntent[scheme] from expoConfig: com.aaa.bbb.ccc
code that is not showing incoming share text:
   React.useEffect ( () => {
         // loop forever

         if ( shareIntent.text ) {
             Alert ( 'text', shareIntent.text );
         }

         if ( shareIntent.webUrl ) {
             Alert ( 'weburl', shareIntent.webUrl );
         }

         if ( shareIntent.files ) {
             Alert ( 'files', JSON.stringify( shareIntent.files ) );
         }

     }, [hasShareIntent] );

     React.useEffect ( () => {
         // loop forever

         if ( shareIntent.text ) {
             Alert ( 'text', shareIntent.text );
         }

         if ( shareIntent.webUrl ) {
             Alert ( 'weburl', shareIntent.webUrl );
         }

         if ( shareIntent.files ) {
             Alert ( 'files', JSON.stringify( shareIntent.files ) );
         }

     }, [shareIntent] );


Add support libc++_shared on android ( v2.1 )

This commit is targeting with 2.1 branch, will open another PR to adapt with v3.0 branch
My reason using primary libc++  build is that will open wider c++ developer audiance.

Could you please squash the commits? See our pr workflow documentation. Thanks!

done, waiting ci status

LGTM @akien-mga?

My reason using primary libc++ build is that will open wider c++ developer audiance.

Please be more specific about the use case, I'm not willing to change the buildsystem of a branch used in production without knowing why it's needed, if at all.

I'm not willing to change the buildsystem of a branch used in production

Yes I see, but libc++_shared is just more maintained  plus with a lot other goodies and licensed under MIT License compared to libstdc++ ABI. I'm not willing to change build system nor adding on it as you can see that on changed files.

These changes should be made in the master branch at any rate, reviewed and merged there, then tested, and eventually backported to the stable branches. We're not merging buildsystem changes in stable branches before master.

These changes should be made in the master branch

OK thanks for the feedback,  will do that certainly when  I have enough time.

Now that #20507 is merged we can consider merging this one too - I think maybe the android_stl check needs to be moved up as was done in #20507?

Now that #20507 is merged we can consider merging this one too - I think maybe the android_stl check needs to be moved up as was done in #20507?

yes I can do that later.

Merged manually as 6e62a1e4d.


Update README.md

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Files
Coverage Δ

test_add_fail.py
100.00% <100.00%> (ø)


ci(ts): remove test for ts-in-js

Summary

Since all output files are now TypeScript, we no longer need to allow JavaScript in our configuration!
(Before this PR the test still failed, but that was due to a small inconcistency in the geo search renderer, that we aren't migrating ATM)
Result

One less test on CI, and no more configuration for checkJS, allowJS in typescript. This means CI is now finally fully green again

Happy to see the green check mark on our commits 😍


Allow more object types for model input and labels

Instead of checking whether the object is a tensor, and if it is using .to() to move it to the right device, we use duck-typing and utilise the .to() method of any object which has one. This means we support higher level torch objects which contain tensors and possess a .to() method to move the entire object to a new device.
We also add support for dictionaries, in the same manner as tuples and lists are currently supported (making a new dict containing moved versions of the original contents).

LGTM. Thanks for the PR


feat: make action more flexible and fix an edge case

This PR:

new parameter dockerfile-path: adds the possibility to specify a custom Dockerfile path (can be useful if a project have the dockerfile inside a folder that is not the project root) - add also an example in the readme
new output manifest-content: just adds the content of the generated file as an output of the action. Were useful to me to debug in the log what actually was written
add a check in the writeDockerFile step, before it was not checking if the file actually existed, and fs.appendFileSync created a brand new file if it doesn't find the one provided as first parameter

nice one, thanks for the hints!


prepare prebuilding

Not meant to merge right away. I'd just like to suggest to add prebuilds for all HAP-Nodejs dependencies. This PR is just meant as a first example, mostly copied from node-serialport. What I'd like to do is not only prebuilding for Mac and Linux amd64/x86 but also for Linux Arm (should be possible with Qemu on Travis). Motivation is that I'd like to use hap-nodejs on a Buildroot based Linux that lacks build tools...
What do you think about that? If you're ok with it I would start to create a Travis/Qemu job and test it.

Interesting, how does this solve the node version dependency issue for pre-compiled binaries? Or did I understand it wrong?

That is done through a build matrix in travis, so if you e.g. want to build for linux amd64, linux arm and macos and 6 different node abis you would have a matrix of 3x6 builds in the travis job. The prebuild-install module then takes care to download the prebuilt artifacts and runs node-gyp only if there is no suitable artifact available. The prebuild-ci module can upload the artifacts to a github release page, see https://github.com/node-serialport/node-serialport/releases as an example.

Is there a free CI system can be used to perform release task for this?

Yes, travis-ci can do that. It's free for public Github projects, the only limit is 50 minutes job excecution time. https://travis-ci.org/


Update Readme of the proyect

📚 Documentation Issue Report
Describe the bug

Currently we want to update the readme so that it can redirect to the contributing file and add a little more value to this readme,

Describe the solution you'd like

We can add the requirements of the project (tools we need to have installed), how to create a branch to be able to contribute and even how to push correctly to not leave the project repo to another site, this would also help people who are starting with github to contribute and feel that the project is friendly.

Additional context

Take other considerations to make the readme user-friendly

@Dorcastunmise could you help us with this issue please ?

Okay then. I'll start working on this. And as soon as the other guy is done, I'll link the "CONTRIBUTING.md ".

LGTM 🚀

Yeah, I noticed. Worked on the assigned task already...sent a PR like an hour ago.

@Dorcastunmise I've posted some comments in this article.


delta: 0.13.0 -> 0.14.0

Description of changes
https://github.com/dandavison/delta/releases/tag/0.14.0

add shell completions for fish

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 189181 run on x86_64-linux 1

2 packages built:

bat-extras.batdiff
delta


download input from sftp

Is there any way i can give input dataframe path as sftp server and metorikku downloads the file and use it?

Yes.
If you're running metorikku with spark-submit use the following command:
spark-submit --packages com.springml:spark-sftp_2.11:1.1.5 --class com.yotpo.metorikku.Metorikku metorikku.jar -c config.yaml

Then in your config file in the input define:
input_sftp:
    file:
      path: /sample.csv
      format: com.springml.spark.sftp
      options:
            host: SFTP_HOST
            username: SFTP_USER
            password: SFTP_PASSWORD

Check out the documentation of all available options here:
https://github.com/springml/spark-sftp

Hi,
Thanks for the quick response.
I am still facing issues as it is not even attempting to download the file
from sftp.
Can you tell me how to run using standalone jar?
Regards
Ravinder
On Sat, 27 Jul 2019, 00:17 Liran Yogev<EMAIL_ADDRESS>wrote:

Yes.
If you're running metorikku with spark-submit use the following command:
spark-submit --packages com.springml:spark-sftp_2.11:1.1.5 --class com.yotpo.metorikku.Metorikku metorikku.jar -c config.yaml
Then in your config file in the input define:
input_sftp:
file:
path: /sample.csv
format: com.springml.spark.sftp
options:
host: SFTP_HOST
username: SFTP_USER
password: SFTP_PASSWORD
Check out the documentation of all available options here:
https://github.com/springml/spark-sftp
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/YotpoLtd/metorikku/issues/208?email_source=notifications&email_token=AMW3XZZUCHGS2ZS4RH4I5JLQBNBDRA5CNFSM4IHA2J5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD25NILY#issuecomment-515560495,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMW3XZ665TVNHOQSG76Y663QBNBDRANCNFSM4IHA2J5A
.

Yes.
If you're running metorikku with spark-submit use the following command:
spark-submit --packages com.springml:spark-sftp_2.11:1.1.5 --class com.yotpo.metorikku.Metorikku metorikku.jar -c config.yaml

Then in your config file in the input define:
input_sftp:
    file:
      path: /sample.csv
      format: com.springml.spark.sftp
      options:
            host: SFTP_HOST
            username: SFTP_USER
            password: SFTP_PASSWORD

Check out the documentation of all available options here:
https://github.com/springml/spark-sftp

Hi,
I am getting below exception:
Exception in thread "main" java.util.NoSuchElementException: None.get
My config file looks like this:
metrics:

C:\metorikku\config\movies_metrics.yml

inputs:
movies:
path: /home/movies.csv
format: com.springml.spark.sftp
options:
host: HOST
username: USER
password: PASSWD
output:
file:
dir: C:\metorikku\output

Hi,
I am getting below exception:
Exception in thread "main" java.util.NoSuchElementException: None.get
Config file looks like this:
`metrics:

C:\metorikku\config\movies_metrics.yml

inputs:
movies:
path: /home/movies.csv
format: com.springml.spark.sftp
options:
host: HOST
username: USER
password: PASSWD
Set custom variables that would be accessible from the SQL
variables:
myFavoriteMovie: 'Princess Bride, The (1987)'
output:
file:
dir: C:\metorikku\output`

I am getting below exception:
Exception in thread "main" java.util.NoSuchElementException: None.get
My config file looks like this:

I think maybe the yaml isn't formatted correctly, can you send the full YAML?

Hi, Please have a look.
sample.txt

Hi, Please have a look.
sample.zip

Change movies to file

Please reopen if still not working


python310Packages.opytimark: init at 1.0.8

Description of changes
Opytimark is a Python library consisting of optimization benchmarking functions.

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Thanks, @fabaff, corrected.

Result of nixpkgs-review pr 202699 run on x86_64-linux 1

2 packages built:

python310Packages.opytimark
python39Packages.opytimark


Uncaught (in promise) ReferenceError: UnityLoader is not defined

I've placed my unity files inside a webgl/ folder in my public directory, I reference them as such:

When I run it I get an error about 'Unexpected token <',

Uncaught SyntaxError: Unexpected token <
Unity.js:88 Uncaught (in promise) ReferenceError: UnityLoader is not defined
at eval (Unity.js:88)
| (anonymous) | @ | Unity.js:88
-- | -- | -- | --
  | Promise.then (async) |   |
  | _instantiate | @ | Unity.js:87
  | componentDidMount | @ | Unity.js:67
  | (anonymous) | @ | ReactCompositeComponent.js:74
  | measureLifeCyclePerf | @ | ReactCompositeComponent.js:13
  | (anonymous) | @ | ReactCompositeComponent.js:74
  | notifyAll | @ | CallbackQueue.js:31
  | close | @ | ReactReconcileTransaction.js:34
  | closeAll | @ | Transaction.js:119
  | perform | @ | Transaction.js:103
  | perform | @ | Transaction.js:99
  | perform | @ | ReactUpdates.js:16
  | flushBatchedUpdates | @ | ReactUpdates.js:41
  | closeAll | @ | Transaction.js:119
  | perform | @ | Transaction.js:103
  | batchedUpdates | @ | ReactDefaultBatchingStrategy.js:13
  | enqueueUpdate | @ | ReactUpdates.js:49
  | enqueueUpdate | @ | ReactUpdateQueue.js:9
  | enqueueSetState | @ | ReactUpdateQueue.js:72
  | ReactComponent.setState | @ | ReactComponent.js:37
  | handleChange | @ | connect.js:4
  | dispatch | @ | createStore.js:80
  | (anonymous) | @ | index.js:104
  | (anonymous) | @ | middleware.js:5
  | (anonymous) | @ | middleware.js:1
  | dispatch | @ | applyMiddleware.js:16
  | (anonymous) | @ | utils.js:5
  | (anonymous) | @ | proc.js:99
  | exec | @ | scheduler.js:11
  | flush | @ | scheduler.js:20
  | asap | @ | scheduler.js:13
  | runPutEffect | @ | proc.js:99
  | runEffect | @ | proc.js:93
  | next | @ | proc.js:63
  | currCb | @ | proc.js:71
  | Promise.then (async) |   |
  | resolvePromise | @ | proc.js:95
  | runCallEffect | @ | proc.js:102
  | runEffect | @ | proc.js:93
  | next | @ | proc.js:63
  | currCb | @ | proc.js:71
  | runSelectEffect | @ | proc.js:109
  | runEffect | @ | proc.js:93
  | next | @ | proc.js:63
  | proc | @ | proc.js:46
  | runForkEffect | @ | proc.js:105
  | runEffect | @ | proc.js:93
  | next | @ | proc.js:63
  | currCb | @ | proc.js:71
  | takeCb | @ | proc.js:95
  | put | @ | channel.js:1
  | (anonymous) | @ | channel.js:5
  | (anonymous) | @ | channel.js:5
  | exec | @ | scheduler.js:11
  | flush | @ | scheduler.js:20
  | asap | @ | scheduler.js:13
  | (anonymous) | @ | channel.js:5
  | emit | @ | channel.js:1
  | (anonymous) | @ | middleware.js:2
  | requestCourse | @ | index.js:239
  | componentWillMount | @ | index.js:60
  | proxiedMethod | @ | createPrototypeProxy.js:44
  | (anonymous) | @ | ReactCompositeComponent.js:79
  | measureLifeCyclePerf | @ | ReactCompositeComponent.js:13
  | performInitialMount | @ | ReactCompositeComponent.js:79
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | _updateRenderedComponent | @ | ReactCompositeComponent.js:169
  | _performComponentUpdate | @ | ReactCompositeComponent.js:164
  | updateComponent | @ | ReactCompositeComponent.js:151
  | performUpdateIfNecessary | @ | ReactCompositeComponent.js:131
  | performUpdateIfNecessary | @ | ReactReconciler.js:56
  | runBatchedUpdates | @ | ReactUpdates.js:37
  | perform | @ | Transaction.js:99
  | perform | @ | Transaction.js:99
  | perform | @ | ReactUpdates.js:16
  | flushBatchedUpdates | @ | ReactUpdates.js:41
  | closeAll | @ | Transaction.js:119
  | perform | @ | Transaction.js:103
  | batchedUpdates | @ | ReactDefaultBatchingStrategy.js:13
  | enqueueUpdate | @ | ReactUpdates.js:49
  | enqueueUpdate | @ | ReactUpdateQueue.js:9
  | enqueueSetState | @ | ReactUpdateQueue.js:72
  | ReactComponent.setState | @ | ReactComponent.js:37
  | update | @ | index.js:1
  | (anonymous) | @ | index.js:1
  | Promise.then (async) |   |
  | _loadModule | @ | index.js:1
  | componentWillMount | @ | index.js:1
  | (anonymous) | @ | ReactCompositeComponent.js:79
  | measureLifeCyclePerf | @ | ReactCompositeComponent.js:13
  | performInitialMount | @ | ReactCompositeComponent.js:79
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | mountChildren | @ | ReactMultiChild.js:69
  | _createInitialChildren | @ | ReactDOMComponent.js:102
  | mountComponent | @ | ReactDOMComponent.js:65
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | mountChildren | @ | ReactMultiChild.js:69
  | _createInitialChildren | @ | ReactDOMComponent.js:102
  | mountComponent | @ | ReactDOMComponent.js:65
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | performInitialMount | @ | ReactCompositeComponent.js:82
  | mountComponent | @ | ReactCompositeComponent.js:74
  | mountComponent | @ | ReactReconciler.js:23
  | mountComponentIntoNode | @ | ReactMount.js:28
  | perform | @ | Transaction.js:99
  | batchedMountComponentIntoNode | @ | ReactMount.js:34
  | perform | @ | Transaction.js:99
  | batchedUpdates | @ | ReactDefaultBatchingStrategy.js:13
  | batchedUpdates | @ | ReactUpdates.js:16
  | _renderNewRootComponent | @ | ReactMount.js:120
  | _renderSubtreeIntoContainer | @ | ReactMount.js:133
  | render | @ | ReactMount.js:145
  | ./app/app.js | @ | app.js:58
  | webpack_require | @ | bootstrap:752
  | fn | @ | bootstrap:121
  | 0 | @ | main.js:7455
  | webpack_require | @ | bootstrap:752
  | (anonymous) | @ | bootstrap:872
  | (anonymous) | @ | bootstrap:872

If I import loader and the webgl template like so:
import cba from 'webgl/Build/UnityLoader.js';
import abc from 'webgl/Build/webgltemplate.json';

I actually get objets back so I don't think it's about the wrong directories, I've also added images to the build folder and run them with <img src='webgl/Build/test.png />' and the image has rendered..

Duplicate of #31

I'm closing this issue due to inactivity, when you have any further questions or need help feel free te reopen this or a new issue.


Would be nice to have a prettiy option over at "scripts", "tests".

I have checked the following:

[X] I've searched existing issues and found nothing related to my issue.

Describe the feature you want to add
Would be nice to be able to prettify your input in the following tabs

Scripts
Tests

and other locations where it could be suitable that i missed.
Mockups or Images of the feature
Scripts

Tests

Nice one, indeed it would be cool


manual_control.py not responding

First at all, many thanks for providing this fantastic and lightweight platform. I am using it to support my current studies in RL and so far it is working very nice, even with no GPU. One thing only, for some reason manual control is not working. The environment appears in the pop-up windows, and apparently key-strokes are detected (arrows, etc.), as there is an output on the Terminal giving feedback on both the key pressed and reward. But on the graphical output, the agent does not seem to react or move, therefore the reward from all manual key inputs is 0, as it is not possible to manually 'solve' the task. Any hints? My environment is as follows:

Virtual environment with Python 3.7.9, on a MacOS 15.2,
gym 0.21.0
gym-minigrid 1.0.2

Thanks!

Hi @ibagur. Can you state which command you used to run manual_control.py, which environment, etc?

Hi @maximecb , many thanks for your quick reply. I basically followed as stated in the README.md:
./manual_control.py --env MiniGrid-Empty-8x8-v0 (Mission: get to the green goal square)
As I said, the graphical pop-up window appears as when running it algorithmically, but does not seem to respond to the manual key inputs. Key strokes are detected though (but nothing moves):
pressed right step=1, reward=0.00 pressed right step=2, reward=0.00 pressed right step=3, reward=0.00 pressed right step=4, reward=0.00
Thanks.

I'm able to reproduce the bug locally. Also on MacOS here. I have to assume that something has changed in matplotlib which is preventing the graphics from being redrawn at every step. Investigating.

I just pushed a fix and uploaded a new minigrid package v1.0.3. Let me know if that works for you.

It works flawlessly now, many thanks for the fix!


[infra-proxy-service] Remove AffectedNodes API and add pagination to GetNodes API

:nut_and_bolt: Description: What code changed, and why?

Remove AffectedNodes API, as GetNodes with customer query able to provide this capability to fetch the affected nodes.

Cookbooks affected nodes
{
    "q": "cookbooks_COOKBOOK_NAME_version:COOKBOOOK_VERSION",
}

Roles affected nodes
{
    "q": "roles:ROLE_NAME",
}

Environment affected nodes
{
    "q": "chef_environment:ENVIRONMENT",
}

GetNodes API added with search & pagination

search_query.q: Search query string have to in the format like :, name:* or name:node-* etc.
search_query.page: page number.
search_query.per_page: number of records per page.

Notes: Added SearchObjectsWithDefaults  wrapper methods on client, so that we can re-use for search list with pagination.

:chains: Related Resources
Fixes: https://github.com/chef/automate/issues/4630
:+1: Definition of Done

Nodes with search and pagination. also, other affected nodes from objects can be retrieved.

:athletic_shoe: How to Build and Test the Change

rebuild components/automate-gateway

rebuild components/infra-proxy-service

To add data using 3rd internal steps https://github.com/chef/automate/blob/master/dev-docs/adding-data/adding_test_data.md#adding-data-to-infra-views

Nodes with default params:

curl -sSkH "api-token: $(get_admin_token)" https://a2-dev.test/api/v0/infra/servers/chef-server-dev-test/orgs/chef-org-dev/nodes?pretty
{
  "nodes": [
    {
      "id": "",
      "name": "node-969656100",
      "check_in": "",
      "uptime": "",
      "platform": "",
      "environment": "_default",
      "policy_group": "",
      "fqdn": "",
      "ip_address": ""
    }],
"page": 0,
"total": 127
}

Nodes with search query params

curl -sSkH "api-token: $(get_admin_token)" 'https://a2-dev.test/api/v0/infra/servers/chef-server-dev-test/orgs/chef-org-dev/nodes?search_query.q=name:node-*&search_query.per_page=5&search_query.page=0'

{
  "nodes": [
    {
      "id": "",
      "name": "node-969656100",
      "check_in": "",
      "uptime": "",
      "platform": "",
      "environment": "_default",
      "policy_group": "",
      "fqdn": "",
      "ip_address": ""
    },
  ],
"page":0,
"total":94
}

:white_check_mark: Checklist

[x] I have read the CONTRIBUTING document.
[x] Tests added/updated?
[ ] Docs added/updated?
[x] All commits have been signed-off for the Developer Certification of Origin.

:camera: Screenshots, if applicable
Signed-off-by: Vivek Singh<EMAIL_ADDRESS>

@vsingh-msys Please commit the changes Signed off by your progress/chef email id. This may block the pipeline.

Does the testing step is not going to work with test data ?

@punitmundra if you going to follow the above testing steps, it will work. do let me know if you facing any issue while testing.


Duplicate pre-release

Might want to delete one of those @ChrisTitusTech

I don't see duplicates. They're a few hours apart, and the one marked by today's date includes a rather major fix (#233).

@lj3954 On my screen there are duplicates and both of them are marked as a Pre-Release.

Those are not duplicates. Once again, read my reply.

Yeah I see now, thanks for the explanation.


'collapseWhitespace' does not collapse non breaking space

Issue
"\u00A0Foo\u00A0\u00A0Boo\u00A0" should collapse to "Foo Boo" but does not.
Solution
In the function 'collapseWhitespace' update
".replace(/[\t\r\n]/g, ' ')"
to
".replace(/[\t\r\n\u00A0]/g, ' ')"

No, it should not, since non breaking spaces are actually rendered and not collapsed by browsers

Ahhh, gotcha. I suppose in my case I should use a regex in the hasText assertion. Some background on how I got here:
My markup:

      Locations

My original assertion which was passing (Ember acceptance test)
assert.equal(find('ul.breadcrumb li:first-child').textContent.trim(), 'Locations');

Codemod refactoring to use qunit-dom and which fails
assert.dom(find('ul.breadcrumb li:first-child')).hasText('Locations');

My refactoring to make it pass
assert.dom(find('ul.breadcrumb li:first-child')).hasText(/Locations/);


job_application functions and tests.

please squash the commits

That's weird @guy9050  (the deleting thing) now I'm deleting it again and squashing the commits.

fixed. :)

please squash the commits

Done. @guy9050


Feat default entity description

Added default entity description to support entity types we have not yet covered:
Entity Description for Unknown Entity

Entity Description for Known Entity With Missing Description File

Resolves: #165

Please let me know when on Dev. And if you know of some companies that are currently "undefined" category as addressed in the PR, please let me know that as well.
Thanks!

That was a lot of scanning over reformatted code to finally find the change :-)

woops, sorry. My code editor automatically lints some things.


Replace rollup build for Vite lib mode

Vitejs have a lib mode for build https://vitejs.dev/guide/build.html#library-mode that uses rollup underhood.
//vite.config.ts
export default defineConfig({
    plugins: [vue(), glsl(), vueJsx()],
    build: {
         lib: {
           entry: resolve(__dirname, 'src/index.ts'),
            name: 'lunchboxjs',
            fileName: 'tres',
         },
    },
})

As for demos, check #39

Good catch, thanks! Marking this as lower-priority for now since the dev/build process is working atm, but this is definitely a good candidate for a future fix.

(wontfix, new version - thanks though!)


Improve iOS 10.3 review dialog support, cut iOS8 support

Improved support of the iOS 10.3 review dialog. Also ensured it works for anyone using the custom dialog closures.
Removed legacy iOS8 alertview support

These changes look great and should be merged, but can you update the README with the changes you made to the public API as well?

@whitepixelstudios +1 for those changes. Any news regarding the README update so we can merge this?


Register biomass burning source_id and institution_id

@mjevanmarle just creating an issue as a placeholder for discussions in finalizing the registration of the biomass burning institution_id and source_id.
Note the CMIP6 contribution had institution_id: VUA (here) and a couple of versioned releases, so source_id entries: VUA-CMIP-BB4CMIP6-1-0, 1-1 and 1-2 (here). I wonder if we want to maintain any consistency with the previous version, or just start again? I see that you've used the previous template so VUA-CMIP-BB4CMIP6-1-0 becomes DRES-CMIP-BB4CMIP7-1-0.
Just a note, while we start to coordinate the collation of these prototype (v0) datasets, and gather feedback, we're aiming to catch these in the "CMIP6Plus" project, in preparation for CMIP7 in a couple of years. This will allow a clean split between the CMIP7 "endorsed" forcing collection, and those that we are working out the kinks on (caught in CMIP6Plus).
We have updated the institution registration a little moving beyond CMIP6; these now depend on the RoR registry (see here), and, as an example, Deltares is already registered - https://ror.org/01deh9c76
@wolfiex @matthew-mizielinski @taylor13 @vnaik60 @znichollscr ping

@mjevanmarle bringing your email here so that we can better track finalizing the format of BB4CMIP+ files. @durack1 ping.
Please find nc icon here a test file with the following changes (compared to previous time):
standard_name = "biomass_burning_’+ +’_flux"
dataset_version_number = "1.0" removed #note the attribute source_version still exists
dataset_version_date = year-month added
mip_era = "CMIP7" -> kept CMIP7 @Durack, Paul J. can you let me know whether this should be CMIP7 or CMIP6+?
Source_id : changed to 'DRES-CMIP-BB4CMIP6+-1-0' #we thought the dataset should be called BB4CMIP6+ (that sounds like a better name, because we mostly extended). This also is reflected by the name of the document which is in the example: H2-em-biomassburning_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP6+-1-0_gn_190001-202212.nc
molecular weight  added as variable[species].molecular_weight: 'molecular weight of '   ':  <MOLECULAR_WEIGHT> #based on excel shared b y guido
:data_usage_tips ->string is removed
Could you confirm that the test file is correct or changes are needed?

@mjevanmarle great to see progress!
I really don't think "+" characters are going to play well across any of the infrastructure, so I would avoid using them in filenames and other metadata where we can CMIP6+ -> CMIP6Plus would be far safer.
To attempt to demystify the process, I figured attempting to tabulate how data will be identified that a) already exists (CMIP6), b) almost exists (the current working files) and c) will exist as final CMIP7 versions might be a good way to visualize this, see below

MIP era
institution_id
source_id
notes

CMIP6
VUA
VUA-CMIP-BB4CMIP6-1-2
finalized no change; plus the old datasets that are not currently available for download VUA-CMIP-BB4CMIP6-1-0, 1-1

CMIP6Plus
DRES
DRES-CMIP-BB4CMIP7-1-0?
working prototype published June 2024; capturing data in a pre-CMIP7 mip-era with an explicit intention of learning by doing

CMIP7
DRES
DRES-CMIP-BB4CMIP7-1-3?
finalized datasets published ~Jan, ~Mar 2025 historical/piControl; Guessing it might take a little iteration 1.0, 1.1, 1.2, and 1.3 or similar to get "final" data right

I also was uncomfortable with the + sign, but don't know of any specific anticipated problems. the source_id is incorporated in file names, directory structures, unique identifying strings of datasets and the like, seems like a risk we shouldn't take.

Thanks Paul and Karl. I agree with the table above and use the following for the current release:
standard_name = "biomass_burning_’+ +’_flux"
dataset_version_date = year-month added
mip_era = "CMIP6Plus"
Source_id : changed to 'DRES-CMIP-BB4CMIP7-1-0'
@durack1 Do you want me to add version_number = "1.0" as well? If you confirm, I will run all the files.
1 more question: is there a file size limit?

@mjevanmarle the above looks spot on. And yes, please add that version_number = 1.0 so we can track any updates against this version.
Is it possible to generate a single file with the updated entries and then provide me a link, I can quickly review this and then get back to you with any final nits before the whole dataset can be produced. There are a couple of examples of identifiers which other datasets have used that would be could to homogenize "dataset_version_date" is something I don't believe has been used before. Regarding "standard_name", ideally, this represents an entry in the CF standard name table (see here), which we don't have for these data, not sure whether we remove this, @taylor13?
This is great 1.0!

I added dataset_version_date, because Vaishali proposed to have a date indication added to the file. Do you have a better suggestion for this descriptor?
I have removed standard_name. In the CF list I see: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires which comes closest, but we also provide all other species.
Therefore this is all listed in the long_name. Probably there are more issues, so if you could check the files here, that would be great @durack1

@mjevanmarle apologies for the radio silence. I've now managed to work through all the information sources, and have registered your DRES-CMIP-BBCMIP7-1-0 dataset, see:
https://github.com/PCMDI/input4MIPs_CVs/blob/1f60f1015bdbd81790884e0494070d236315af4d/input4MIPs_source_id.json#L1290-L1330
I also took a pass at the previously published data e.g. VUA-CMIP-BB4CMIP6-1-2, pulling this into the same consistency as the above, see:
https://github.com/PCMDI/input4MIPs_CVs/blob/bd77f1c0acaabeef6d038d3266cf673d89cab8de/input4MIPs_source_id.json#L7376-L7418


docs(golang driver): add some comments for use with GoDoc

some formatting changes were made automatically with gofumpt

hmm perhaps writing examples could be more beneficial, made that PR because the driver felt somewhat confusing to me at first. see other database libraries on godoc for comparison, like pgx or go-sqlite3

Though if it may cause any merge conflict with anything that changes the codebase, please just merge the code changes first and then I'd happily rebase and remove any outdated comments

@mjholub You should be able to rebase your PR's local branch with the AGE master and then do a force push to your remote mjholub:go-driver-documentation branch. That will cause the PR to be updated and should restart all of the PR checks.

@jrgemignani yeah I know, it appears there are no conflicts though

@mjholub Please fill out the optional extended description with a brief (few lines) description of your changes. You will likely need to do this locally and force push it to your remote branch to update this PR.

@mjholub Can you please make the update so that I can merge the PR :)

I'll take care of it soon


Simplification/correction of initial run instructions.

If you want you can drop the bash pipe-ing ... but I would at least recommend adding the runes to start the docker container and correcting "copy cp<PHONE_NUMBER>2:/opt ./optfs" to "docker cp ..... "

I suppose an advanced user would know what to do and either wouldn't need it or would understand it, and a beginner could simply copy and paste the whole thing without needing to understand it - seems like a good idea.


Auto-generated report: errors occurred upon startup

Please describe what you were doing when this error happened.
Specifications

OS: win32
IPFS Desktop Version: 0.13.0
Electron Version: 9.3.2
Chrome Version: 83.0.4103.122

Error
TypeError: shell.openItem is not a function
    at click (C:\Users\Neo\AppData\Local\Programs\IPFS Desktop\resources\app.asar\src\tray.js:141:32)
    at MenuItem.click (electron/js2c/browser_init.js:65:1624)
    at Function.executeCommand (electron/js2c/browser_init.js:73:1102)

Thanks, @NeoGe-IPFSMain. Are you able to successfully run Desktop despite this error?

Hi, @jessicaschilling. No, I am not able to run it with this error.

@NeoGe-IPFSMain Thanks for the context -- please accept apology for having to run an earlier version in the meantime. @lidel and @rafaelramalho19 -- can you please have a look? Related to https://github.com/ipfs-shipyard/ipfs-desktop/issues/1570 perhaps?

@NeoGe-IPFSMain which menu item are you clicking before this error occurs?

@jessicaschilling No worries!
@lidel This is happening without any interactions. I double-clicked the IPFS Desktop shortcut on my desktop, but it refused to open. Right-click the icon on my taskbar, it shows "IPFS has Errored".
It's been a while since the last time I used IPFS Desktop. I tried the restart and reinstall (not clean), this error remains.

@NeoGe-IPFSMain We're actively triaging this right now - are you OK in the meantime using the CLI, or the CLI as daemon plus webui.ipfs.io?

@jessicaschilling CLI works fine. IPFS Desktop would be up running without an issue if I manually use any shell to run the IPFS daemon. But once I close the shell, IPFS Desktop will stop running and reporting the error.

@NeoGe-IPFSMain Thanks for the details - just wanted to make sure you weren't completely blocked while we worked on a fix.

@jessicaschilling No worries, thanks!


Piece wize basebead

Updating base bead from issue https://github.com/votca/csg/pull/381/files:

basebead identity is removed, and flattened to local variable
noexcept keyword is added to methods
const reference is used in methods
Molecule Item is removed and back pointer to molecule object is replaced with molecule id
pragma once added
header guards updated
default ids and types are set to tools::topology_constants

[ 48%] Building CXX object xtp/src/libxtp/CMakeFiles/votca_xtp.dir/gwbse/bse_operator.cc.o
cd /home/votca/votca/build/xtp/src/libxtp && /usr/lib64/ccache/g++  -DDEBUG -Dvotca_xtp_EXPORTS -I/home/votca/votca/build/xtp/src/libxtp -I/home/votca/votca/xtp/include -I/home/votca/votca/build/xtp/include -I/home/votca/votca/csg/include -I/home/votca/votca/tools/include -I/home/votca/votca/build/tools/include -isystem /usr/include/eigen3  -Wall -Wextra -Wpedantic -Wshadow -Wconversion -Werror -fopenmp -g -fPIC   -std=c++14 -o CMakeFiles/votca_xtp.dir/gwbse/bse_operator.cc.o -c /home/votca/votca/xtp/src/libxtp/gwbse/bse_operator.cc
/home/votca/votca/csgapps/orientcorr/orientcorr.cc: In member function 'bool MyWorker::FoundPair(votca::csg::Bead*, votca::csg::Bead*, const Vector3d&, double)':
/home/votca/votca/csgapps/orientcorr/orientcorr.cc:227:11: error: 'class votca::csg::Bead' has no member named 'getMolecule'; did you mean 'getMoleculeId'?
  227 |   if (b1->getMolecule() == b2->getMolecule()) {
      |           ^~~~~~~~~~~
      |           getMoleculeId
/home/votca/votca/csgapps/orientcorr/orientcorr.cc:227:32: error: 'class votca::csg::Bead' has no member named 'getMolecule'; did you mean 'getMoleculeId'?
  227 |   if (b1->getMolecule() == b2->getMolecule()) {
      |                                ^~~~~~~~~~~
      |                                getMoleculeId
gmake[2]: *** [csgapps/CMakeFiles/orientcorr.dir/build.make:66: csgapps/CMakeFiles/orientcorr.dir/orientcorr/orientcorr.cc.o] Error 1
gmake[2]: Leaving directory '/home/votca/votca/build'
gmake[1]: *** [CMakeFiles/Makefile2:2966: csgapps/CMakeFiles/orientcorr.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

Requires that https://github.com/votca/votca/pull/235 is merged.

This one needs to be merged next, @JensWehner please review!

@JensWehner  they have been, which ones are you referring too?


Support Active Record Model for token management

Add support to manage token as active record model.
Glueby::Contract::AR::Token has the following fields.

color_id : color identifer
payload: pubkey script for reissuable token.

And the following methods.

self.issue!(issuer, token_type , amount)

return Token instance and Glueby::Contract::AR::Tx::Issue instance

reissue!(issuer, amount)

return Glueby::Contract::AR::Tx::Reissue

transfer!(sender, receiver, amount)

return Glueby::Contract::AR::Tx::Transfer

burn!(sender, amount)

return Glueby::Contract::AR::Tx::Burn

Tx models should be defined also.

Glueby::Contract::AR::Tx::Issue
Glueby::Contract::AR::Tx::Reissue
Glueby::Contract::AR::Tx::Transfer
Glueby::Contract::AR::Tx::Burn

These models have

txid (internal use)
one or two relations to Wallet(sender and/or receiver).
amount

Note that this feature does not suppose to use ActiveRecordWalletAdapter, so we can use this feature with TapyrusCoreWalletAdapter.

issue! is a class method that returns new Token and Tx::Issue,
other methods (transfer, burn! and reissue!) are the instance methods in Token model.
alice = Glueby::Wallet.create
bob = Glueby::Wallet.create

token, issue_tx = Token.issue!(issuer: alice, token_type: REISSUABLE, amount: 100_000_000)

transfer_tx = token.transfer!(sender: alice, receiver: bob, 10_000)

burn_tx = token.burn!(sender: alice)

We need also two rake task like timestamp feature.

task that broadcasts tapyrus transaction whose status is "init" and updates status from "init" to "broadcast"
task that confirms blocks and updates status from "broadcasted" to "finalized"

Token class methods is like this:
        # Create new token and transaction for issue it with specified amount and token type.
        # REISSUABLE token can be reissued with #reissue! method, and
        # NON_REISSUABLE and NFT token can not.
        # Amount is set to 1 when the token type is NFT
        #
        # @param issuer_wallet_id [String]
        # @param token_type [Tapyrus::Color::TokenTypes]
        # @param amount [Integer] amount to be issued.
        # @return [Array] instance of Glueby::Contract::AR::Token and Glueby::Contract::AR::Tx::Issue
        # @raise [InsufficientFunds] if wallet does not have enough TPC to send transaction.
        # @raise [InvalidAmount] if amount is not positive integer.
        # @raise [UnsupportedTokenType] if token is not supported.
        def self.issue!(issuer_wallet_id:, token_type: Tapyrus::Color::TokenTypes::REISSUABLE, amount: 1)

        # Re-issue the token with specified amount.
        # A wallet can issue the token only when it is REISSUABLE token.
        #
        # @param issuer_wallet_id [String]
        # @param amount [Integer]
        # @return [Glueby::Contract::AR::Tx::Reissue]
        # @raise [InsufficientFunds] if wallet does not have enough TPC to send transaction.
        # @raise [InvalidAmount] if amount is not positive integer.
        # @raise [InvalidTokenType] if token is not reissuable.
        # @raise [UnknownScriptPubkey] when token is reissuable but it doesn't know script pubkey to issue token.
        def reissue!(issuer_wallet_id:, amount:)

        # Send the token to other wallet
        #
        # @param sender_wallet_id [String] wallet to send this token
        # @param receiver_wallet_id [String] wallet to receive this token
        # @param amount [Integer]
        # @return [Glueby::Contract::AR::Tx::Transfer]
        # @raise [InsufficientFunds] if wallet does not have enough TPC to send transaction.
        # @raise [InsufficientTokens] if wallet does not have enough token to send.
        # @raise [InvalidAmount] if amount is not positive integer.
        def transfer!(sender_wallet_id:, receiver_wallet_id:, amount: 1)

        # Burn token
        # If amount is not specified or 0, burn all token associated with the wallet.
        #
        # @param sender_wallet_id [String] wallet to send this token
        # @param amount [Integer]
        # @return [Glueby::Contract::AR::Tx::Burn]
        # @raise [InsufficientFunds] if wallet does not have enough TPC to send transaction.
        # @raise [InsufficientTokens] if wallet does not have enough token to send transaction.
        # @raise [InvalidAmount] if amount is negative integer.
        def burn!(sender_wallet_id:, amount: 0)

I think

Does checking the TPC or token amount for issuing/sending/burning tokens have a significant impact on performance?
Is it possible that issuer and Re-issuer of the token are different?


Difficulties using IDA for computing smooth Cholesky decompositions

The computational problem is described here. The function pcplyap, used in what follows, computes the Cholesky factor of the nonnegative definite solution of a periodic differential Lyapunov equation. This function relies on the IDA implicit DAE solver. In the example given below, the Lyapunov differential equation is solved repeatedly for i = 1, ... , 100 on intervals [(i-1)*dt,i*dt], where dt = 2π/100 and in each case a consistent initialization of IDA is ensured by slightly perturbing  the "normal" initialization with a zero matrix.
To overcome various IDA failures, I am calling IDA via the common interface as IDA(;max_nonlinear_iters = 10, nonlinear_convergence_coefficient), where   nonlinear_convergence_coefficient is increased 10 times if a failure occurs and the computation is repeated with the increased value. Maximum 3 iterations are allowed, but often the second iteration is already successful. This strategy sometimes succeeds to compute a satisfactory solution. A typical run is shown below for  nonlinear_convergence_coefficient = 0.33 (the default value):
julia> @time Ut = pcplyap(At,Bt; adj = false, K = 100, reltol = 1.e-10, abstol = 1.e-10);

[IDAS ERROR]  IDASolve
  At t = 0.753982 and h = 4.47541e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 3.3)

[IDAS ERROR]  IDASolve
  At t = 2.38761 and h = 2.39983e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 3.3)
  5.178094 seconds (59.90 M allocations: 1.961 GiB, 7.77% gc time, 2.62% compilation time: 100% of which was recompilation)

julia> @time Ut = pcplyap(At,Bt; adj = false, K = 100, reltol = 1.e-10, abstol = 1.e-10);

[IDAS ERROR]  IDASolve
  At t = 0.816814 and h = 6.47231e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 0.33)

[IDAS ERROR]  IDASolve
  At t = 0.879646 and h = 6.70747e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 0.33)

[IDAS ERROR]  IDASolve
  At t = 0.942478 and h = 6.91945e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 0.33)

[IDAS ERROR]  IDASolve
  At t = 2.19911 and h = 6.91945e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 0.33)

[IDAS ERROR]  IDASolve
  At t = 2.26195 and h = 6.70747e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 0.33)

[IDAS ERROR]  IDASolve
  At t = 2.32478 and h = 6.47231e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 0.33)
  7.774406 seconds (91.98 M allocations: 2.995 GiB, 8.11% gc time, 1.69% compilation time: 100% of which was recompilation)

With nonlinear_convergence_coefficient = 3.3, the behaviour is better:
julia> @time Ut = pcplyap(At,Bt; adj = false, K = 100, reltol = 1.e-10, abstol = 1.e-10);

[IDAS ERROR]  IDASolve
  At t = 0.753982 and h = 4.47541e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 3.3)

[IDAS ERROR]  IDASolve
  At t = 2.38761 and h = 2.39983e-314, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 3.3)
  5.321037 seconds (59.90 M allocations: 1.961 GiB, 8.44% gc time, 2.63% compilation time: 100% of which was recompilation)

while with nonlinear_convergence_coefficient = 33.0, the behaviour is different:
julia> @time Ut = pcplyap(At,Bt; adj = false, K = 100, reltol = 1.e-10, abstol = 1.e-10);

[IDAS ERROR]  IDASolve
  At t = 0.188496 and h = 3.45614e-142, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 33.0)
(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.MaxIters, 33.0)
(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.MaxIters, 33.0)
(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.MaxIters, 33.0)

[IDAS ERROR]  IDASolve
  At t = 3.70708 and h = 2.12494e-108, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 33.0)

[IDAS ERROR]  IDASolve
  At t = 5.7177 and h = 2.12494e-108, the corrector convergence failed repeatedly or with |h| = hmin.

(iter, sol.retcode, nonlinear_convergence_coefficient) = (1, SciMLBase.ReturnCode.ConvergenceFailure, 33.0)
  8.820958 seconds (101.46 M allocations: 3.311 GiB, 7.60% gc time)

The good news are that in all these runs, the computed solutions are usable and fit well with the symmetric solution computed with another method!
I have two questions regarding such a behaviour of IDA.

Are any recommendations or known tricks to select  nonlinear_convergence_coefficient or other parameters to avoid the above failures ?
Is any way to get rid of the error messages of the form

[IDAS ERROR]  IDASolve
  At t = 0.188496 and h = 3.45614e-142, the corrector convergence failed repeatedly or with |h| = hmin.

?
Thanks in advance for any help.

Are you sure that your system is an index-1 DAE? If it's a higher index, then you'd expect to get this kind of behavior.

Sorry for this late reply, but I was not reachable for communication in the last three weeks.
This problem, in its simplest form, is essentially to integrate a square-root quantity as described in #954, on an interval [0,T], with zero initial condition. I am only interestd in the final value at T. I was not able to find a solution of this problem in the literature for the matrix case formulated here.
My understanding is that there are two basic difficulties when using implicit solvers to solve this problem:

The initial condition of derivative is infinite for zero initial condition;
Non-uniqueness of the solution of the equation for the derivative computation, because of non-uniqueness of square-root (both + an - values are OK).

The first aspect I tried to handle using a large value of derivative corresponding to a small perturbation of the intial condition. This allows to consistently initialize IDA, which then starts the integration without any complaints. This works well for my problem setting, because the effect of the initial perturbation is largely attenuated (practically disapears if the final time T is sufficiently large). This approach can be also extended to the matrix case.
For the second aspect I relied on the internal linear solver of IDA, which for the scalar case works well, but produced the errors already mentioned. I managed to overcome failures for a 2x2 matrix case, by simply catching the error and increasing a solver parameter by a factor of 10. This certainly is not a general approach, but occasionaly works. I implemented also an explicit solver based solution, where similar convergence issues may occur (probably because of lack of smoothness of derivatives).
I hope very much that a robust solution of this problem, formulated either as ODE or DAE, should be possible, with the same benefits for accuracy as in the case of positive algebraic Lyapunov equations.
Answering your question: To be honest, I don't know if this problem is an index-1 DAE or not. What would imply the fact that it can be also reformulated as an explicit ODE, with the caveat of possible non-uniqueness of derivatives?

Equations with a starting singularity often need to use a special approach, such as by specifying it as a BVP and solving via a boundary value problem solver. The non-uniqueness issue is what would generally be handled through state selection types of things.
But we can take this elsewhere. This doesn't seem to be an issue with IDA but instead is the type of problem where an algorithm like IDA would be unstable.


Craft 4 support

I realise how much i depend on this field for a particular project. Will there be a Craft 4 version?

@joomkit This is the first request for it. We’ll try and get support for Craft 4 as soon as possible. 👍🏻

@joshuabaker We have several projects that would also need this plugin to be updated before we can move them to Craft 4. Thanks for a great plugin!

We’ve also got some sites that depend on this. Update is currently planned for November.

Any update on this?

@joomkit Thanks for your patience. I’m sorry to report that we’ve cancelled plans for a Craft 4 version of this field and will not be maintaining it further.
I’ll update the repository with the notice shared on the Plugin Store entry. Following Andrew’s recent release of Code Field that’s available for free it seemed unreasonable to continue maintaining and charging for something equivalent. Both use the TEXT column type so will be interoperable.


Update pinned versions

I think this is good to go, gonna test it in the morning real quick.

one quick additional release of WT later, I'm just going to go ahead and merge this


Update GreetingController.java

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: junibutler
If they are not already assigned, you can assign the PR to them by writing /assign @junibutler in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/meow

@junibutler:

In response to this:

/meow

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

/approve

/approve


Unroll improvements

Add support of using positional params in unroll and increase the unroll limit to 100.
Example:
% sudo ./src/bpftrace -e 'BEGIN { unroll($1) { printf("hi\n"); } }' 5
Attaching 1 probe...
hi
hi
hi
hi
hi
^C

Do you think it would work to rewrite unroll() as a while loop (based on #1066)? I think it would result in less byte code. I can't think of any reasons why it would break existing programs.

Hmm except on systems without loop support.

Fixed parser.yy. Thanks @fbs
probe.interval_order tests failed for some reason, but I believe it wasn't related to this PR.

Do you think it would work to rewrite unroll() as a while loop (based on #1066)?

I think it would, but potentially unrolling optimize an execution speed so I guess keeping unrolling as is is good.

probe.interval_order tests failed for some reason, but I believe it wasn't related to this PR.

It always was a bit flaky but the new CI seems to have made it worse, got a commit to remove it in #1066

Bit curious where the 100 came from (or 20 for that matter). What is your usecase here? :)

Actually there is no particular reason for 100, I just want to benchmark bpftrace (and BPF program) performance and unrolling is an easy way to generate long instructions. I feel 20 is a bit small.  Maybe introducing BPFTRACE_MAX_UNROLL env variables is better. I think the limiting is useful because it helps us to prevent unrolling a large number of loop which consequently causes a stack overflow or something (this is especially useful when fuzzing since fuzzer generates unexpected inputs)
By the way, it is easy to circumvent unroll limitation: unroll(10) { unroll(10) { $i++; } }.

Reminder to add a changelog entry for this (#1255) before merging

Rebased onto master and updated a changelog.


Add poststart check as a systemd unit

High Level Description
Adding node poststart checks as a systemd unit.
This will be followed by one for prestart and cluster checks.
Related Issues
https://jira.mesosphere.com/browse/DCOS_OSS-1408
Checklist for all PR's

[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

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
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and Review Process
What is the review process and when will my changes land?
All PRs require 2 approvals using github's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review

@mesosphere-mergebot label Work in progress

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready for review

@branden @mnaboka this pr is ready for review

Just noticed another issue while testing this manually: when checks are run out-of-band of dcos-poststart-checks.service, they fail if dcos-poststart-checks.service isn't healthy. That means if this unit fails, poststart checks will never pass on that node until dcos-poststart-checks.service is reactivated and succeeds. This is a problem since we publish the checks CLI  (and eventually the API) for external use, so people may indeed run checks at any time outside of this unit, and we shouldn't give them an arbitrary wait or a misleading failure. I think we'll need to teach the dcos-checks components subcommand to ignore the health of the checks units.

@mesosphere-mergebot bump-ee

@branden @mnaboka this is updated now, ready for review

@mesosphere-mergebot label Work in progress

Logs:
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]: {
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:   "status": 0,
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:   "checks": {
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:     "clock_sync": {
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:       "output": "Clock is synced\n",
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:       "status": 0
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:     },
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:     "components_master": {
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:       "output": "",
Dec 11 19:23:03 ip-10-0-7-189.us-west-2.compute.internal dcos-diagnostics[5419]:       "status": 0```

Failing systemd unit:

ip-10-0-7-189 core # systemctl status dcos-checks-poststart.service
● dcos-checks-poststart.service - DC/OS Poststart Checks: Run node-poststart checks
Loaded: loaded (/opt/mesosphere/packages/dcos-checks--72a494f207d7751fe6bd07f9aa174daa68ba3446/dcos.target.wants/dcos-checks-poststart.service; enabled; v
Active: failed (Result: exit-code) since Mon 2017-12-11 19:27:31 UTC; 7s ago
Process: 6505 ExecStart=/usr/bin/fail (code=exited, status=203/EXEC)
Main PID: 6505 (code=exited, status=203/EXEC)
Results without excluding components
```ip-10-0-7-189 core # /opt/mesosphere/bin/dcos-checks --role master components
component DC/OS Poststart Checks has health status 1```

Results excluding components

ip-10-0-7-189 core # /opt/mesosphere/bin/dcos-checks --role master components --exclude=dcos-checks-poststart.timer,dcos-checks-poststart.service
ip-10-0-7-189 core # echo $?
0

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready for Review

@branden @mnaboka this is ready for review

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ship it


Need to find string from ruby output

Cookbook version
[Version of the cookbook where you are encountering the issue]
Chef-client version
13.4.19
Platform Details
centos
Scenario:
i am writing recipe to list all attached volumes to the instance
Steps to Reproduce:
#!/usr/bin/env/ruby
require 'socket'
Node details
compartment_id    = "abc"
REGION            = "dsdss"
Insid             = "dfdfd"
Define the command to provision the instance
get_vol_list_cmd = [
"oci compute volume-attachment list",
"--compartment-id '#{compartment_id}'",
"--instance-id  #{Insid}"
].join(" ")
vol_id = nil
IO.popen(get_vol_list_cmd) do |pipe|
begin
while line = pipe.readline
puts line
if line =~ /^"id": ("ocid1.*)$/
vol_id  = $1.strip
break
end
end
rescue EOFError
# done
end
end
if vol_id .nil?
puts "ERROR: Unable to get new instance's Volumes Id's"
exit -1
end
Expected Result:
I am expecting all "id": "ocid1.volumeattachment.fsdfssds"
string should be stored in one variable or in file so that i can use it in further steps
Actual Result:
{
  "attachment-type": "iscsi",
  "availability-domain": "dsfss",
  "chap-secret": null,
  "chap-username": null,
  "compartment-id": "dfsfs",
  "display-name": "fdssss",
  "id": "dfdfd",
  "instance-id": "ghfffgf",
  "ipv4": "xx.xx.xx.xx",
  "iqn": "sdfsdfsd",
  "lifecycle-state": "ATTACHED",
  "port": 3260,
  "time-created": "2017-11-01T12:16:05.845000+00:00",
  "volume-id": "dsfdsfs"
}

]
}
ERROR: Unable to get new instance's Volumes Id's
It is not able to store result in vol_id variable.
Can you please help in identifying vol_id for instance?

Resolved by myself


Initial reporter stake and pre-filled stake should be totalled up at the bottom

Build

this is incorrect.
open reporting the user gets REP doesn't stake REP.
they can stake pre-filled, but that shouldn't be added to REP user is going to get.
for designated reporting the REP amounts need to be summed.

@bthaile the above is a screenshot from designated reporting. It's saying 'open reporting winning stake' for some reason but this is an error and I've created a separate ticket for that.
I've just gone through it again to double check and this what opens from my Designated Reporting


Expecting window.local === window.parent limits use of this package

Thanks for the wrapper! One issue I've found is the extremely limiting requirement in which you've required under runWithAdal() that window === window.parent. For my use case I am trying to develop a VSTS Extension that lives within a website, so of course my code never passes this clause. Perhaps it might be helpful to expand the package so that users could either specify a regex for the root/context they expect to be working out of, or an alert if they don't pass the window === window.parent clause? Let me know what you think!

adal.js use iframes for silent login so if we do not put that condition, you will run React App on iframe too....

@salvoravida having this same issue. Trying to embed a web page with react-adal inside another web page using an iframe. Can you suggest a work around?

I'm trying to use this inside a Teams Tab which uses iframes. I'll admit the authentication flow for Teams is confusing to say the least, but I thought that was a primary use case for this library.