Refactor v2

Refactored go-sdk v2 :

Removed pkg and mock package . There is only one package keploy
Modified mocking feature

Changes Testsuit to Name in config
Added Delay param in config
Made keploy.New return error
Added few more checks and error in keploy.New

Updated readme accordingly

How to test Mock/stub feature :

Install keploy binary considering the changes in this PR
Setup gin-mongo app and import go-sdk
Add given unit test file in main_test.go for recording Mock

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
	"net/http/httptest"
	"testing"

	"github.com/gin-gonic/gin"
	"github.com/keploy/go-sdk/v2/keploy"
)

func setup(t *testing.T) {
	err := keploy.New(keploy.Config{
		Name:             "TestPutURL",
		Mode:             keploy.MODE_TEST,
		Path:             "/home/ubuntu/dont_touch/samples-go/gin-mongo",
		EnableKeployLogs: false,
		Delay:            10,
	})
	if err != nil {
		t.Fatalf("error while running keploy: %v", err)
	}
	dbName, collection := "keploy", "url-shortener"
	client, err := New("localhost:27017", dbName)
	if err != nil {
		panic("Failed to initialize MongoDB: " + err.Error())
	}
	db := client.Database(dbName)
	col = db.Collection(collection)
}

func TestGetURL(t *testing.T) {

	// Setting up Gin and routes
	r := gin.Default()
	r.GET("/:param", getURL)
	r.POST("/url", putURL)

	// Assuming we already have a shortened URL stored with the hash "test123"
	req, err := http.NewRequest(http.MethodGet, "https://www.example.com/Lhr4BWAi", nil)
	if err != nil {
		t.Fatalf("Couldn't create request: %v\n", err)
	}

	w := httptest.NewRecorder()

	r.ServeHTTP(w, req)

	// We're just checking if it can successfully redirect
	if w.Code != http.StatusSeeOther {
		t.Fatalf("Expeced HTTP 303 See Other, but got %v", w.Code)
	}
}

func TestPutURL(t *testing.T) {

	defer keploy.KillProcessOnPort()
	setup(t)

	r := gin.Default()
	r.GET("/:param", getURL)
	r.POST("/url", putURL)

	data := map[string]string{
		"url": "https://www.example.com",
	}
	payload, err := json.Marshal(data)
	if err != nil {
		t.Fatalf("rfe: %v\n", err)
	}

	req, err := http.NewRequest(http.MethodPost, "/url", bytes.NewBuffer(payload))
	if err != nil {
		t.Fatalf("Couldn't create request: %v\n", err)
	}
	req.Header.Set("Content-Type", "application/json")

	w := httptest.NewRecorder()
	r.ServeHTTP(w, req)

	// Checking if the URL was successfully shortened and stored
	if w.Code != http.StatusOK {
		t.Fatalf("Exect HTTP 200 OK, but got %v", w.Code)
	}

	var response map[string]interface{}
	err = json.Unmarshal(w.Body.Bytes(), &response)
	if err != nil {
		t.Fatalf("Failed to unmarshal response: %v\n", err)
	}
	fmt.Println("response-url" + response["url"].(string))

	if response["url"] == nil || response["ts"] == nil {
		t.Fatalf("Response did not contain expected fields")
	}
}

Make sure your database is running and then run the test file . Once the test is done mocks will be created in the path mentioned as stubs folder.
To run in test mode Change the mode to MODE_TEST, turn off the database and run the tests.

Hi @charankamarapu ,
I tried the instructions given in the PR and was able to create the stubs folder. But I'm unable to run those tests. Can you please tell me how to do so?

Please do not comment on closed PR. You can create an issue and describe the problem there.


Corrupted stream on Android TV (TCL 55P725)

Host (Server) specs:
CPU - Ryzen 1400
GPU - RX560 2GB OSS Mesa drivers
RAM - 8GB
OS - Ubuntu 22 LTS
Encoder - H265 (VAAPI). H264 doesnt work at the moment for me.
Client specs
Model - TCL 55P725
Platform - RT51 (chipset)
CPU - 64-bit A55×4 1.3GHz
GPU - G31x2 800MHz
RAM - DDR3-1866: 2 gb
OS - Android R
Logs from Wolf container when issue persists
wolf_log.txt
After starting the Steam container Stream is corrupted, also corrupts rendering of Android itself (flickering in the corners, and lower framerate across all Android UI) Only solution - Rebooting the TV, killing stream or Moonlight didnt help

message.txt
Moonlight logs with Steam image


⚠ Bofrost.es has degraded performance

In 92676fe, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1105 ms

Resolved: Bofrost.es performance has improved in e7898f2 after 6 minutes.


EWW Filling ~/.chache With Massive 500G Log [BUG]

Checklist before submitting an issue

[X] I have searched through the existing closed and open issues for eww and made sure this is not a duplicate
[X] I have specifically verified that this bug is not a common user error
[X] I am providing as much relevant information as I am able to in this bug report (Minimal config to reproduce the issue for example, if applicable)

Description of the bug
A massive log file is generated in ~/.cache.
Here is the (eww-related) output of ls -la in ~/.cache:
.rw-r--r--  52k isaac 20 Apr 15:45  eww_9056c77df6de77d0.log
.rw-r--r-- 267M isaac 20 Apr 09:14  eww_a10aa33e2445ee6b.log
.rw-r--r-- 531G isaac 20 Apr 16:00  eww_b8f4ff56cd76310e.log
.rw-r--r--  83M isaac 20 Apr 15:43  eww_bf24495fb8cff968.log
.rw-r--r--  22k isaac 20 Apr 15:46  eww_cb86edef4769841d.log
.rw-r--r-- 836k isaac 20 Apr 15:37  eww_f50d6af04696deab.log
.rw-r--r-- 2.1M isaac 20 Apr 06:02  eww_fa678f477ccfc02e.log
I deleted the file and purged my trash yesterday and checked to ensure the space was free, but after a day it's already back.
Reproducing the issue
My configuration is visible here: https://gitlab.com/IsaacBrown92/dotfiles/-/tree/main/home-manager/modules/eww
Other than that I have no idea how to reproduce the issue. I cannot tell why the behaviour is happening.
Expected behaviour
No response
Additional context
No response

Lmao, okay I knew I should really put logs somewhere else, or do some sort of log rotation, but a 500 gig file is a very good reason to start implementing that now.
Thanks, I hope your hard drive is doing well ^^'

As a workaround you could set a custom path for logging, I use /tmp which is tmpfs: env XDG_CACHE_HOME=/tmp eww open ...

Issue of the year, I got a 92.7G one on a 128G SSD I'm ready to rumble 🤣

Any specific line the log file is filled with ? Because that would help debugging this

@viandoxdev no sorry, I didn't bother to open it, system was overheading.
I will now pay attention to it.

Im having the same issue as mentioned above. Im using someone elses eww bar, so i dont really know how to configure it to save the log in /tmp... Would be very appreciated if someone could tell me.

@Azkaas like @NoXPhasma said, open your widgets with :
env XDG_CACHE_HOME=/tmp eww open my_awesome_widget

You can also add the variable to your environment, example for bash edit ~/.bashrc :
export XDG_CACHE_HOME="/tmp"

@Azkaas like @NoXPhasma said, open your widgets with :
env XDG_CACHE_HOME=/tmp eww open my_awesome_widget

You can also add the variable to your environment, example for bash edit ~/.bashrc :
export XDG_CACHE_HOME="/tmp"

Note that you probably shouldn't export XDG_CACHE_HOME to /tmp as it could pretty much break caching on your computer, better to use the first solution (just for eww)

Thanks for the response guys :) I actually ended up using rm -rf command on the log on each login for now. But I imagine writing over and over isnt healthy for the SSD

Just to give a minor update if someone is looking to solve the bug, this is what my log gets filled with:

I am also having this spammed in my log file. I had a 112G log file. I was making changes to one of the window files I have and I couldn't even write my changes cause I ran out of space lol.
Caused by:     Couldn't upgrade reference, widget got deallocated  2023-05-25T13:03:47.656Z ERROR eww::error_handling_ctx > Error while updating UI after state change

@viandoxdev I do already patch eww for kb support so I would love to do that if you could point me in the right direction to disable the logging.

So I got the spam to stop by the former option (removing the call for error log reporting this error). How I went about this was by commenting out lines 212, 226, and 296 from crates/eww/src/state/scope_graph.rs. I saw the note about the listener but it's a little more than I've got time for unfortunately. Note, this is not a proper solution but it allows for you to be rid of large log files and still receiving errors for things you want. @viandoxdev thanks for the tip. After 10 minutes I would usually have 10G consumed by that log file lol.

i was too lazy to fix the issue and i noticed the log file had the same name every time so i just added rm command with the path of the log to startup.

This is an issue that's really putting me off from using EWW as a daily-driver. The log files just get so big. And as someone who uses a lot of literal scripts, the logs fill up quickly. I keep my system running for days on-end, so keeping everything inside /tmp still creates huge log files. I wonder if it would be possible to routinely remove the log file as a workaround?
Would really like Elk to get working on this.

@Swexti You could try #821 as a workaround, should limit the total number of "Widget got deallocated" logs to 10 per daemon. I haven't tested it yet tho as my config doesn't generate these logs

@Swexti You could try #821 as a workaround, should limit the total number of "Widget got deallocated" logs to 10 per daemon. I haven't tested it yet tho as my config doesn't generate these logs

Will take a look, thanks!

For those that want to stay on the main branch, I've set up a cronjob to delete lines like these from the logs:

Caused by:
    Couldn't upgrade reference, widget got deallocated
   2023-05-25T13:03:47.656Z ERROR eww::error_handling_ctx > Error while updating UI after state change

It helps to keep log size down while not losing any other info from there. Here it is (set to run every 20 minutes, requires perl and sed):
*/20 * * * * perl -0777 -i -pe 's/\nCaused by:\n    Couldn'"'"'t upgrade reference, widget got deallocated\n.*/<DELETEME>/g' $HOME/.cache/eww*.log && sed -i '/^<DELETEME>$/d' $HOME/.cache/eww*.log

('"'"' is to place a ' without escaping. I couldn't get perl to delete the lines so i'm using a placeholder string)

So as i can see this is not fixed yet
eww verison : eww 0.4.0 a9a35c1804d72ef92e04ee71555bd9e5a08fa17e
I was rally panicking that my pc just broke (couldn't safe anything etc. )


[Jira Search] Search Boards -> TypeError: cannot read properties of undefined (reading 'displayName')

Extension
https://www.raycast.com/sven/jira-search
Description
In a properly configured Jira Search plugin accessing a Jira Cloud instance, I get a TypeError searching boards.
Steps To Reproduce

Get the Jira Search plugin
Configure for Jira cloud
Attempt to search for boards

Current Behaviour
TypeError
Expected Behaviour
Search for boards

@scottmmjackson Can you please post a screenshot or copy and paste the full error message? Do other commands of the extension work (e.g. search for issues)?

Other commands work. The full error message is in the issue title. Unfortunately the error only appears in a toast at the bottom of the raycast command palette- I can't find it dumped to the logs or anything.
If you still want a screenshot I'm happy to offer one but I don't know how much it'll help.

Thank you – no screenshot needed. It‘s a pain, that raycast doesn‘t provide logging on the user side … I don’t understand in which case this error could appear. Will try to make the code more tolerant. May take a while, because I‘m busy at the moment.

Actually, I just curl'd the endpoint and the shape looks different.
I'm getting:
{
...,
"values": [
   {
     "id": 20,
     "self": <uri>,
     "name": "Development",
     "type": "scrum"
   }
}

So it's entirely missing the location object. It looks like the API docs show that as well:
https://developer.atlassian.com/cloud/jira/software/rest/api-group-other-operations/#api-rest-agile-1-0-board-get

I'm curious if this works for you or if it's only my instance that responds in this way? The shape looks like the response one gets from GET /rest/agile/1.0/board/{boardId}, which I think implies that we'd be trying to essentially do a (pseudocode):
const boards = (await getBoards()).map(board => await getBoardById(board.id));

I have done a little more poking, and I think this is only true in the case where there's no project for the board. Needless to say, it's possible.
@svenwiegand are you welcoming PRs for this?

Thanks for your analysis @scottmmjackson, this made fixing the issue a breeze. #6571 should fix the issue.
Unfortunately I was not able to reproduce this issue. All the boards in my Jira instance do have a location. Can you give a hint, how to create one without a location.

@raycastbot close this issue

No problem. Have you been able to verify the fix?

Yes! Fix verified!!


VScode can not  compile

Getting this message with version 1.8 older version 1.3 is able to compile:
"Command 'V: Build an optimized executable from current file' resulted in an error (command 'v.prod' not found)"
or
"Command 'V: Run current file' resulted in an error (command 'v.run' not found)"
using current vscode and V 0.2.2 de5e603

I encounter this problem, when a file is either outside the current workspace or no V source code.
I will try to implement an clearer error tho.


1984 non-image "thumbnail" placeholder

Summary
This PR is a simple implementation of an MVP for https://github.com/netlify/netlify-cms/issues/1984

Test plan
Unable to run yarn test at the moment due to WSL-related cypress errors. Once I can get on a real Linux system, I'll update this with the output.
A picture of a cute animal (not mandatory but encouraged)

This is perfect, thanks @depadiernos!

@depadiernos Nice work!


when an update is reported by liferay in windows the ansi codes are not working

See https://issues.liferay.com/browse/LXC-159


Layout of the first page of the application

The layout of the first page of the application implies the addition of a separate page on Flutter with the possibility of further adding the functionality of parsers

Respective commit e9590abd23be17e7e6852f357ff98d8bc4f08680


conda package

Hi,
we are gonna develop a Galaxy node to convert SBOL files from/to other formats (genbank, fasta...). Galaxy works with conda packages, so we would need a conda package of SBOL-utilities. Did you plan to do so?
Cheers!

I'd be happy to have a conda distribution. However, I personally have not worked with conda in the past, only pypi, so I'm not certain of the infrastructure or how to appropriately set up tests to make sure that we would be maintaining it correctly. Can you supply information and/or pull requests that would help enable a conda package?

ok, @kenza12 will propose you a PR but before she had to build a conda package for all missing dependencies on conda (pysbol3, tyto, sbol_factory). She will be in touch with developers of these packages.

Hi,
Thank you for your answer.
Yes, it was about the test errors in sbol_factory, I answered here: https://github.com/SynBioDex/pySBOL3/issues/398
Regarding the question about maintainers, yes I was indeed talking about the conda distribution maintainer and not the code maintainer. This is just about maintaining the conda recipe up to date.
Personally, I'm using the free license of anaconda (for academics), it's enough to package a tool and maintain it. Maybe the professional license is for commercial use with more supports ..

Well, then, it seems appropriate to list yourself as the maintainer of the conda distribution, and us as maintainers of the code base.

Hi @jakebeal ,
I'm trying to run the tests locally for sbol-utilities (1.0a15 release) in order to create a conda package but it failed with the following errors:
(sbol-utilities-pip6) kenza@kenza-Precision-3551:~/Bureau/test-sbol-utilities/SBOL-utilities$ pytest -v test
===================================================================== test session starts ======================================================================
platform linux -- Python 3.10.4, pytest-7.1.2, pluggy-1.0.0 -- /home/kenza/anaconda3/envs/sbol-utilities-pip6/bin/python
cachedir: .pytest_cache
rootdir: /home/kenza/Bureau/test-sbol-utilities/SBOL-utilities
collected 32 items

test/test_calculate_sequences.py::TestCalculateSequences::test_calculate_sequences PASSED                                                                [  3%]
test/test_calculate_sequences.py::TestCalculateSequences::test_circular_calculation PASSED                                                               [  6%]
test/test_calculate_sequences.py::TestCalculateSequences::test_commandline PASSED                                                                        [  9%]
test/test_component.py::TestComponent::test_high_level_constructors PASSED                                                                               [ 12%]
test/test_component.py::TestComponent::test_system_building PASSED                                                                                [ 15%]
test/test_conversion.py::Test2To3Conversion::test_3to2_conversion PASSED                                                                                [ 18%]
test/test_conversion.py::Test2To3Conversion::test_3to2_orientation_conversion PASSED                                                                     [ 21%]
test/test_conversion.py::Test2To3Conversion::test_combinatorial_derivation_3_2_conversion XFAIL                                                          [ 25%]
test/test_conversion.py::Test2To3Conversion::test_commandline FAILED                                                                                [ 28%]
test/test_conversion.py::Test2To3Conversion::test_conversion_from_fasta PASSED                                                                           [ 31%]
test/test_conversion.py::Test2To3Conversion::test_conversion_from_genbank PASSED                                                                         [ 34%]
test/test_conversion.py::Test2To3Conversion::test_convert_identities PASSED                                                                              [ 37%]
test/test_conversion.py::Test2To3Conversion::test_convert_object PASSED                                                                                [ 40%]
test/test_conversion.py::Test2To3Conversion::test_fasta_conversion PASSED                                                                                [ 43%]
test/test_conversion.py::Test2To3Conversion::test_genbank_conversion FAILED                                                                              [ 46%]
test/test_conversion.py::Test2To3Conversion::test_genbank_multi_conversion FAILED                                                                        [ 50%]
test/test_conversion.py::Test2To3Conversion::test_id_map_conversion_from_fasta PASSED                                                                    [ 53%]
test/test_conversion.py::Test2To3Conversion::test_online_conversion PASSED                                                                               [ 56%]
test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate PASSED                                                                      [ 59%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_commandline PASSED                                                                                [ 62%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_constraints PASSED                                                                                [ 65%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_conversion PASSED                                                                                [ 68%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_custom_conversion PASSED                                                                                [ 71%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_multi_backbone PASSED                                                                                [ 75%]
test/test_expand_combinatorial_derivations.py::TestCDExpansion::test_commandline PASSED                                                                  [ 78%]
test/test_expand_combinatorial_derivations.py::TestCDExpansion::test_expansion PASSED                                                                    [ 81%]
test/test_expand_combinatorial_derivations.py::TestCDExpansion::test_multi_backbone PASSED                                                               [ 84%]
test/test_helpers.py::TestHelpers::test_url_sanitization PASSED                                                                                [ 87%]
test/test_sbol_diff.py::TestSbolDiff::test_command_line PASSED                                                                                [ 90%]
test/test_sbol_diff.py::TestSbolDiff::test_doc_diff PASSED                                                                                [ 93%]
test/test_sbol_diff.py::TestSbolDiff::test_file_diff PASSED                                                                                [ 96%]
test/test_sequence.py::TestSequence::test_sequence_validators PASSED                                                                                [100%]

=========================================================================== FAILURES ===========================================================================
_____________________________________________________________ Test2To3Conversion.test_commandline ______________________________________________________________

handleish = <_io.TextIOWrapper name='/tmp/tmpw2w1d4zq.gb' mode='r' encoding='UTF-8'>, mode = 'r', kwargs = {}

    @contextlib.contextmanager
    def as_handle(handleish, mode="r", **kwargs):
        r"""Context manager to ensure we are using a handle.

        Context manager for arguments that can be passed to SeqIO and AlignIO read, write,
        and parse methods: either file objects or path-like objects (strings, pathlib.Path
        instances, or more generally, anything that can be handled by the builtin 'open'
        function).

        When given a path-like object, returns an open file handle to that path, with provided
        mode, which will be closed when the manager exits.

        All other inputs are returned, and are *not* closed.

        Arguments:
         - handleish  - Either a file handle or path-like object (anything which can be
                        passed to the builtin 'open' function, such as str, bytes,
                        pathlib.Path, and os.DirEntry objects)
         - mode       - Mode to open handleish (used only if handleish is a string)
         - kwargs     - Further arguments to pass to open(...)

        This must cope with several variants, primarily the old and new column
        based standards from GenBank. Additionally EnsEMBL produces GenBank
        files where the LOCUS line is space separated rather that following
        the column based layout.

        We also try to cope with GenBank like files with partial LOCUS lines.

        As of release 229.0, the columns are no longer strictly in a given
        position. See GenBank format release notes:

            "Historically, the LOCUS line has had a fixed length and its
            elements have been presented at specific column positions...
            But with the anticipated increases in the lengths of accession
            numbers, and the advent of sequences that are gigabases long,
            maintaining the column positions will not always be possible and
            the overall length of the LOCUS line could exceed 79 characters."

        """
        #####################################
        # LOCUS line                        #
        #####################################
        if line[0 : self.GENBANK_INDENT] != "LOCUS       ":
            raise ValueError("LOCUS line does not start correctly:\n" + line)

        # Have to break up the locus line, and handle the different bits of it.
        # There are at least two different versions of the locus line...
        if line[29:33] in [" bp ", " aa ", " rc "] and line[55:62] == "       ":
            # Old... note we insist on the 55:62 being empty to avoid trying
            # to parse space separated LOCUS lines from Ensembl etc, see below.
            #
            #    Positions  Contents
            #    ---------  --------
            #    00:06      LOCUS
            #    06:12      spaces
            #    12:??      Locus name
            #    ??:??      space
            #    ??:29      Length of sequence, right-justified
            #    29:33      space, bp, space
            #    33:41      strand type / molecule type, e.g. DNA
            #    41:42      space
            #    42:51      Blank (implies linear), linear or circular
            #    51:52      space
            #    52:55      The division code (e.g. BCT, VRL, INV)
            #    55:62      space
            #    62:73      Date, in the form dd-MMM-yyyy (e.g., 15-MAR-1991)
            #
            # assert line[29:33] in [' bp ', ' aa ',' rc '] , \
            #       'LOCUS line does not contain size units at expected position:\n' + line
            if line[41:42] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 42:\n" + line
                )
            if line[42:51].strip() not in ["", "linear", "circular"]:
                raise ValueError(
                    "LOCUS line does not contain valid entry "
                    "(linear, circular, ...):\n" + line
                )
            if line[51:52] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 52:\n" + line
                )
            # if line[55:62] != '       ':
            #      raise ValueError('LOCUS line does not contain spaces from position 56 to 62:\n' + line)
            if line[62:73].strip():
                if line[64:65] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 65 in date:\n" + line
                    )
                if line[68:69] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 69 in date:\n" + line
                    )

            name_and_length_str = line[self.GENBANK_INDENT : 29]
            while "  " in name_and_length_str:
                name_and_length_str = name_and_length_str.replace("  ", " ")
            name_and_length = name_and_length_str.split(" ")
            if len(name_and_length) > 2:
                raise ValueError(
                    "Cannot parse the name and length in the LOCUS line:\n" + line
                )
            if len(name_and_length) == 1:
                raise ValueError("Name and length collide in the LOCUS line:\n" + line)
            # Should be possible to split them based on position, if
            # a clear definition of the standard exists THAT AGREES with
            # existing files.
            name, length = name_and_length
            if len(name) > 16:
                # As long as the sequence is short, can steal its leading spaces
                # to extend the name over the current 16 character limit.
                # However, that deserves a warning as it is out of spec.
                warnings.warn(
                    "GenBank LOCUS line identifier over 16 characters",
                    BiopythonParserWarning,
                )
            consumer.locus(name)
            consumer.size(length)
            # consumer.residue_type(line[33:41].strip())

            if line[33:51].strip() == "" and line[29:33] == " aa ":
                # Amino acids -> protein (even if there is no residue type given)
                consumer.residue_type("PROTEIN")
            else:
                consumer.residue_type(line[33:51].strip())

            consumer.molecule_type(line[33:41].strip())
            consumer.topology(line[42:51].strip())
            consumer.data_file_division(line[52:55])
            if line[62:73].strip():
                consumer.date(line[62:73])
        elif line[40:44] in [" bp ", " aa ", " rc "] and line[54:64].strip() in [
            "",
            "linear",
            "circular",
        ]:
            # New... linear/circular/big blank test should avoid EnsEMBL style
            # LOCUS line being treated like a proper column based LOCUS line.
            #
            #    Positions  Contents
            #    ---------  --------
            #    00:06      LOCUS
            #    06:12      spaces
            #    12:??      Locus name
            #    ??:??      space
            #    ??:40      Length of sequence, right-justified
            #    40:44      space, bp, space
            #    44:47      Blank, ss-, ds-, ms-
            #    47:54      Blank, DNA, RNA, tRNA, mRNA, uRNA, snRNA, cDNA
            #    54:55      space
            #    55:63      Blank (implies linear), linear or circular
            #    63:64      space
            #    64:67      The division code (e.g. BCT, VRL, INV)
            #    67:68      space
            #    68:79      Date, in the form dd-MMM-yyyy (e.g., 15-MAR-1991)
            #
            if len(line) < 79:
                # JBEI genbank files seem to miss a division code and date
                # See issue #1656 e.g.
                # LOCUS       pEH010                  5743 bp    DNA     circular
                warnings.warn(
                    "Truncated LOCUS line found - is this correct?\n:%r" % line,
                    BiopythonParserWarning,
                )
                padding_len = 79 - len(line)
                padding = " " * padding_len
                line += padding

            if line[40:44] not in [" bp ", " aa ", " rc "]:
                raise ValueError(
                    "LOCUS line does not contain size units at "
                    "expected position:\n" + line
                )
            if line[44:47] not in ["   ", "ss-", "ds-", "ms-"]:
                raise ValueError(
                    "LOCUS line does not have valid strand "
                    "type (Single stranded, ...):\n" + line
                )

            if not (
                line[47:54].strip() == ""
                or "DNA" in line[47:54].strip().upper()
                or "RNA" in line[47:54].strip().upper()
            ):
                raise ValueError(
                    "LOCUS line does not contain valid "
                    "sequence type (DNA, RNA, ...):\n" + line
                )
            if line[54:55] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 55:\n" + line
                )
            if line[55:63].strip() not in ["", "linear", "circular"]:
                raise ValueError(
                    "LOCUS line does not contain valid "
                    "entry (linear, circular, ...):\n" + line
                )
            if line[63:64] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 64:\n" + line
                )
            if line[67:68] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 68:\n" + line
                )
            if line[68:79].strip():
                if line[70:71] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 71 in date:\n" + line
                    )
                if line[74:75] != "-":
>                   raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 75 in date:\n" + line
                    )
E                   ValueError: LOCUS line does not contain - at position 75 in date:
E                   LOCUS       BBa_J23101                35 bp    DNA     linear       07-juin-2022

../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/Bio/GenBank/Scanner.py:1443: ValueError
__________________________________________________________ Test2To3Conversion.test_genbank_conversion __________________________________________________________

handleish = <_io.TextIOWrapper name='/tmp/tmpl1gsmpcs.gb' mode='r' encoding='UTF-8'>, mode = 'r', kwargs = {}

    @contextlib.contextmanager
    def as_handle(handleish, mode="r", **kwargs):
        r"""Context manager to ensure we are using a handle.

        Context manager for arguments that can be passed to SeqIO and AlignIO read, write,
        and parse methods: either file objects or path-like objects (strings, pathlib.Path
        instances, or more generally, anything that can be handled by the builtin 'open'
        function).

        When given a path-like object, returns an open file handle to that path, with provided
        mode, which will be closed when the manager exits.

        All other inputs are returned, and are *not* closed.

        Arguments:
         - handleish  - Either a file handle or path-like object (anything which can be
                        passed to the builtin 'open' function, such as str, bytes,
                        pathlib.Path, and os.DirEntry objects)
         - mode       - Mode to open handleish (used only if handleish is a string)
         - kwargs     - Further arguments to pass to open(...)

        This must cope with several variants, primarily the old and new column
        based standards from GenBank. Additionally EnsEMBL produces GenBank
        files where the LOCUS line is space separated rather that following
        the column based layout.

        We also try to cope with GenBank like files with partial LOCUS lines.

        As of release 229.0, the columns are no longer strictly in a given
        position. See GenBank format release notes:

            "Historically, the LOCUS line has had a fixed length and its
            elements have been presented at specific column positions...
            But with the anticipated increases in the lengths of accession
            numbers, and the advent of sequences that are gigabases long,
            maintaining the column positions will not always be possible and
            the overall length of the LOCUS line could exceed 79 characters."

        """
        #####################################
        # LOCUS line                        #
        #####################################
        if line[0 : self.GENBANK_INDENT] != "LOCUS       ":
            raise ValueError("LOCUS line does not start correctly:\n" + line)

        # Have to break up the locus line, and handle the different bits of it.
        # There are at least two different versions of the locus line...
        if line[29:33] in [" bp ", " aa ", " rc "] and line[55:62] == "       ":
            # Old... note we insist on the 55:62 being empty to avoid trying
            # to parse space separated LOCUS lines from Ensembl etc, see below.
            #
            #    Positions  Contents
            #    ---------  --------
            #    00:06      LOCUS
            #    06:12      spaces
            #    12:??      Locus name
            #    ??:??      space
            #    ??:29      Length of sequence, right-justified
            #    29:33      space, bp, space
            #    33:41      strand type / molecule type, e.g. DNA
            #    41:42      space
            #    42:51      Blank (implies linear), linear or circular
            #    51:52      space
            #    52:55      The division code (e.g. BCT, VRL, INV)
            #    55:62      space
            #    62:73      Date, in the form dd-MMM-yyyy (e.g., 15-MAR-1991)
            #
            # assert line[29:33] in [' bp ', ' aa ',' rc '] , \
            #       'LOCUS line does not contain size units at expected position:\n' + line
            if line[41:42] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 42:\n" + line
                )
            if line[42:51].strip() not in ["", "linear", "circular"]:
                raise ValueError(
                    "LOCUS line does not contain valid entry "
                    "(linear, circular, ...):\n" + line
                )
            if line[51:52] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 52:\n" + line
                )
            # if line[55:62] != '       ':
            #      raise ValueError('LOCUS line does not contain spaces from position 56 to 62:\n' + line)
            if line[62:73].strip():
                if line[64:65] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 65 in date:\n" + line
                    )
                if line[68:69] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 69 in date:\n" + line
                    )

            name_and_length_str = line[self.GENBANK_INDENT : 29]
            while "  " in name_and_length_str:
                name_and_length_str = name_and_length_str.replace("  ", " ")
            name_and_length = name_and_length_str.split(" ")
            if len(name_and_length) > 2:
                raise ValueError(
                    "Cannot parse the name and length in the LOCUS line:\n" + line
                )
            if len(name_and_length) == 1:
                raise ValueError("Name and length collide in the LOCUS line:\n" + line)
            # Should be possible to split them based on position, if
            # a clear definition of the standard exists THAT AGREES with
            # existing files.
            name, length = name_and_length
            if len(name) > 16:
                # As long as the sequence is short, can steal its leading spaces
                # to extend the name over the current 16 character limit.
                # However, that deserves a warning as it is out of spec.
                warnings.warn(
                    "GenBank LOCUS line identifier over 16 characters",
                    BiopythonParserWarning,
                )
            consumer.locus(name)
            consumer.size(length)
            # consumer.residue_type(line[33:41].strip())

            if line[33:51].strip() == "" and line[29:33] == " aa ":
                # Amino acids -> protein (even if there is no residue type given)
                consumer.residue_type("PROTEIN")
            else:
                consumer.residue_type(line[33:51].strip())

            consumer.molecule_type(line[33:41].strip())
            consumer.topology(line[42:51].strip())
            consumer.data_file_division(line[52:55])
            if line[62:73].strip():
                consumer.date(line[62:73])
        elif line[40:44] in [" bp ", " aa ", " rc "] and line[54:64].strip() in [
            "",
            "linear",
            "circular",
        ]:
            # New... linear/circular/big blank test should avoid EnsEMBL style
            # LOCUS line being treated like a proper column based LOCUS line.
            #
            #    Positions  Contents
            #    ---------  --------
            #    00:06      LOCUS
            #    06:12      spaces
            #    12:??      Locus name
            #    ??:??      space
            #    ??:40      Length of sequence, right-justified
            #    40:44      space, bp, space
            #    44:47      Blank, ss-, ds-, ms-
            #    47:54      Blank, DNA, RNA, tRNA, mRNA, uRNA, snRNA, cDNA
            #    54:55      space
            #    55:63      Blank (implies linear), linear or circular
            #    63:64      space
            #    64:67      The division code (e.g. BCT, VRL, INV)
            #    67:68      space
            #    68:79      Date, in the form dd-MMM-yyyy (e.g., 15-MAR-1991)
            #
            if len(line) < 79:
                # JBEI genbank files seem to miss a division code and date
                # See issue #1656 e.g.
                # LOCUS       pEH010                  5743 bp    DNA     circular
                warnings.warn(
                    "Truncated LOCUS line found - is this correct?\n:%r" % line,
                    BiopythonParserWarning,
                )
                padding_len = 79 - len(line)
                padding = " " * padding_len
                line += padding

            if line[40:44] not in [" bp ", " aa ", " rc "]:
                raise ValueError(
                    "LOCUS line does not contain size units at "
                    "expected position:\n" + line
                )
            if line[44:47] not in ["   ", "ss-", "ds-", "ms-"]:
                raise ValueError(
                    "LOCUS line does not have valid strand "
                    "type (Single stranded, ...):\n" + line
                )

            if not (
                line[47:54].strip() == ""
                or "DNA" in line[47:54].strip().upper()
                or "RNA" in line[47:54].strip().upper()
            ):
                raise ValueError(
                    "LOCUS line does not contain valid "
                    "sequence type (DNA, RNA, ...):\n" + line
                )
            if line[54:55] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 55:\n" + line
                )
            if line[55:63].strip() not in ["", "linear", "circular"]:
                raise ValueError(
                    "LOCUS line does not contain valid "
                    "entry (linear, circular, ...):\n" + line
                )
            if line[63:64] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 64:\n" + line
                )
            if line[67:68] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 68:\n" + line
                )
            if line[68:79].strip():
                if line[70:71] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 71 in date:\n" + line
                    )
                if line[74:75] != "-":
>                   raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 75 in date:\n" + line
                    )
E                   ValueError: LOCUS line does not contain - at position 75 in date:
E                   LOCUS       BBa_J23101                35 bp    DNA     linear       07-juin-2022

../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/Bio/GenBank/Scanner.py:1443: ValueError
_______________________________________________________ Test2To3Conversion.test_genbank_multi_conversion _______________________________________________________

handleish = <_io.TextIOWrapper name='/tmp/tmphapkaqdi.gb' mode='r' encoding='UTF-8'>, mode = 'r', kwargs = {}

    @contextlib.contextmanager
    def as_handle(handleish, mode="r", **kwargs):
        r"""Context manager to ensure we are using a handle.

        Context manager for arguments that can be passed to SeqIO and AlignIO read, write,
        and parse methods: either file objects or path-like objects (strings, pathlib.Path
        instances, or more generally, anything that can be handled by the builtin 'open'
        function).

        When given a path-like object, returns an open file handle to that path, with provided
        mode, which will be closed when the manager exits.

        All other inputs are returned, and are *not* closed.

        Arguments:
         - handleish  - Either a file handle or path-like object (anything which can be
                        passed to the builtin 'open' function, such as str, bytes,
                        pathlib.Path, and os.DirEntry objects)
         - mode       - Mode to open handleish (used only if handleish is a string)
         - kwargs     - Further arguments to pass to open(...)

        This must cope with several variants, primarily the old and new column
        based standards from GenBank. Additionally EnsEMBL produces GenBank
        files where the LOCUS line is space separated rather that following
        the column based layout.

        We also try to cope with GenBank like files with partial LOCUS lines.

        As of release 229.0, the columns are no longer strictly in a given
        position. See GenBank format release notes:

            "Historically, the LOCUS line has had a fixed length and its
            elements have been presented at specific column positions...
            But with the anticipated increases in the lengths of accession
            numbers, and the advent of sequences that are gigabases long,
            maintaining the column positions will not always be possible and
            the overall length of the LOCUS line could exceed 79 characters."

        """
        #####################################
        # LOCUS line                        #
        #####################################
        if line[0 : self.GENBANK_INDENT] != "LOCUS       ":
            raise ValueError("LOCUS line does not start correctly:\n" + line)

        # Have to break up the locus line, and handle the different bits of it.
        # There are at least two different versions of the locus line...
        if line[29:33] in [" bp ", " aa ", " rc "] and line[55:62] == "       ":
            # Old... note we insist on the 55:62 being empty to avoid trying
            # to parse space separated LOCUS lines from Ensembl etc, see below.
            #
            #    Positions  Contents
            #    ---------  --------
            #    00:06      LOCUS
            #    06:12      spaces
            #    12:??      Locus name
            #    ??:??      space
            #    ??:29      Length of sequence, right-justified
            #    29:33      space, bp, space
            #    33:41      strand type / molecule type, e.g. DNA
            #    41:42      space
            #    42:51      Blank (implies linear), linear or circular
            #    51:52      space
            #    52:55      The division code (e.g. BCT, VRL, INV)
            #    55:62      space
            #    62:73      Date, in the form dd-MMM-yyyy (e.g., 15-MAR-1991)
            #
            # assert line[29:33] in [' bp ', ' aa ',' rc '] , \
            #       'LOCUS line does not contain size units at expected position:\n' + line
            if line[41:42] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 42:\n" + line
                )
            if line[42:51].strip() not in ["", "linear", "circular"]:
                raise ValueError(
                    "LOCUS line does not contain valid entry "
                    "(linear, circular, ...):\n" + line
                )
            if line[51:52] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 52:\n" + line
                )
            # if line[55:62] != '       ':
            #      raise ValueError('LOCUS line does not contain spaces from position 56 to 62:\n' + line)
            if line[62:73].strip():
                if line[64:65] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 65 in date:\n" + line
                    )
                if line[68:69] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 69 in date:\n" + line
                    )

            name_and_length_str = line[self.GENBANK_INDENT : 29]
            while "  " in name_and_length_str:
                name_and_length_str = name_and_length_str.replace("  ", " ")
            name_and_length = name_and_length_str.split(" ")
            if len(name_and_length) > 2:
                raise ValueError(
                    "Cannot parse the name and length in the LOCUS line:\n" + line
                )
            if len(name_and_length) == 1:
                raise ValueError("Name and length collide in the LOCUS line:\n" + line)
            # Should be possible to split them based on position, if
            # a clear definition of the standard exists THAT AGREES with
            # existing files.
            name, length = name_and_length
            if len(name) > 16:
                # As long as the sequence is short, can steal its leading spaces
                # to extend the name over the current 16 character limit.
                # However, that deserves a warning as it is out of spec.
                warnings.warn(
                    "GenBank LOCUS line identifier over 16 characters",
                    BiopythonParserWarning,
                )
            consumer.locus(name)
            consumer.size(length)
            # consumer.residue_type(line[33:41].strip())

            if line[33:51].strip() == "" and line[29:33] == " aa ":
                # Amino acids -> protein (even if there is no residue type given)
                consumer.residue_type("PROTEIN")
            else:
                consumer.residue_type(line[33:51].strip())

            consumer.molecule_type(line[33:41].strip())
            consumer.topology(line[42:51].strip())
            consumer.data_file_division(line[52:55])
            if line[62:73].strip():
                consumer.date(line[62:73])
        elif line[40:44] in [" bp ", " aa ", " rc "] and line[54:64].strip() in [
            "",
            "linear",
            "circular",
        ]:
            # New... linear/circular/big blank test should avoid EnsEMBL style
            # LOCUS line being treated like a proper column based LOCUS line.
            #
            #    Positions  Contents
            #    ---------  --------
            #    00:06      LOCUS
            #    06:12      spaces
            #    12:??      Locus name
            #    ??:??      space
            #    ??:40      Length of sequence, right-justified
            #    40:44      space, bp, space
            #    44:47      Blank, ss-, ds-, ms-
            #    47:54      Blank, DNA, RNA, tRNA, mRNA, uRNA, snRNA, cDNA
            #    54:55      space
            #    55:63      Blank (implies linear), linear or circular
            #    63:64      space
            #    64:67      The division code (e.g. BCT, VRL, INV)
            #    67:68      space
            #    68:79      Date, in the form dd-MMM-yyyy (e.g., 15-MAR-1991)
            #
            if len(line) < 79:
                # JBEI genbank files seem to miss a division code and date
                # See issue #1656 e.g.
                # LOCUS       pEH010                  5743 bp    DNA     circular
                warnings.warn(
                    "Truncated LOCUS line found - is this correct?\n:%r" % line,
                    BiopythonParserWarning,
                )
                padding_len = 79 - len(line)
                padding = " " * padding_len
                line += padding

            if line[40:44] not in [" bp ", " aa ", " rc "]:
                raise ValueError(
                    "LOCUS line does not contain size units at "
                    "expected position:\n" + line
                )
            if line[44:47] not in ["   ", "ss-", "ds-", "ms-"]:
                raise ValueError(
                    "LOCUS line does not have valid strand "
                    "type (Single stranded, ...):\n" + line
                )

            if not (
                line[47:54].strip() == ""
                or "DNA" in line[47:54].strip().upper()
                or "RNA" in line[47:54].strip().upper()
            ):
                raise ValueError(
                    "LOCUS line does not contain valid "
                    "sequence type (DNA, RNA, ...):\n" + line
                )
            if line[54:55] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 55:\n" + line
                )
            if line[55:63].strip() not in ["", "linear", "circular"]:
                raise ValueError(
                    "LOCUS line does not contain valid "
                    "entry (linear, circular, ...):\n" + line
                )
            if line[63:64] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 64:\n" + line
                )
            if line[67:68] != " ":
                raise ValueError(
                    "LOCUS line does not contain space at position 68:\n" + line
                )
            if line[68:79].strip():
                if line[70:71] != "-":
                    raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 71 in date:\n" + line
                    )
                if line[74:75] != "-":
>                   raise ValueError(
                        "LOCUS line does not contain - at "
                        "position 75 in date:\n" + line
                    )
E                   ValueError: LOCUS line does not contain - at position 75 in date:
E                   LOCUS       pSB1C3                  2070 bp    DNA     linear       07-juin-2022

../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/Bio/GenBank/Scanner.py:1443: ValueError
======================================================================= warnings summary =======================================================================
../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:10
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:10: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_VERSION = LooseVersion(rdflib.__version__)

../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:11
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:11: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_421 = LooseVersion("4.2.1")

../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:12
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:12: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_500 = LooseVersion("5.0.0")

../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:13
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:13: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_600 = LooseVersion("6.0.0")

../../../anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:14
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:14: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_602 = LooseVersion("6.0.2")

test/test_calculate_sequences.py::TestCalculateSequences::test_circular_calculation
test/test_excel_to_sbol.py::TestExcel2SBOL::test_commandline
test/test_excel_to_sbol.py::TestExcel2SBOL::test_constraints
test/test_excel_to_sbol.py::TestExcel2SBOL::test_conversion
test/test_excel_to_sbol.py::TestExcel2SBOL::test_custom_conversion
test/test_excel_to_sbol.py::TestExcel2SBOL::test_multi_backbone
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/openpyxl/worksheet/_reader.py:312: UserWarning: Data Validation extension is not supported and will be removed
    warn(msg)

test/test_component.py::TestComponent::test_high_level_constructors
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/rdflib/plugins/sparql/__init__.py:52: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
    for ep in all_entry_points.get(PLUGIN_ENTRY_POINT, []):

test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate
  <unknown>:210: DeprecationWarning: invalid escape sequence '\('

test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate
  <unknown>:258: DeprecationWarning: invalid escape sequence '\d'

test/test_expand_combinatorial_derivations.py: 188 warnings
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/sbol3/toplevel.py:176: DeprecationWarning: Use sbol3.copy() instead
    warnings.warn('Use sbol3.copy() instead', DeprecationWarning)

test/test_expand_combinatorial_derivations.py: 792 warnings
  /home/kenza/anaconda3/envs/sbol-utilities-pip6/lib/python3.10/site-packages/sbol3/object.py:101: DeprecationWarning: Use sbol3.copy() instead
    warnings.warn('Use sbol3.copy() instead', DeprecationWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=================================================================== short test summary info ====================================================================
FAILED test/test_conversion.py::Test2To3Conversion::test_commandline - ValueError: LOCUS line does not contain - at position 75 in date:
FAILED test/test_conversion.py::Test2To3Conversion::test_genbank_conversion - ValueError: LOCUS line does not contain - at position 75 in date:
FAILED test/test_conversion.py::Test2To3Conversion::test_genbank_multi_conversion - ValueError: LOCUS line does not contain - at position 75 in date:
==================================================== 3 failed, 28 passed, 1 xfailed, 994 warnings in 51.34s ====================================================

I made sure to have all the required dependencies listed in the setup file. I also added nodejs , graphviz, python-graphviz, openjdk (for java), interrogate (for tests), pytest (for tests).
Can you check if the tests are working in your linux system for sbol-utilities (1.0a15 release) please ? If yes, can you share with me the installed dependencies so I can compare with my environment ?
Thank you.

Hi @kenza12 ,
I have created branch 121-test-failure from the 1.0a15 tag using git checkout -b 121-test-failure 1.0a15. This branch passes the tests on GitHub (see https://github.com/SynBioDex/SBOL-utilities/actions/runs/2455835537). See in particular the Python 3.10 on Linux testing which I think matches your environment if I am reading your log file correctly.
Since your failure cases all involve the same error, "ValueError: LOCUS line does not contain - at position 75 in date", I wonder if the test failures have something to do with BioPython versions. The GitHub Action log shows that version 1.79 of BioPython was installed.
I am hopeful that you can review the logs of the GitHub Action and determine what the differences are between your environment and the environment that successfully runs the tests on GitHub. The logs should contain all the necessary information for installed dependencies.

Hi @tcmitchell , @jakebeal ,
Thank you for your feedback and sorry about the late, I wasn't at the office these last days for health issues.
I checked the environment and I have the same versions, even for biopython package. So I don't understand why this is not working.
I also tested sbol-utilities (1.0a14 release) with the same environment that I used for 1.0a15 and it worked as you can see here:
(test_sbol_utilities_1.0a14) kenza@kenza-Precision-3551:~/Bureau/SBOL-utilities$ pytest -v test
=========================================================================================== test session starts ===========================================================================================
platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0 -- /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/bin/python
cachedir: .pytest_cache
rootdir: /home/kenza/Bureau/SBOL-utilities
collected 30 items

test/test_calculate_sequences.py::TestCalculateSequences::test_calculate_sequences PASSED                                                                                [  3%]
test/test_calculate_sequences.py::TestCalculateSequences::test_circular_calculation PASSED                                                                                [  6%]
test/test_calculate_sequences.py::TestCalculateSequences::test_commandline PASSED                                                                                [ 10%]
test/test_component.py::TestComponent::test_high_level_constructors PASSED                                                                                [ 13%]
test/test_component.py::TestComponent::test_system_building PASSED                                                                                [ 16%]
test/test_conversion.py::Test2To3Conversion::test_3to2_conversion PASSED                                                                                [ 20%]
test/test_conversion.py::Test2To3Conversion::test_3to2_orientation_conversion PASSED                                                                                [ 23%]
test/test_conversion.py::Test2To3Conversion::test_commandline PASSED                                                                                [ 26%]
test/test_conversion.py::Test2To3Conversion::test_conversion_from_fasta PASSED                                                                                [ 30%]
test/test_conversion.py::Test2To3Conversion::test_conversion_from_genbank PASSED                                                                                [ 33%]
test/test_conversion.py::Test2To3Conversion::test_convert_identities PASSED                                                                                [ 36%]
test/test_conversion.py::Test2To3Conversion::test_convert_object PASSED                                                                                [ 40%]
test/test_conversion.py::Test2To3Conversion::test_fasta_conversion PASSED                                                                                [ 43%]
test/test_conversion.py::Test2To3Conversion::test_genbank_conversion PASSED                                                                                [ 46%]
test/test_conversion.py::Test2To3Conversion::test_genbank_multi_conversion PASSED                                                                                [ 50%]
test/test_conversion.py::Test2To3Conversion::test_id_map_conversion_from_fasta PASSED                                                                                [ 53%]
test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate PASSED                                                                                [ 56%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_commandline PASSED                                                                                [ 60%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_constraints PASSED                                                                                [ 63%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_conversion PASSED                                                                                [ 66%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_custom_conversion PASSED                                                                                [ 70%]
test/test_excel_to_sbol.py::TestExcel2SBOL::test_multi_backbone PASSED                                                                                [ 73%]
test/test_expand_combinatorial_derivations.py::TestCDExpansion::test_commandline PASSED                                                                                [ 76%]
test/test_expand_combinatorial_derivations.py::TestCDExpansion::test_expansion PASSED                                                                                [ 80%]
test/test_expand_combinatorial_derivations.py::TestCDExpansion::test_multi_backbone PASSED                                                                                [ 83%]
test/test_helpers.py::TestHelpers::test_url_sanitization PASSED                                                                                [ 86%]
test/test_sbol_diff.py::TestSbolDiff::test_command_line PASSED                                                                                [ 90%]
test/test_sbol_diff.py::TestSbolDiff::test_doc_diff PASSED                                                                                [ 93%]
test/test_sbol_diff.py::TestSbolDiff::test_file_diff PASSED                                                                                [ 96%]
test/test_sequence.py::TestSequence::test_sequence_validators PASSED                                                                                [100%]

============================================================================================ warnings summary =============================================================================================
../../anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:10
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:10: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_VERSION = LooseVersion(rdflib.__version__)

../../anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:11
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:11: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_421 = LooseVersion("4.2.1")

../../anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:12
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:12: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_500 = LooseVersion("5.0.0")

../../anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:13
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:13: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_600 = LooseVersion("6.0.0")

../../anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:14
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/pyshacl/monkey/__init__.py:14: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    RDFLIB_602 = LooseVersion("6.0.2")

test/test_calculate_sequences.py::TestCalculateSequences::test_circular_calculation
test/test_excel_to_sbol.py::TestExcel2SBOL::test_commandline
test/test_excel_to_sbol.py::TestExcel2SBOL::test_constraints
test/test_excel_to_sbol.py::TestExcel2SBOL::test_conversion
test/test_excel_to_sbol.py::TestExcel2SBOL::test_custom_conversion
test/test_excel_to_sbol.py::TestExcel2SBOL::test_multi_backbone
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/openpyxl/worksheet/_reader.py:312: UserWarning: Data Validation extension is not supported and will be removed
    warn(msg)

test/test_component.py::TestComponent::test_high_level_constructors
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/rdflib/plugins/sparql/__init__.py:52: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
    for ep in all_entry_points.get(PLUGIN_ENTRY_POINT, []):

test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate
test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate
  <unknown>:210: DeprecationWarning: invalid escape sequence '\('

test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate
test/test_docstr_coverage.py::TestDocStringsCoverage::test_using_interrogate
  <unknown>:258: DeprecationWarning: invalid escape sequence '\d'

test/test_expand_combinatorial_derivations.py: 188 warnings
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/sbol3/toplevel.py:176: DeprecationWarning: Use sbol3.copy() instead
    warnings.warn('Use sbol3.copy() instead', DeprecationWarning)

test/test_expand_combinatorial_derivations.py: 792 warnings
  /home/kenza/anaconda3/envs/test_sbol_utilities_1.0a14/lib/python3.10/site-packages/sbol3/object.py:101: DeprecationWarning: Use sbol3.copy() instead
    warnings.warn('Use sbol3.copy() instead', DeprecationWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
==================================================================================== 30 passed, 996 warnings in 53.31s ====================================================================================

I will try to open an issue in Bioconda.
I was also suspecting nodejs but it's working in sbol-utilitites 1.0a14. To be sure, can you share with me the version of nodejs that you used please ?
Thank you !

If I'm reading this correctly, that looks like it's all passing, so that's OK?

If I'm reading this correctly, that looks like it's all passing, so that's OK?

For sbol-utilities 1.0a14 yes but the issue is about sbol-utilities 1.0a15 (latest release) where the tests failed because of genbank errors. I just tested my environment in 1.0a14 to see if it's working or not.

@kenza12 said

To be sure, can you share with me the version of nodejs that you used please ?

I have added displaying the Node version to the GitHub Action workflow. The version in use appears to be v16.15.1 on all platforms.
There is a pull request to incorporate this into the repository.

Hi @jakebeal , @tcmitchell ,
Thank you for your help.
I finally dropped analyzing these GenBank errors because It's only appearing locally in Conda development. The test passed in Bioconda platform. We are trying to publish sbol-utilities 1.0a16 in this PR : https://github.com/bioconda/bioconda-recipes/pull/35151 . We bypassed the test which causing this issue (for the moment) : https://github.com/SynBioDex/SBOL-utilities/issues/134 and we will update the package once a solution will be found.

Hi, sbol-utilities 1.0a16 is now published on anaconda (bioconda channel): https://anaconda.org/bioconda/sbol-utilities/files. Thank you for your support.

Fantastic!  I will close this issue now.
My one remaining question for you: how should we ensure availability of future versions of sbol-utilities on conda?

Fantastic! I will close this issue now.
My one remaining question for you: how should we ensure availability of future versions of sbol-utilities on conda?

For now, I'm responsible for maintaining this package to the newest versions. When a new tag is released on https://github.com/SynBioDex/SBOL-utilities, anaconda (bioconda) will automatically open a PR and send a message to the maintainers to update it.
The 2 other maintainers for sbol-utilities conda package are @breakthewall and @tduigou but we can add anyone who wishes to maintain it.


Unable to get values of the editable cells

This is great plugin to convert html table to json objects. It worked perfectly fine for me until now.
But I have two table cells which are editable for the user, so I have put input tag inside my td.
I am getting the values of all the table cells except two td's having input element present inside it.
Can you please help me out with this issue?
Thanks

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

@Nagesh29 at the moment there is no way to get values from inputs. There are two tickets open (#14 & #16) for adding the functionality to handle inputs, but they are still in progress.
However, if you are want to keep using table-to-json, you could make use of the data-override option. After the input has been changed, just save the value into data-override to allow table-to-json to use it.


Add to onboarding reproduction logs

System: macOS 13.0.1
Python 3.11.0
Status:
I was able to follow the guide and reproduce the results easily.

Having seen no further progress, closing.


Feature/#73 fix simulator endpoint not working

This pull request is depended on: #67
And Closes #73

@Thomsen96  Are you sure this is going directly into main? We should never go directly from feature branch to main
It is also missing changes from #67 since these are on dev


Landing Page: Second Phase

Summary
The MVP landing page is complete 🎉 This issue is for the next iteration of the landing page. Please Add your comments below for suggestions for design features

Feedback from @suziqpid
l object to wording on the landing page which has the clunky phrase, "collecting together Autistic experiences etc.". Collecting implies placing things together so that word is superfluous. Only need ‘ collecting'.

Commnts from @skfantoni:
Add categorisation options
Decisions that need to be made:

[ ] At what point in the process does categorisation take place?
[ ] Who decides what stories go under what categories?
[ ] How are categories displayed on the site?
[ ] Can users limit which categories they see and when?

Dear Suzanna,
Being so new to most of this process can you give me a few examples of category headings, then l can see what l ingredients l can add to the working pot if any.
Suzanne lwai

On 13 Jul 2021, at 10:22, Georgia @.***> wrote:

Commnts from @skfantoni:
Add categorisation options
Decisions that need to be made:
At what point in the process does categorisation take place?
Who decides what stories go under what categories?
How are categories displayed on the site?
Can users limit which categories they see and when?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


[kubevirt_vm] Impossible to use variables for cpu.cores and cpu.threads

Downstream bug report:https://issues.redhat.com/browse/ACA-1390
It is not possible to create a VM with Ansible kubvirt_vm module and provide the amount of CPU cores or threads through another variable. The reason is, that the kubevirt_vm module expects those values to be integers, but due to constraints in Ansible the values always end up to be integers.
Examples (only relevent parts are shown)

Working example

- name: Provision KubeVirt Virtual Machine
  kubevirt.core.kubevirt_vm:
  ...
  spec:
    domain:
     ...
        cpu:
          cores: 2
          threads: 2

This is not working

- name: Set fact for kubevirt_vm_cpu_cores
  ansible.builtin.set_fact:
     kubevirt_vm_cpu_cores: 2

- name: Provision KubeVirt Virtual Machine
  kubevirt.core.kubevirt_vm:
  ...
  spec:
    domain:
     ...
        cpu:
          cores: "{{ kubevirt_vm_cpu_cores | int }}"
          threads: 2

Debug output shows that
TASK [sap_vm_provision : Set fact for kubevirt_vm_cpu_cores] *********************************************************************************************************************************
task path: /home/nils/data/git/community.sap_infrastructure/roles/sap_vm_provision/tasks/platform_ansible/redhat_ocp_virt/execute_provision.yml:190
ok: [localhost] => {
    "ansible_facts": {
        "kubevirt_vm_cpu_cores": 2
    },
    "changed": false
}

While the variable set in Ansible is clearly an integer, it does not get properly "casted" when inserting it within the yaml section:
           "spec": {
                "domain": {
                    "cpu": {
                        "cores": "2",
...
                        "threads": 2
                    },

The error message is as follows:
    "msg": "Failed to create object: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"message\":\"admission webhook \\\\\"mutatevirtualmachines.kubemacpool.io\\\\\" denied the request: json: cannot unmarshal string into Go struct field VirtualMachineInstanceTemplateSpec.spec.template.spec of type uint32\",\"code\":400}\\n'",
    "reason": "Bad Request"

This is a blocker in order to use kubevirt_vm for the community.sap_infrastructure.sap_vm_provision role.
Versions
ansible --version
ansible [core 2.16.2]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/nils/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.12/site-packages/ansible
  ansible collection location = /home/nils/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.12.0 (main, Oct  2 2023, 00:00:00) [GCC 13.2.1 20230918 (Red Hat 13.2.1-3)] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True

kubevirt-core-1.2.3

Why do you need to set cores and threads?

From what I can tell, this works without any special settings:
---
- hosts: localhost
  tasks:
    - name: Set cores
      ansible.builtin.set_fact:
        kubevirt_vm_cpu_cores: 2
    - name: Create VM
      kubevirt.core.kubevirt_vm:
        state: present
        name: testvm
        namespace: default
        spec:
          domain:
            cpu:
              sockets: 1
              cores: "{{ kubevirt_vm_cpu_cores }}"
              threads: 1
            devices: {}

Note that it does not work if the fact is defined like so kubevirt_vm_cpu_cores: "2", or when using the int filter like so cores: "{{ kubevirt_vm_cpu_cores | int }}".
Afterall, I think this is an issue with Ansible, not with the collection.

What if you define it in a nested variable structure in the vars section?  E.g.
---
- hosts: localhost
  vars:
    kubevirt_vm:
      cpu_cores: 2
  tasks:
    - name: Create VM
      kubevirt.core.kubevirt_vm:
        state: present
        name: testvm
        namespace: default
        spec:
          domain:
            cpu:
              sockets: 1
              cores: "{{ kubevirt_vm.cpu_cores }}"
              threads: 1
            devices: {}

And just to be sure, you don't set ANSIBLE_JINJA2_NATIVE=true, correct?

This also works:
---
- hosts: localhost
  vars:
    kubevirt_vm_cpu_cores: 2
  tasks:
    - name: Create VM
      kubevirt.core.kubevirt_vm:
        state: present
        name: testvm
        namespace: default
        spec:
          domain:
            cpu:
              sockets: 1
              cores: "{{ kubevirt_vm_cpu_cores }}"
              threads: 1
            devices: {}

This does NOT work:
---
- hosts: localhost
  vars:
    kubevirt_vm:
      cpu_cores: 2
  tasks:
    - name: Create VM
      kubevirt.core.kubevirt_vm:
        state: present
        name: testvm
        namespace: default
        spec:
          domain:
            cpu:
              sockets: 1
              cores: "{{ kubevirt_vm.cpu_cores }}"
              threads: 1
            devices: {}

To me it still looks like an issue within Ansible. There is not much we can do about it in the collection.

Thanks for taking the time to look into this @0xFelix . I agree, it's an Ansible bug and should be addressed there.


Question regarding coverage_depth_min and min_allele_fraction

Hi again.
Thanks for the previous help! The pipeline is now running and we have tested a lot of stuff. However I came across something. We have a project with targeted sequencing of 10 tumors (tumor only from FFPE). We were thinking of using the provided here (http://bcb.io/2015/03/05/cancerval/). However, when we try to set the coverage_depth_min and min_allele_fraction to some values, our prioritized vcf file contains passed variants with a read depth of eg. 100 while coverage_depth_min is set to 300. We are using the following setup:
details:
- algorithm:
    aligner: false
    mark_duplicates: false
    realign: false
    recalibrate: false
    variant_regions: /pathway/to/region/BED/BED_region_file_.bed
    variantcaller: [freebayes]
    indelcaller: false
    effects: vep
    coverage_depth_min: 300
    min_allele_fraction: 5
  analysis: variant2
  description: Sample1
  files:
  - /pathway/to/bam/Sample1.bam
  genome_build: GRCh37
  metadata:
    phenotype: tumor
    sex: female

We have already aligned the bam files with novoalign, so we are just interested in the variantcaller. One SNV looks like this:
#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	Sample1
3	37058918	.	A	G	905.73	PASS	AB=0.56338;ABP=5.48761;AC=1;AF=0.5;AN=2;AO=40;CIGAR=1X;DP=71;DPB=71;DPRA=0;EPP=4.96463;EPPR=11.486;GTI=0;LEN=1;MEANALT=1;MQM=59.525;MQMR=60;NS=1;NUMALT=1;ODDS=90.3702;PAIRED=0.95;PAIREDR=1;PAO=0;PQA=0;PQR=0;PRO=0;QA=1366;QR=834;RO=31;RPL=6;RPP=45.5712;RPPR=70.3259;RPR=34;RUN=1;SAF=29;SAP=20.5992;SAR=11;SRF=21;SRP=11.486;SRR=10;TYPE=snp;technology.ILLUMINA=1;CSQ=intron_variant|||ENSG00000076242|MLH1|ENST00000231790||||-/756|protein_coding|YES|CCDS2663.1|||,intron_variant&NMD_transcript_variant|||ENSG00000076242|MLH1|ENST00000413212||||-/52|nonsense_mediated_decay|||||,intron_variant|||ENSG00000076242|MLH1|ENST00000435176||||-/658|protein_coding||CCDS54562.1|||,intron_variant|||ENSG00000076242|MLH1|ENST00000441265||||-/105|protein_coding|||||,intron_variant&NMD_transcript_variant|||ENSG00000076242|MLH1|ENST00000447829||||-/58|nonsense_mediated_decay|||||,intron_variant|||ENSG00000076242|MLH1|ENST00000455445||||-/515|protein_coding||CCDS54563.1|||,intron_variant|||ENSG00000076242|MLH1|ENST00000456676||||-/679|protein_coding|||||,downstream_gene_variant|||ENSG00000076242|MLH1|ENST00000457004||||-/38|nonsense_mediated_decay|||||,intron_variant&NMD_transcript_variant|||ENSG00000076242|MLH1|ENST00000458009||||-/95|nonsense_mediated_decay|||||,intron_variant|||ENSG00000076242|MLH1|ENST00000458205||||-/515|protein_coding||CCDS54563.1|||,upstream_gene_variant|||ENSG00000224858|RPL29P11|ENST00000494408|||||processed_pseudogene|YES||||,intron_variant|||ENSG00000076242|MLH1|ENST00000536378||||-/460|protein_coding|||||,intron_variant|||ENSG00000076242|MLH1|ENST00000539477||||-/515|protein_coding||CCDS54563.1|||,upstream_gene_variant|||ENSG00000224858|RPL29P11|ENST00000600290|||||processed_pseudogene|||||;EPR=pass,clinvar,lowseverity	GT:GQ:DP:RO:QR:AO:QA:GL	0/1:160:71:31:834:40:1366:-101.801,0,-53.9493

The DP signal states a value of 71, which shouldn't pass the filter set to 300? Are we doing something wrong, or is it simply because we have tumor only samples and that some other conditions are taking precedence?
Thank you for a very nice work with the bcbio!
Best
Nicolai

Nicolai;
Sorry for the confusion with coverage_depth_min. This isn't a strict variant filtering parameter, but more of a guideline for assigning regions we should call in. It really wasn't intended for this use to restrict variant calling to high depth regions and is more meant to calling really low depth regions (<4) if dealing with low pass coverage. Your best bet if you'd like a strict depth filter is to apply this post-calling to restrict to only variants you'd care about; it's a bit hard to be generic enough to handle all the possible cases and variant outputs that users might want for this type of custom analysis.
Hope this helps.

Hi Brad
Thank you for the answer! However, I am not sure I fully understand it. So setting coverage_depth_min and min_allele_fraction wouldn't set the strictness of my final calls in the VCF file? I don't see calls below min allele frequency of 10, which I believe is the default?
I'm currently running 10 samples using the tumor only prioritization with a 60 gene panel and it really works so far. However, for future reference, what does the two values represent (eg how to interpret guideline for calls).
Best and thanks for great job
Nicolai

Niolai;
Sorry for the confusion, min_allele_fraction does set a minimum allele frequency for somatic calling. However, coverage_depth_min does not set a hard filter and is instead meant as a guide for determining callable regions. Please let us know if you have any other questions at all.


Loosen faraday requirements to allow 0.10 to be picked up

Used a similar upper version to what @mislav did in https://github.com/lostisland/faraday_middleware/commit/6532e65c3e25ce8bdf884d118602a41efc0d42e3#diff-2c97a3fba04553020532f4508b0b3bb4

Coverage remained the same at 96.166% when pulling 73181214f51701d2687b7bb8b6351ab6ca525912 on librariesio:master into fb502c755ed8801aa5d4575f18b86a9b7ecf9f5e on intridea:master.

Coverage remained the same at 96.166% when pulling 73181214f51701d2687b7bb8b6351ab6ca525912 on librariesio:master into fb502c755ed8801aa5d4575f18b86a9b7ecf9f5e on intridea:master.

Resolved by https://github.com/intridea/oauth2/pull/277.


Display Cilium upgrade skipped status in upgrade plan command

Display Cilium upgrade skipped status in upgrade plan command
Fixes: https://github.com/aws/eks-anywhere/issues/8853
> ./eksctl-anywhere upgrade plan cluster -f $CLUSTER_NAME.yaml
Checking new release availability...
NAME                 CURRENT VERSION       NEXT VERSION
EKS-A Management     v0.20.5+edd7640       v0.21.0-dev+build.291+294dfde
cert-manager         v1.14.7+fe09cef       v1.16.1+5d8f23c
cluster-api          v1.7.2+9efc12c        v1.8.4+ab49b25
kubeadm              v1.7.2+d36e661        v1.8.4+d751002
docker               v1.7.2+b91f85f        v1.8.4+94e333f
kubeadm              v1.7.2+302c0db        v1.8.4+236f530
etcdadm-bootstrap    v1.0.13+fcf0999       v1.0.14+4bacd57
etcdadm-controller   v1.0.22+d178343       v1.0.24+a1c69ab
cilium               v1.13.18-eksa.1       Upgrade skipped (skipUpgrade: true)
kubernetes           v1.30.3-eks-1-30-13   v1.31.1-eks-1-31-6

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve

/cherrypick release-0.20

/cherrypick release-0.21


Clarified semantics of Shape::getGlobalBounds(), improved related documentation

http://en.sfml-dev.org/forums/index.php?topic=18063
Makes clear that the returned rectangle is not the minimal bounding rect. Also fixes minor mistakes in related documentations.

This PR has been added to my merge list, meaning it will be merged soon, unless someone raises any concerns.


Support format property for object type of schemas

What version of Ajv you are you using?
8.12.0
What problem do you want to solve?
Unable validate object type of schemas which properties are dependent to each other.
Consider the following phone number schema:
const schema = {
    type: 'object',
    required: ['email', 'phone'],
    properties: {
        email: { type: 'string', format: 'email' }, // I have the email format and it works well
        phone: {
            type: 'object',
            required: ['num', 'country'],
            /* format: 'phone_num' // This is what I wish for. */
            properties: {
                num: { type: 'string' },
                country: { type: 'string', format: 'country_code' } // I have the country_code format and it works well
            }
        }
    }
}

Phone number schema needs one validator function that has num and country, as you guess. But I didn't see any way to validate this object as a whole in docs. Is there a recommended way to achieve this? Or is it something ajv doesn't support?
What do you think is the correct solution to problem?
Support format property for object type of schemas.
Will you be able to implement it?
I don't know yet.

After reviewing the docs it looks like format keyword only applies to type string and I don't think this is something we would be open to changing. You could, however, try adding a custom keyword. I believe keywords get access to more of the context and can be used on any data type.


[tool] add versions-maven-plugin

Our new version is about to be released.I want to know if we are currently manually modified version numbers? If so, then this plug-in can effectively reduce our labor.

Our new version is about to be released.I want to know if we are currently manually modified version numbers? If so, then this plug-in can effectively reduce our labor.

I found that maven has relevant commands. This plug-in only provides richer functions. 😥


electron-cash: fix build

Motivation for this change
This commit fixes #82221. Requirements file had changed a bit so the patching needed updating.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

cc: @nyanloutre @Lassulus

seems to work as expected


Get Event details

I can work out how to navigate getting data from the XML but can't see how to to get the details from an event i.e. the description you can see in event viewer.  Is this possible?

The textual representation (for example, the "general" tab) for a given EventID is not available through this atm. I've been poking around trying to figure out exactly where that comes from, and so far the best I can tell is that it actually involves loading up a DLL for each source provider and calling a format function from it. If that's the case, that seems very dirty.

Yup that seems excessive, thanks for the quick reply.

Np


Manage Namespace and support OpenShift

csi-driver-smb has to be updated to v1.7.0 due to an upstream bugfix
which added the serviceAccountName to the node DaemonSet.
We avoid a breaking change by continuing to create the ServiceAccounts
in this component.
Closes #22
Checklist

[x] PR contains a single logical change (to build a better changelog).
[x] Update the documentation.
[x] Categorize the PR by setting a good title and adding one of the labels:
bug, enhancement, documentation, change, breaking, dependency
as they show up in the changelog.
[x] Link this PR to related issues or PRs.

After https://github.com/projectsyn/component-csi-driver-smb/pull/23 is merged, this PR should be rebased.


Example from README doesn't work

const { cosmiconfig } = require('cosmiconfig');
should be
const cosmiconfig = require('cosmiconfig');

Yes, sorry @nikolay-borzov we're in a transition period and the README on master reflects the upcoming, not-yet-released version. You can see the README of the latest release at https://github.com/davidtheclark/cosmiconfig/tree/5.2.1


What is TypeScript Salsa?

I have noticed a few things with the tag and a mention of a Salsa server, design meeting minutes that mention it and that some things will only be available in Salsa, but I cannot seem to find any publicly available information that explains what it is.
Can anyone enlighten?

It's a codename for this effort: https://github.com/Microsoft/TypeScript/issues/4789


Add validate identifier protocol

Added endpoint ValidateIdentifier to allow IDE's to verify identifiers during certain operations (i.e renaming)

@armanio123,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

We have some identifier parsing logic in the managed side. we use that for detecting the completion range. i wonder why we do not do the same for this one instead of having a new command.

I just checked the managed side and is fairly limited on what the TS server have already implemented. We'll need to duplicate some code if we want to achieve the same.
In any case, @billti and I discussed about implementing it on the managed side and decided not to go for it as it will add some duplication/maintainability that is not worth it. We agreed to rollback any changes for now and reopen if needed.
Thanks for the input.


Example VFS locking can have name collisions across filesystems

The example IndexedDB and OPFS VFS classes use WebLocks to implement locking. The current implementation locks a database file by acquiring a WebLock with the filename. This naming scheme is not specific enough because there may be database files with the same name across different filesystems in the same origin.
For example, there can be two IndexedDB databases, "idb1" and "idb2", with each containing an SQLite database named "foo.db". These SQLite databases will use the same named WebLock(s). This could cause unnecessary degraded performance.
The fix needs to made in each IndexedDB and OPFS VFS that uses WebLocks (so not AccessHandlePoolVFS, which doesn't need locks because it doesn't support concurrency) to make the lock name unique across filesystems and filenames. A workaround is to use unique SQLite database names if your application uses multiple filesystems.

There has been no engagement on this bug and it's easy to work around if necessary. I'm marking it won't fix.


added strain exercise

Thanks a lot @PaulNoth!
(I've renamed the main file to maintain track consistency (the C# track you used as an example does thing slightly different))


Execution of module functions fail when loaded with ":" in path

Example:
[~]─> mkdir .elvish/lib/a
[~]─> echo "fn foo { echo foo }" > .elvish/lib/a/b.elv
[~]─> use a/b
[~]─> b:foo  ### Works
foo
[~]─> use a:b
[~]─> a:b:foo  ### Doesn't work
Exception: exec: "a:b:foo": executable file not found in $PATH
[tty], line 1: a:b:foo

For reference, a:b:foo is highlighted in green when typing it, so it's existence is recognized, but execution fails.

Using use with colons in the module name has been deprecated, and I probably unintentionally broke it...


Bug: tooltip not working well in Internet Explorer when angular UI is not too simple

Bug:
In Microsoft Windows 7 and 10, with Internet Explorer, when the UI is not too simple, the tooltip may have the following behaviors:

If the button/element (with tooltip) is is near the left edge of the screen, the tooltip is align too much to the left, thus the left part gets trimmed at the edge of the screen.
Or part of the tooltip get cut out by other elements nearby.
Or the tooltip is not appearing at all.

It is easy to reproduce the problem:

Open https://material.angular.io/components/component/tooltip in Internet Explorer v11
In the Examples tab, click on the "Edit in Plunker" link to open the Examples app in Plunker, you will see the tooltip is not appearing, or sometime is flashing for less then 0.5 second.

Tooltip is working well in Firefox and Chrome.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 2 and 4, Windows 7, 10, TypeScript 2.0-2.3
Is there anything else we should know?
I had been using Tooltip of https://ng-bootstrap.github.io/#/components/tooltip which is working well in all browsers, and would replace those in ng-bootstrap with counterparts in material2. Hopefully the material2 team could catch up soon covering every components in ng-bootstrap.

I'm experiencing the same issue . works fine in chrome and Firefox. angular 4 , ts 2.3.2. Also MaterialModule.forRoot() gives an error, type does not contain forRoot

In the latest Beta 7, this is fixed. Though it has other problem now as I has reported at #5428


I can't do vsce package on my mac but on the pc (It has to do with the EventEmitter)

Hi
Here is the output:
(~/git/vscode-imagepreview): vsce package
Executing prepublish script 'node ./node_modules/vscode/bin/compile'...
Error: Command failed: /bin/sh -c node ./node_modules/vscode/bin/compile
This is the repository I try to package: https://github.com/buzzfrog/vscode-imagepreview
/dag

Is this still an issue I see your package in the gallery?

Yes,
I started this morning trying to use my mac to publish, but after a couple of hours I switched to PC and published from that machine.
By the way, I tried your example, Erich, also. The one with CSS preview. Had the same problem with that one.

Maybe it has to do with the node version used? Which versions do you have in each machine?
What do you get when running node ./node_modules/vscode/bin/compile in the mac?

(~/git/vscode-imagepreview/node_modules/vscode/bin): node compile
../../../src/extension.ts(3,25): error TS2307: Cannot find module 'vscode'.
../../../test/extension.test.ts(11,25): error TS2307: Cannot find module 'vscode'.

Can you remove the node_modules folder and run npm install?

It worked. Great.


No implementation found for method getAll on channel plugins.flutter.io/shared_preferences in ^2.0.6

MissingPluginException (MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences))
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
shared_preferences: ^2.0.6
http: ^0.13.3
Thrown by the following line:
_prefs = await SharedPreferences.getInstance();
Flutter Doctor -v:
    • Flutter version 2.2.3 at /home/roni/snap/flutter/common/flutter
    • Framework revision f4abaa0735 (5 days ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /home/roni/Android/Sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /home/roni/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+0-b944-P17168821)
    • All Android licenses accepted.

[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Android Studio (version 4.2)
    • Android Studio at /home/roni/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+0-b944-P17168821)

[✓] Connected device (1 available)
    • Nokia 6 2 (mobile) • D0AA002279J91965553 • android-arm64 • Android 10 (API 29)

! Doctor found issues in 1 category.```

Hi. You have to reinstall your app after setting this plugin to your dependencies. Try this please and let me know if it doesnt help

I have ran flutter clean and restarted multiple times, no success

@raikasdev
Check if this solution works for you.

I realized that the templqte I had used had old android embedding and not was not AndroidX. I ran flutter create in a new folder, pasted my pubspec.yaml and lib folder in there and it worked.