Testing support on AWS

We would like to put up a reference server on AWS for testing, and ultimately, wider, general use.
The dataset we should use for testing is probably:
http://aws.amazon.com/1000genomes/
It would be good to test read and variant support.
Assuming @dcolligan takes this on at UCSC, Hannes or Mark can give you our AWS account details.

I have a server set up with example data at this address now:
http://ec2-54-200-59-190.us-west-2.compute.amazonaws.com/ga4gh/
But I'm stopping the instance until I figure out the configuration with the 1000 genomes data set.

#339 and #340 need to be fixed before we can test remote reads and variants
Also, @benedictpaten , can you be more specific about the list of files you would like to see served?  There is a lot of stuff in that s3 bucket.

Hmm, as a starting point I don't think it matters which bam/vcf files we
use. I tried looking through the s3 bucket but I'm totally confused about
what's there. Is there a sensible way of viewing/navigating it.
On Tue, Apr 7, 2015 at 1:37 PM, Danny Colligan<EMAIL_ADDRESS>wrote:

#339 https://github.com/ga4gh/server/issues/339 and #340
https://github.com/ga4gh/server/issues/340 need to be fixed before we
can test remote reads and variants
Also, @benedictpaten https://github.com/benedictpaten , can you be more
specific about the list of files you would like to see served? There is a
lot of stuff in that s3 bucket.
—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/335#issuecomment-90724512.

Yeah, are there any external docs that describe the contents of this project?
There are some READMEs scattered around that bucket.  What's annoying is that the standard command for interacting with s3, s3cmd, requires credentials to set up (AFAICT) meaning that a non-credentialed user just can't use it for public buckets.  I've written a tool to download them: https://github.com/dcolligan/server/blob/335_aws_deploy/scripts/save_1000g_readmes.py

Okay, I'll take a look at the read-mes shortly. Thanks!
On Wed, Apr 8, 2015 at 12:41 PM, Danny Colligan<EMAIL_ADDRESS>wrote:

Yeah, are there any external docs that describe the contents of this
project?
There are some READMEs scattered around that bucket. What's annoying is
that the standard command for interacting with s3, s3cmd, requires
credentials to set up (AFAICT) meaning that a non-credentialed user just
can't use it for public buckets. I've written a tool to download them:
https://github.com/dcolligan/server/blob/335_aws_deploy/scripts/save_1000g_readmes.py
—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/335#issuecomment-91014719.

Graphical clients that support S3 should be able to see the directory with ab anonymous login:

Also the s3 bucket is a complete mirror of the FTP site, so you can get a listing of files from that.

Also note that Genome in a Bottle is also on S3 at http://giab.s3.amazonaws.com

@delagoya what client is that that you're using?

The excellent and open source Cyberduck
https://cyberduck.io/?l=en

Marking this as blocked until we have access to the libcurl based htslib code.
See #612 for discussion.

Andreas has support for  htslib 1.3 in pysam and would like feedback before releasing.
Danny or Maciek, can you verify this???
https://github.com/pysam-developers/pysam/issues/195#issuecomment-174350988

Looks like @jeromekelleher is on it.

Thanks all. About libcurl, I have taken it out of the htslib that comes with pysam. I was worried that it would cause widespread compilation issues. For example, on our redhat system, libcurl was present but too old. To use libcurl, please make sure you link pysam against an external htslib with libcurl support.
To do this, please set the HTSLIB_LIBRARY_DIR and HTSLIB_INCLUDE_DIR environment variables when running python setup.py install
Best, Andreas

Thanks for clarifying this @AndreasHeger. When you say libcurl is taken out, does that mean we fall back on the old networking code, or is there no support for remote files? Does the bdist_wheel that you built for pysam 0.8.5 use libcurl?

Hi @jeromekelleher, there is support for remote files, but without libcurl. The htslib coming with pysam is compiled without running configure and thus defaults to "conservative setttings" according to the docs. I think that the pysam-0.8.5 wheel also does not include libcurl. I can create a wheel that will use a system-installed htslib and upload it this evening.

Ah OK, thanks. Would it be possible to put a function in pysam to report on whether libcurl is in use or not? This would make it easier to test whether our compilation has succeeded.

certainly, will think of something.

Great, thanks @AndreasHegerGenomics.

@jeromekelleher, I have looked into this, but I am not sure on how to get functionality of an external htslib at runtime. I can return the configuration of included htslib at compiletime, but that will probably be of limited help. I am still following this up, though.
Anyways, I have updated the wheel to link against an external htslib.

Hi Andreas,
Do you mean something like dynamic importing of modules, such as something like this:

If I have a file called external_function.py with the following contents:

def mysum(x, y):
	return int(x) + int(y)

And in my main file that I run - which I call my_external_test.py - I have the following:

import sys

def main():

 	extsum = __import__(sys.argv[3]);

	x = sys.argv[1]
	y = sys.argv[2]

	print( extsum.mysum(x,y) );

# Insures that the starting function is the main function

if __name__ == "__main__":
    main()

So the results of what I run would be the following:
> python my_external_test.py 3 4 external_function
7

Let me know if this is what you were looking for.
Thanks,
Paul

Compile-time configuration would still be a big help @AndreasHegerGenomics, as we would very much prefer to install entirely from pip rather than link against an external htslib. Would it be possible to make compiling htslib with libcurl support an option? I'm happy to do some work on this if it would help.

You can tell whether an underlying htslib is using libcurl or the old knetfile.c code by trying to open an https://… or HTTP://… URL.  Only libcurl can do https, and only libcurl understands uppercase URL schemes.
@AndreasHeger: What version of Red Hat are you on, and what version of libcurl does it come with?  (And have you considered upgrading to something less prehistoric? :smile:)

Hi John/Andreas,
Would it not it just be easier to perform that via objdump by going into the pysam python package install directory, and performing the following:
[pysam]$ objdump -x libchtslib.so  | grep knet
0000000000000000 l    df *ABS*<PHONE_NUMBER>000000              knetfile.c
00000000000264f0 g     F .text<PHONE_NUMBER>00012b              knet_open
0000000000026120 g     F .text<PHONE_NUMBER>00001d              knet_dopen
0000000000026350 g     F .text<PHONE_NUMBER>000125              knet_seek
0000000000026140 g     F .text<PHONE_NUMBER>00020e              knet_read
0000000000026480 g     F .text<PHONE_NUMBER>000065              knet_close
[pysam]$ objdump -x libchtslib.so  | grep curl

Paul

@pgrosu That won't work if htslib has been configured with the libcurl backend as a separate plugin (not that that will happen as long as pysam isn't running htslib's configure).  Whether it sees and uses a libcurl plugin is a runtime decision, so best to do some kind of runtime test.  Ideally htslib would have some way of enumerating plugins and/or URL schemes understood, which is samtools/samtools#367 and following.
(Note that the knet functions will always be present in libchtslib.so as a fallback.)

What would be the steps we need to take the enable the libcurl plugin without running ./configure --enable-libcurl @jmarshal? It would be a lot easier for our users if we can install pysam directly with pip rather than requiring them to compile and install htslib, install it into a non-standard location, manage LD_LIBRARY_PATH and all that messiness.
Ideally, we would like to set an environment variable (e.g.) PYSAM_USE_LIBCURL that pysam's setup.py can detect and alter the build process accordingly. What do you think @AndreasHegerGenomics, would this be a reasonable approach? I.e., we fall back on the current safe approach if the variable isn't set, and if it is, it's up to the user to ensure that libcurl can be found by the compiler by setting CFLAGS, LDFLAGS etc.

Thanks, that is all very helpful. I propose to do the following:

run configure with increasingly conservative settings. configure is quite fast, so should not be too much of an issue, looking for an env variables as well, such as HTSLIB_CONFIGURE_OTPTIONS
If configure fails, revert to the default, conservative config.h
create a version.py from a template that echo's the htslib mode (external/built-in) and exports the settings in config.h in the latter case.

@jmarshall, the system is a RH6 system with libcurl 7.19.7-37.el6_4. It fails at
hfile_libcurl.c: In function 'easy_errno':
hfile_libcurl.c:93: error: 'CURLE_NOT_BUILT_IN' undeclared (first use in this function)
hfile_libcurl.c:93: error: (Each undeclared identifier is reported only once
hfile_libcurl.c:93: error: for each function it appears in.)

CURLE_NOT_BUILT_IN only came in 7.21.5, see
http://curl.haxx.se/libcurl/c/symbols-in-versions.html
Best wishes,
Andreas

Many thanks Andreas helping us out.  Your instructions are very simple and straightforward.
Hi Jerome, et al.,
I did something similar based on some of the recommendations by Andreas and the group, and I just tested the following process, which worked like a charm - notice the libcurl at the end:
$ wget --quiet https://pypi.python.org/packages/source/p/pysam/pysam-0.8.4.tar.gz
$ tar zxvf pysam-0.8.4.tar.gz
$ cd pysam-0.8.4
$ wget --quiet https://github.com/samtools/htslib/releases/download/1.3/htslib-1.3.tar.bz2
$ tar xjvf htslib-1.3.tar.bz2
$ cd htslib-1.3
$ ./configure --enable-libcurl
$ make
$ cd ..
$ export HTSLIB_LIBRARY_DIR=`pwd`/htslib-1.3
$ export HTSLIB_INCLUDE_DIR=`pwd`/htslib-1.3
$ export MY_PYTHON_PKGS=`python -c "import site; print(site.USER_SITE)"`
$ python setup.py install --user
$ export CURRENT_DIR=`pwd`
$ cd $MY_PYTHON_PKGS
$ cd `ls -t | grep pysam | head -n1`/pysam
$ cp $CURRENT_DIR/htslib-1.3/libhts.so .
$ ln -s libhts.so libhts.so.1
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
$ ldd libchtslib.so | grep curl
        libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00002aaaabd8d000)
$ cd $CURRENT_DIR

You can put it all in script if you want, and it will work like magic :smile:
Have a great weekend everyone!
~p

Thanks for testing. I have put a new version of the tar-ball that will run configure here:
https://www.cgat.org/downloads/public/pysam/sdist/psyam-0.8.5.tar.gz
To pass options to the configure script, set HTSLIB_COMPILE_OPTIONS
Best wishes,
Andreas

Hi Andreas,
Thank you for providing the updated version.  Here are a few things:

The psyam-0.8.5.tar.gz probably should be renamed as pysam-0.8.5.tar.gz :)

Regarding defining PLUGINPATH for htslib, would that also be defined through HTSLIB_COMPILE_OPTIONS or somewhere else?  I tried the following and it didn't work:

./configure --enable-plugins PLUGINPATH=\"/home/pgrosu/test/htslib\"

When the make is performed, one still sees something like this, with PLUGINPATH being assigned /usr/local/libexec/htslib:
gcc -g -O2 -I. -DPLUGINPATH=\"/usr/local/libexec/htslib\" -c -o plugin.o plugin.c

And now for the test of truth :) So for this test I did the following to make it work, as I sometimes got some errors:

Configured HTSLIB_MODE="external",
Configured HTSLIB_COMPILE_OPTIONS="--enable-libcurl",
Downloaded the htslib-1.3 from the web,
Renamed the original htslib directory as htslib-orig,
Created a htslib symbolic link to point to the new downloaded and extracted htslib-1.3 folder,
Just to be sure the htslib.so got generated, I ran ./configure --enable-libcurl, and then ran make from the htslib directory - both of which I ran manually.

So without further ado, below are all the steps that I performed:
$ wget --quiet https://www.cgat.org/downloads/public/pysam/sdist/psyam-0.8.5.tar.gz
$ tar zxvf psyam-0.8.5.tar.gz
$ cd psyam-0.8.5
$ wget --quiet https://github.com/samtools/htslib/releases/download/1.3/htslib-1.3.tar.bz2
$ tar xjvf htslib-1.3.tar.bz2
$ mv htslib htslib-orig
$ ln -s htslib-1.3 htslib
$ export HTSLIB_COMPILE_OPTIONS="--enable-libcurl"
$ export HTSLIB_MODE="external"
$ export HTSLIB_LIBRARY_DIR=`pwd`/htslib
$ export HTSLIB_INCLUDE_DIR=`pwd`/htslib
$ cd htslib
$ ./configure --enable-libcurl
$ make
$ cd ..
$ cp setup-with-make.py setup.py
$ python setup.py install --user
$ export MY_PYTHON_PKGS=`python -c "import site; print(site.USER_SITE)"`
$ export CURRENT_DIR=`pwd`
$ cd $MY_PYTHON_PKGS
$ cd `ls -t | grep psyam | head -n1`/pysam
$ cp $CURRENT_DIR/htslib-1.3/libhts.so .
$ ln -s libhts.so libhts.so.1
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
$ ldd libchtslib.so | grep curl
        libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00002aaaabd8d000)
$ cd $CURRENT_DIR

Thank you,
Paul

Thanks for this @AndreasHeger, this sounds like a great approach. I've tried it out, but I think the configure script isn't being included in the tarball. Should it be added to MANIFEST.in?

Thanks all.
@jeromekelleher,  updated and (briefly) tested.
@pgrosu,
Re 1: Saturday night I was staring at it for minutes and did not see the psyam/pysam diffference. Thanks!
Re 2: The following should work:
export HTSLIB_COMPILE_OPTIONS="--enable-plugins --with-plugin-path=/usr/local/lib"
python setup.py install

but not tested.
Re 3: To link against an external htslib, no editing/changing of the htslib dir should be needed:
export HTSLIB_LIBRARY_DIR=/usr/local/lib
export HTSLIB_INCLUDE_DIR=/usr/local/include
python setup.py install

This will ignore the htslib code that comes within the pysam tarball/repository.
I will add installation instructions to the docs and also add them to the travis. Currently, only install from the repository is tested, but not from the tarball.

RH6 system with libcurl 7.19.7-37.el6_4. It fails at
hfile_libcurl.c:93: error: 'CURLE_NOT_BUILT_IN' undeclared (first use in this function)

Thanks, fixed in samtools/htslib@2805ae8041f2d49b889d0b4f54c53070e4791dbb.  It would be appreciated if you would report these problems upstream, as then there is an opportunity to get them fixed!
Miscellaneous comments:

Please make that environment variable HTSLIB_CONFIGURE_OPTIONS as you originally proposed: these are configure options, not compile options.

The plugin path configure options are described in htslib/INSTALL.  HTSlib considers all the files that match certain patterns in these directories, so it's recommended to make them a bespoke subdirectory.  So --with-plugin-path=/usr/local/libexec/htslib, which is in fact the default.
See samtools/README for plugin path suggestions for running-in-place rather than installing HTSlib.

I've just got around to trying this out @AndreasHeger (sorry for the delay), and I'm hitting an obscure run-time error:
  File "/home/jk/.local/lib/python2.7/site-packages/pysam/__init__.py", line 3, in <module>
    from pysam.cutils import *
ImportError: /home/jk/.local/lib/python2.7/site-packages/pysam/cutils.so: undefined symbol: reset_getopt

I just ran pip install , and didn't set any env variables.

@jeromekelleher Seems like you're in need of some make clean or equivalent: reset_getopt disappeared at the weekend in pysam-developers/pysam@7954ff1a6df7a4a7e088e7b17bfd4e9868bb94dc.

@AndreasHeger, @jmarshall, @jeromekelleher - We might be close, but I had to go through many failures of errors over the weekend until I came up with the procedures I put above.  Ideally what I would like to see is a similar step-by-step that will always work without any issues, which is what I did before posting the procedures.  Hopefully all edge-cases will be tackled, and this way users would not need to think about the process, and would just follow it with the expectation that everything will work.
`p

Thanks for the pointers @jmarshall --- I'm building directly from the pysam repo now, and it's working well. I'm still not able to open https URLS, but I'm sure it's getting close. Just so I understand what's going on here, there must be a separate .so file (or whatever) in some directory for the libcurl plugin, which htslib searches at run time? I.e., there's no option to compile in libcurl directly into the main library?

@jeromekelleher , quick thought, will check later tonight. It might be that for builtin htslib I will need to add libcurl as a link dependency. The current setup might compile in libcurl ability, but then the library is not pulled in at runtime. Do you have a https:// BAM that I could use for testing?

@jeromekelleher In the setup.py file you will see the following:
cutils = Extension(
    "pysam.cutils",
    [source_pattern % "utils", "pysam/pysam_util.c"] +
    glob.glob(os.path.join("samtools", "*.pysam.c")) +
    # glob.glob(os.path.join("samtools", "*", "*.pysam.c")) +
    glob.glob(os.path.join("bcftools", "*.pysam.c")) +
    # glob.glob(os.path.join("bcftools", "*", "*.pysam.c")) +
    htslib_sources +
    os_c_files,
    library_dirs=["pysam"] + htslib_library_dirs,
    include_dirs=["samtools", "bcftools", "pysam"] +
    include_os + htslib_include_dirs,
    libraries=["z"] + htslib_libraries,
    language="c",
    extra_compile_args=extra_compile_args,
    define_macros=define_macros
)

The following two links will help with what is happening:
https://docs.python.org/2/extending/building.html
https://docs.python.org/3/extending/building.html
On my system, after the above build I see the expected following files:
$ find . | grep cutils
./pysam/cutils.pxd
./pysam/cutils.c
./pysam/cutils.pyx
./build/lib.linux-x86_64-2.7/pysam/cutils.pxd
./build/lib.linux-x86_64-2.7/pysam/cutils.so
./build/temp.linux-x86_64-2.7/pysam/cutils.o
$

Looking at the setup.py file might help clarify why some things are happening.
Hope it helps,
~p

Thanks for looking into it @AndreasHeger.

Do you have a https:// BAM that I could use for testing?

Unfortunately not, the server I'm using is behind the firewall...

Hmmm, reading the configure help we have

--enable-plugins
Use plugins to implement exotic file access protocols and other
specialised facilities.  This enables such facilities to be developed
and packaged outwith HTSlib, and somewhat isolates HTSlib-using programs
from their library dependencies.  By default, any enabled pluggable
facilities (such as iRODS and libcurl file access) are built directly
within HTSlib.

So, it does sound like we should be able to build the plugins directly into htslib.

If you configure with --enable-libcurl but without --enable-plugins then the libhts.{a,so} produced will have libcurl capabilities burnt into it and will not search for hfile plugins at runtime.  If pysam links against libhts.so.1 all will be well (but that libhts.so.1 will also need to be available when you run pysam-using code).  OTOH if pysam links against libhts.a it will have to take extra steps to link against -lcurl -lcrypto or so as well — compare LIBCURL_LIBS in htslib/config.mk.in.

Great, thanks @jmarshall; I'm poking through it now, think I see the problem...

@jeromekelleher That is always the fail-safe way :smile:

Some progress made in https://github.com/pysam-developers/pysam/pull/217, but not quite there yet.

@jmarshall , thanks I will report more. I did agree that it was an issue of an old, unsupported system.

Please make that environment variable HTSLIB_CONFIGURE_OPTIONS as you originally proposed: these are configure options, not compile options.
DONE

The plugin path configure options are described in htslib/INSTALL. HTSlib considers all the files that match certain patterns in these directories, so it's recommended to make them a bespoke subdirectory. So --with-plugin-path=/usr/local/libexec/htslib, which is in fact the default.

See samtools/README for plugin path suggestions for running-in-place rather than installing HTSlib.

Thanks!

@pgrosu and @jeromekelleher  I have added installation instructions here:
http://pysam.readthedocs.org/en/latest/installation.html
Admittedly, they might describe an ideal state not yet achieved.

I've been digging through this a bit more @AndreasHeger, and it looks like libcurl is being used for HTTP transactions, but HTTPS opens are failing sometime before hFILE.hopen:
(test-env)jk@holly$ python dev.py
Finding handler for 'http://holly.well.ox.ac.uk/~jk/HG00096.bam'
Got: 'libcurl'
Finding handler for 'http://holly.well.ox.ac.uk/~jk/HG00096.bam.csi'
Got: 'libcurl'
Finding handler for 'http://holly.well.ox.ac.uk/~jk/HG00096.csi'
Got: 'libcurl'
Finding handler for 'HG00096.bam.bai'
dbb6e8ece0b5de29da56601613007c2a
Traceback (most recent call last):
  File "dev.py", line 7, in <module>
    af = pysam.AlignmentFile("https://holly.well.ox.ac.uk/~jk/HG00096.bam")
  File "pysam/calignmentfile.pyx", line 326, in pysam.calignmentfile.AlignmentFile.__cinit__ (pysam/calignmentfile.c:4564)
  File "pysam/calignmentfile.pyx", line 398, in pysam.calignmentfile.AlignmentFile._open (pysam/calignmentfile.c:5485)
  File "pysam/calignmentfile.pyx", line 546, in pysam.calignmentfile.AlignmentFile._open (pysam/calignmentfile.c:6983)
IOError: file `https://holly.well.ox.ac.uk/~jk/HG00096.bam` not found

I bunged some printfs into hfile.c to see what was going on with the handlers. I think we're quite close to sorting this out now.

Thanks, @jeromekelleher and many thanks for perservering. I currently don't have a way to test this, otherwise I would help. On MondayI will talk to our sysadmin if there is a server I can use to test.
Will command-line samtools connect to the file without problems?

I can volunteer AWS resources for this effort. Please email me directly at angel at amazon com

On Feb 4, 2016, at 11:59 AM, Andreas Heger<EMAIL_ADDRESS>wrote:
Thanks, @jeromekelleher and many thanks for perservering. I currently don't have a way to test this, otherwise I would help. On MondayI will talk to our sysadmin if there is a server I can use to test.
Will command-line samtools connect to the file without problems?
—
Reply to this email directly or view it on GitHub.

Thanks Angel (@delagoya) for helping us out with resources - it is very appreciated!
@AndreasHeger, I looked at the installation instructions and they looks very nice - and understandably is an ideal state to achieve, which I also strive for.  Just a couple of things:
When it says:

If these fail, for example due to missing library dependencies (libcurl, libcrypto), it will fall back to conservative defaults.

I feel that the program should automatically try to get the required dependencies off the web, adapt itself to the installation environment and provide the user what he/she requested, without negatively affecting the installation environment.  For instance, @ekg's vg will gather all the necessary dependencies to build itself.  The installation program should be a finite state machine that tries all possibilities to deliver to the user what he/she requested.
For instance, if I performed the following it still falls on the defaults as noted:
$ export HTSLIB_CONFIGURE_OPTIONS="--enable-plugins --enable-libcurl"
$ pip install pysam
$ ldd ./lib/python2.7/site-packages/pysam/libchtslib.so | grep curl
$ objdump -x ./lib/python2.7/site-packages/pysam/libchtslib.so | grep knet
0000000000000000 l    df *ABS*<PHONE_NUMBER>000000              knetfile.c
0000000000021670 g     F .text<PHONE_NUMBER>00012b              knet_open
00000000000212b0 g     F .text<PHONE_NUMBER>00001d              knet_dopen
00000000000214d0 g     F .text<PHONE_NUMBER>000125              knet_seek
00000000000212d0 g     F .text<PHONE_NUMBER>0001fe              knet_read
0000000000021600 g     F .text<PHONE_NUMBER>000065              knet_close
$

I know @jeromekelleher is helping us out with integration of libcurl, which is awesome!  And hopefully the installation script is able to learn from the installation environment, and adapt accordingly to install what the user wants in the way he/she wants to.  For instance, it should be a one-line thing and straight-forward:
$ get-for-python.sh pysam --with-builtin="libcurl, plugins" --in-user-home

This way the get-for-python.sh script does what it needs to provide to the user the requested features.  We have to always adapt to the our users, and make the GA4GH reference server a turn-key solution, where the majority of folks will think it just works without any major intervention.  This will make adopting new users to GA4GH much easier.  Again, I fully appreciate all the hard work by everyone, but I strongly feel about having the machine adapt to the user, and not the other way around.  It is something I strive in all my programs, and am always pleasantly surprised by the end-user reaction.
Hope folks feel comfortable with this approach.
Paul

After playing with a bit more, I realise that I wasn't actually compiling the Cython code, and so the update to get 'https' recognised as a remote URL wasn't working. After fixing this, we now pass the URL down to htslib and the libcurl handler is invoked correctly. However, we're still not successfully opening the https URLs:
Finding handler for 'https://holly.well.ox.ac.uk/~jk/HG00096.bam'
Got: 'libcurl'
[E::hts_open_format] fail to open file 'https://holly.well.ox.ac.uk/~jk/HG00096.bam'
Traceback (most recent call last):
  File "dev.py", line 7, in <module>
    af = pysam.AlignmentFile("https://holly.well.ox.ac.uk/~jk/HG00096.bam")
  File "pysam/calignmentfile.pyx", line 326, in pysam.calignmentfile.AlignmentFile.__cinit__ (pysam/calignmentfile.c:4803)
  File "pysam/calignmentfile.pyx", line 414, in pysam.calignmentfile.AlignmentFile._open (pysam/calignmentfile.c:5956)
  File "pysam/calignmentfile.pyx", line 561, in pysam.calignmentfile.AlignmentFile._open (pysam/calignmentfile.c:7604)
ValueError: could not open file (mode='r') - is it SAM/BAM format?

Apache doesn't report any attempts at reading the file in its logs.
Anyway, I don't think we need https support right now, just getting libcurl access to plain ole http should get us up and running on Amazon and other cloud stores. @delagoya, some help from AWS on getting https, s3 etc protocol support in pysam would be great!

Finding handler for 'https://holly.well.ox.ac.uk/~jk/HG00096.bam'
Got: 'libcurl'
[E::hts_open_format] fail to open file 'https://holly.well.ox.ac.uk/~jk/HG00096.bam'

Set hts_verbose to 8 or more, and libcurl will give you lots of information about what went wrong between these two lines.  (I can't remember whether pysam acquired a function for setting hts_verbose or not…)

Aha, good call, thanks @jmarshall
Finding handler for 'https://holly.well.ox.ac.uk/~jk/HG00096.bam'
Got: 'libcurl'
* Hostname was found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to holly.well.ox.ac.uk (<IP_ADDRESS>) port 443 (#1)
* found 174 certificates in /etc/ssl/certs/ca-certificates.crt
* server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
* Closing connection 1
[E::hts_open_format] fail to open file 'https://holly.well.ox.ac.uk/~jk/HG00096.bam'

Obviously we don't want to accept self-signed certs by default, but this should be configurable (curl for example is happy to read from the server, but wget refuses). What's the recommended approach for interacting with libcurl here?
On a side note, It doesn't look like pysam.set_verbosity() works when building pysam in 'separate' mode (I updated the C code to get the trace above). It seems likely that this is because we have several different copies of htslib compiled, and we would need to set hts_verbose separately for each one. This will be essential for debugging these sorts of issues.

@pgrosu , many thanks for your comments. I agree that installation should be as painless as possible.
With respect to the pysam code base, however, I think the best place to solve installation issues is on a level above pysam, whether it is through a wrapper script (as you suggested), rpm dependencies, conda, docker, etc.
I am worried that if pysam tries to be too ambitious, i.e., trying to download dependencies (outside of pypi) that need to be configured and installed properly, we will spend a lot of effort troubleshooting user installation issues that are not necessarily related to the code we support. The principal reason for including htslib/samtools, etc. within the pysam tarball is to enable novice users to be able to access htslib awesomeness without having to install system libraries, set library paths, etc. As a consequence, the install is a bit biased towards conservative choices.
For advanced users and those building environments, I hope that as long as setup.py can be configured easily so that it can work nicely together with different packaging methods, that this should be sufficient for advanced users. Happy to include anything that makes this process easier into setup.py.
Hope this makes sense, comments appreciated.

https://github.com/pysam-developers/pysam/issues/223@jeromekelleher, thanks interesting. I have opened an issue on pysam, see

Hi Andreas (@AndreasHeger),
So almost anything is possible, and sorry to reply so late as I got swamped with other things these week.  I was able to perform some updates to setup.py, which will allow for the htslib library to be built-in - something I think that Jerome (@jeromekelleher) might also enjoy :)   So the updates to setup.py perform the following tasks:

Downloads htslib-1.3.tar.bz2, and compile it as a static library,
Compiles pysam with full integration of libhts.a into libchtslib.so, which eliminates both the LD_LIBRARY_PATH configuration and libhts.so shared library requirements.

Below are all the steps that enable the above functionality.  You will notice near the end that libcurl functionality is available, but no requirement for the shared library libhts.so is necessary:
$ wget --quiet https://www.cgat.org/downloads/public/pysam/sdist/pysam-0.8.5.tar.gz
$
$ tar zxvf pysam-0.8.5.tar.gz
$ cd pysam-0.8.5
$
$ export HTSLIB_COMPILE_OPTIONS="--enable-libcurl"
$ export HTSLIB_LIBRARY_DIR=`pwd`/htslib
$ export HTSLIB_INCLUDE_DIR=`pwd`/htslib
$
$ sed "412s/ + htslib_libraries//" setup.py > setup.py-fix-1
$ rm setup.py
$ mv setup.py-fix-1 setup.py
$
$ sed -i "34iimport urllib" setup.py
$ sed -i "110ihtsfile = urllib.URLopener()" setup.py
$ sed -i "111ihtsfile.retrieve(\"http://iweb.dl.sourceforge.net/project/samtools/samtools/1.3/htslib-1.3.tar.bz2\", \"htslib-1.3.tar.bz2\")" setup.py
$ sed -i "112ios.system(\"tar xjvf htslib-1.3.tar.bz2\")" setup.py
$ sed -i "113ios.system(\"mv htslib htslib-orig\")" setup.py
$ sed -i "114ios.system(\"ln -s htslib-1.3 htslib\")" setup.py
$ sed -i "115isavedPath = os.getcwd()" setup.py
$ sed -i "116ios.chdir(\"htslib\")" setup.py
$ sed -i "117ios.system(\"./configure --enable-libcurl\")" setup.py
$ sed -i "118ios.system(\"make lib-static CFLAGS=-fPIC\")" setup.py
$ sed -i "119ios.chdir(savedPath)" setup.py
$ sed -i "120i\ " setup.py
$
$ sed -i "414iextra_link_args = []" setup.py
$ sed -i "415iextra_link_args.append(\"-Wl,--whole-archive\")" setup.py
$ sed -i "416iextra_link_args.append(\"htslib/libhts.a\")" setup.py
$ sed -i "417iextra_link_args.append(\"-Wl,--no-whole-archive\")" setup.py
$
$ sed -i "431i\ \ \ \ extra_link_args=extra_link_args," setup.py
$
$ python setup.py install --user
$
$ export MY_PYTHON_PKGS=`python -c "import site; print(site.USER_SITE)"`
$ export CURRENT_DIR=`pwd`
$ cd $MY_PYTHON_PKGS
$ cd `ls -t | grep pysam | head -n1`/pysam
$ ldd libchtslib.so
        linux-vdso.so.1 =>  (0x00007ffff7ffe000)
        libz.so.1 => /lib64/libz.so.1 (0x00007ffff7b1f000)
        libpython2.7.so.1.0 => /cm/shared/engaging/python/2.7.9/lib/libpython2.7.so.1.0 (0x00007ffff773d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffff7520000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff718c000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff6f87000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007ffff6d84000)
        libm.so.6 => /lib64/libm.so.6 (0x00007ffff6b00000)
        /lib64/ld-linux-x86-64.so.2 (0x00000039a2a00000)
$ objdump -x libchtslib.so | grep libcurl
0000000000000000 l    df *ABS*<PHONE_NUMBER>000000              hfile_libcurl.c
0000000000098bd6 l     F .text<PHONE_NUMBER>000058              libcurl_exit
0000000000098fdb l     F .text<PHONE_NUMBER>000150              libcurl_read
00000000000991f9 l     F .text<PHONE_NUMBER>000150              libcurl_write
0000000000099349 l     F .text<PHONE_NUMBER>000346              libcurl_seek
000000000009968f l     F .text<PHONE_NUMBER>000162              libcurl_close
00000000002ad100 l     O .data.rel.ro<PHONE_NUMBER>000028              libcurl_backend
0000000000099e90 g     F .text<PHONE_NUMBER>00016e              hfile_plugin_init_libcurl
0000000000099848 g     F .text<PHONE_NUMBER>000648              hopen_libcurl
$ cd $CURRENT_DIR

The added lines are the following:
# This is needed for downloading htslib
import urllib

# These are for downloading htslib, and compiling into a static library for later merging into modules
htsfile = urllib.URLopener()
htsfile.retrieve("http://iweb.dl.sourceforge.net/project/samtools/samtools/1.3/htslib-1.3.tar.bz2", "htslib-1.3.tar.bz2")
os.system("tar xjvf htslib-1.3.tar.bz2")
os.system("mv htslib htslib-orig")
os.system("ln -s htslib-1.3 htslib")
savedPath = os.getcwd()
os.chdir("htslib")
os.system("./configure --enable-libcurl")
os.system("make lib-static CFLAGS=-fPIC")
os.chdir(savedPath)

#  These will be needed for chtslib
extra_link_args = []
extra_link_args.append("-Wl,--whole-archive")
extra_link_args.append("htslib/libhts.a")
extra_link_args.append("-Wl,--no-whole-archive")

# This was added to the chtslib module in order to merge all of the htslib/libhts.a static library
    extra_link_args=extra_link_args,

If you want the updated setup.py file, below is a direct link to download it:
setup.py
Thus these changes can be performed for any module, and as always comments are appreciated.
Hope it helps and have a great weekend!
Paul

htsfile.retrieve("http://iweb.dl.sourceforge.net/project/samtools/samtools/1.3/htslib-1.3.tar.bz2", "htslib-1.3.tar.bz2")

Pysam already bundles a copy of the HTSlib source code.  What's the benefit in downloading another copy?

$ sed -i "117ios.system("./configure --enable-libcurl")" setup.py
$ sed -i "118ios.system("make lib-static CFLAGS=-fPIC")" setup.py

Yes, one of these days I mean to add a libhts_pic.a target to HTSlib for the benefit of the Bio::DB::Sam Perl wrapper and similar...

@jmarshall All roads lead to Rome, and may I assume the second provides a provisional reason for the first :)

Unblocking this, as pysam 0.9.0 support has been merged in #880

Here is an example of using pysam with a remote BAM from S3 with a local index file.  This is the internal mechanism the server uses and the behavior seems quite predictable. It takes a little over a second to initially open the file handle, and then up to 2 seconds to respond to randomized fetch requests http://nbviewer.jupyter.org/gist/david4096/545f90664aeb9611d6bc8cb5d5d655ec

Great work @david4096, this is excellent news. Overall the response times look quite good, and I think shouldn't add too much latency to our responses, if we use a reasonably large page size.

Although this issue is about AWS, I'm leaving this notebook here that shows behavior across 4 different servers with pysam. It seems azure's byte range functionality is not quite there yet.
http://nbviewer.jupyter.org/gist/david4096/7094a9faf95430e6354332d73b11901c

The link 404s for me @david4096 ...

Eh, github does a fine job rendering the ipython notebooks now, updated the link, sorry! @jeromekelleher

It appears AWS reads support is acceptable. Remote VCF and FASTA still have a few problems. I would like to close this issue and continued detailed discussion of the VCF issues here and FASTA here. Objections?

Yes, good call @david4096; closing.


🐶 FIX - Broken variables in CRD. Secret location. Proper Release naming 🐶

What is this PR About?
looks like some of the properties in the CRD for argocd have been sunset causing breaking changes. I also moved the namespace from a variable to a release or optionally passed as a var. This was to make it easier when installing.. no more double setting the ns like we used to  --namespace my-ci-cd --create-namespace --set namespace=my-ci-cd
How do we test this?
helm install ....
cc: @redhat-cop/day-in-the-life

/lgtm
/approve


Implement  'docker commit' api

Implement  'docker commit' api (https://github.com/docker/swarm/issues/533)
Signed-off-by: Xian Chaobo<EMAIL_ADDRESS>

@jimmyxian can you also update api/README.md ?

Coverage decreased (-0.28%) to 39.02% when pulling f0b19154f0d660509e28f50b554d6fd88838b285 on jimmyxian:master into 8d82079dffdb603088a2ffddff9f8b25b7ae3a84 on docker:master.

and check gofmt

@vieux  OK

Coverage decreased (-0.28%) to 39.02% when pulling fe054ba57ce4377e944c108c411559ba1c436511 on jimmyxian:master into 8d82079dffdb603088a2ffddff9f8b25b7ae3a84 on docker:master.

@vieux Done

LGTM

LGTM


Update certificate secret to be of type TLS for the controllers

The certificates right now sit in a Opaque type Secret. This should be changed to TLS.
However, this requires the keys to be tls.crt and tls.key which is not what the controllers are expecting right now.

https://github.com/open-component-model/ocm-controller/pull/230
This and every PR that bump-ed its version to use this release.


Create an image with a scenario for dependency deployment using free-deployer

Once #12 is finished, create an image based on the open-sourced free-deployer repository and design a scenario to deploy kuadrant operator along all the test suite requirements.
Requirements

Free-deployer scenario that deploys all needed dependencies
Scenario packaged in an image
Decide how the image gets needed secrets at runtime
Image published on quay.io (do we have a Kuadrant org for this?)
Image automatically updated on push to the free-deployer main branch

Approximate dependencies from previous issue:

Project sail operator + deployment
Tools (Keycloak + Mockserver)
Creates required namespaces
Deploys Kuadrant from a specific catalog source
Deploys all required secrets (AWS, GCP, lets-encrypt)
Creates all required objects (ManagedZone, ClusterIssuer)

Consult azgabur for more detailed documentation


datar package

Hi,
Great effort!
Have you checked out datar, which does a similar thing but with a more complete implementation?
Let me know your comments or any chance to collaborate.

@pwwang datar is a good design and implementation. As of tidypandas, we will soon making a release.
As of the differences are concerned, one thing I wonder how a datar user would do programmatically like iris >> distinct(f.Species) where lets say user has the string 'Species'?

col = "Species"
iris >> distinct(f[col])

Thank you, this is great! May be I missed this in the documentation.


Error codes not available

Hi,
I'm trying to implement automatic notification and logging on heat pump failures or warnings via Home Assistant.
All of the below return 'Conv xxx not avail.". In my understanding, this means they're not implemented yet - could this be done?
{0x60,3,204,1,-1,"Error Code"},
{0x60,5,203,1,-1,"Error type"},
..
{0x10,4,203,1,-1,"Error type"},
{0x10,5,204,1,-1,"Error Code"},

In my testing {0x60,4,152,1,-1,"Error detailed code"} works for me, but that returns only the latter part of the error code (e.g. 6 in the case of failure 7H-06). In normal working state this parameter returns 0, but the latter part of the error code is 0 in some real failures as well (like EA-00). Therefore, it would be nice to have that first part of the failure code available for unambiguous failure detection.

Hi @vasarat1, good idea. I'll see what I can do for implementing conversion 203 and 204.

Hey @vasarat1,
Good news! I managed to implement conversion code for the Error codes!
Upgrade, upload and tell me if it works! :)
Raomin
--
If this project brings value to you, please consider supporting it. I don't do this for money but it feels good to get some support! Thanks :)

Now tested, seems to work very nicely! Thanks a lot, this is a great new feature :)

Thanks for reporting @vasarat1! Glad it's working!


Fix typo in obj-c method type nodes and add test. [phab:D1076]

Created by salguarnieri at 2016-09-21 22:56:20:
Fix typo that caused obj-c method types to be created incorrectly. Also add
tests that would have caught this problem.

salguarnieri wrote at 2016-09-21 22:59:48:

added test to defn also

zarko accepted this revision at 2016-09-22 00:19:08

salguarnieri closed via commit bce49dd62e3015a07ec5ce4bd8a7c6fe5df1af18 at 2016-09-22 00:43:17


[bug] Gateway - Values Table (Configured Manually). Some devices don't show up in pull down

Version
v4.0.5
Build/Run method

[ ] Docker
[ ] PKG
[x] Manually built (git clone - npm install - npm run build )

Zwave2Mqtt version: 4.0.5
Openzwave Version: 1.6.1392
Describe the bug
After upgrading to v4.05/1.6.1392, All my devices have been rediscovered and show up in the Control Panel.
All the devices of interest in the Control Panel have their "Type" "Product", etc.  filled out.  Each device's set of classes ("User" "Configuration", "System") seem to have been discovered properly as well.
Gateway Config:
Settings->Gateway Type = Configured Manually, Payload Type = Just Value.
In the Gateway settings there is a Table with entries where an entry consists of "Devices" with "Value", "Topic" ,etc.
I want to add a new entry, but the Pull Down list doesn't contain the device I'm looking for.
For most of my existing G/W Table entries, the "Device" column shows the Device ID in brackets along with the associated product string. Ex. [134-100-258] ZW100 MultiSensor 6 (AEON Labs).
When adding an entry in the G/W Table, these devices show up in the Device Pull down menu OK.
Exception: I have two devices that are the same (only difference is node-id), Neither have an existing entry in the Table.  When attempting to add a new entry only one of them shows up in the Device Pull Down, the second device DOES NOT show up in the Pull Down.
The next problem involve a couple of (battery operated) devices in my existing G/W Table entries still exist but under the "Device" column they only show the Device ID.  The brackets around the Device ID are missing as well as the associated product string is missing.
Example: 134-130-258
When adding an entry in the G/W Table, these devices DO NOT show up in the "Device" Pull down menu
What I expect to find is [134-130-258] ZW130 Wallmote Quad (AEON Labs)
Similarly can not edit one of these problem existing entries because the "Device", "Value" "Device Class" is missing (but the "Topic" is present).  BTW these existing entries still continue to work as far as MQTT is concerned.

I have two devices that are the same (only difference is node-id), Neither have an existing entry in the Table. When attempting to add a new entry only one of them shows up in the Device Pull Down, the second device DOES NOT show up in the Pull Down.

A device is added when it's on ready state. Are your devices ready on gateway table?
Source: https://github.com/OpenZWave/Zwave2Mqtt/blob/master/lib/ZwaveClient.js#L472

How would one go about determining if a device is ready?

@tommyjlong It's the driver that reports it as ready, for sleeping devices it could take very long time to be ready

OK..my battery devices all of a sudden now show up in the G/W Table Device Pull down.  The only device that does not show up is the second of two Aeotec Range Extenders (these are the ones that only differ by node-id).  I will play with it some more and report back.

Ok let me know so

It looks like by performing a Request Node Info, one can find out if a device is ready.
Here is a (very) shortened version of the log outputs I conducted on the two identical AEOTEC Range Extenders (node 10 and 11 respectively).  Notice the last line showing the devices as ready:
Nov 11 17:07:52 NUC node[15833]: 2020-11-11T22:07:52.967Z z2m:App Zwave api call: refreshNodeInfo [ 10 ]
Nov 11 17:07:53 NUC node[15833]: 2020-11-11T22:07:53.028Z z2m:Zwave Success zwave api call refreshNodeInfo
....
Nov 11 17:07:54 NUC node[15833]: 2020-11-11T22:07:54.785Z z2m:Zwave node 10 ready: Aeotec Limited - ZW189 Range Extender 7 (Generic Repeater)

Nov 11 17:11:58 NUC node[15833]: 2020-11-11T22:11:58.813Z z2m:App Zwave api call: refreshNodeInfo [ 11 ]
Nov 11 17:11:58 NUC node[15833]: 2020-11-11T22:11:58.876Z z2m:Zwave Success zwave api call refreshNodeInfo
....
Nov 11 17:11:59 NUC node[15833]: 2020-11-11T22:11:59.529Z z2m:Zwave node 11 ready: Aeotec Limited - ZW189 Range Extender 7 (Generic Repeater)

Yet there is only one entry in the G/W Table Device Pulldown for these two devices:
[881-189-260] ZW189 Range Extender 7 (Aeotec Limited)

Yet there is only one entry in the G/W Table Device Pulldown for these two devices:

If they have the same device id it's correct that there is only one entry. There is 1 for each device, if you have 2 identical devices you will always see only one there

OK.  Thanks for your help.
And thanks a bunch for your work on this project 👍

@tommyjlong Glad you like it hope you have fixed your problem :)


feat: Added visionOS support for Apple Vision Pro

Based on Added visionOS support based on https://github.com/rust-lang/rust/pull/121419
Preliminary work to add visionOS support in Tauri https://github.com/tauri-apps/tauri/issues/9969

Ok, looks like CI needs some love. Going to look into it a bit later.


Module AccessibilityInfo does not exist in the Haste module map

Loading dependency graph, done.
error: bundling failed: Error: Unable to resolve module AccessibilityInfo from /Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/react-native/Libraries/react-native/react-native-implementation.js: Module AccessibilityInfo does not exist in the Haste module map
This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:

Clear watchman watches: watchman watch-del-all.
Delete the node_modules folder: rm -rf node_modules && npm install.
Reset Metro Bundler cache: rm -rf /tmp/metro-bundler-cache-* or npm start -- --reset-cache.
Remove haste cache: rm -rf /tmp/haste-map-react-native-packager-*.
at ModuleResolver.resolveDependency (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:183:15)
at ResolutionRequest.resolveDependency (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:52:18)
at DependencyGraph.resolveDependency (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/node-haste/DependencyGraph.js:273:16)
at Object.resolve (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/lib/transformHelpers.js:261:42)
at dependencies.map.result (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:391:31)
at Array.map ()
at resolveDependencies (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:388:18)
at /Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:261:33
at Generator.next ()
at asyncGeneratorStep (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:87:24)
BUNDLE  [dev] ./index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1), failed.

info
React Native Environment Info:
System:
OS: macOS 10.15.3
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 5.54 GB / 32.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.4.0 - /usr/local/bin/node
Yarn: 1.19.0 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
Android SDK:
API Levels: 23, 25, 26, 27, 28, 29
Build Tools: 25.0.0, 26.0.2, 26.0.3, 27.0.3, 28.0.2, 28.0.3, 29.0.0, 29.0.2
System Images: android-27 | Google Play Intel x86 Atom
IDEs:
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
react: ^16.8.3 => 16.8.3
react-native: ^0.59.10 => 0.59.10
npmGlobalPackages:
react-native-cli: 2.0.1

⚠	Missing Environment Information
ℹ	Your issue may be missing information about your development environment. You can obtain the missing information by running react-native info in a console.

info
React Native Environment Info:
System:
OS: macOS 10.15.3
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 5.54 GB / 32.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.4.0 - /usr/local/bin/node
Yarn: 1.19.0 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
Android SDK:
API Levels: 23, 25, 26, 27, 28, 29
Build Tools: 25.0.0, 26.0.2, 26.0.3, 27.0.3, 28.0.2, 28.0.3, 29.0.0, 29.0.2
System Images: android-27 | Google Play Intel x86 Atom
IDEs:
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
react: ^16.8.3 => 16.8.3
react-native: ^0.59.10 => 0.59.10
npmGlobalPackages:
react-native-cli: 2.0.1

Loading dependency graph, done.
error: bundling failed: Error: Unable to resolve module AccessibilityInfo from /Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/react-native/Libraries/react-native/react-native-implementation.js: Module AccessibilityInfo does not exist in the Haste module map
This might be related to #4968
To resolve try the following:

Clear watchman watches: watchman watch-del-all.
Delete the node_modules folder: rm -rf node_modules && npm install.
Reset Metro Bundler cache: rm -rf /tmp/metro-bundler-cache-* or npm start -- --reset-cache.
Remove haste cache: rm -rf /tmp/haste-map-react-native-packager-*.
at ModuleResolver.resolveDependency (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:183:15)
at ResolutionRequest.resolveDependency (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:52:18)
at DependencyGraph.resolveDependency (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/node-haste/DependencyGraph.js:273:16)
at Object.resolve (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/lib/transformHelpers.js:261:42)
at dependencies.map.result (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:391:31)
at Array.map ()
at resolveDependencies (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:388:18)
at /Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:261:33
at Generator.next ()
at asyncGeneratorStep (/Users/lishuaiqi820/codeToGit/goodHelper/hbs_phoenix_android/node_modules/metro/src/DeltaBundler/traverseDependencies.js:87:24)
BUNDLE  [dev] ./index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1), failed.

你是怎么解决这个问题的呢，大兄弟


Try built-in have_next_chunk bit into Chunk::len_and_epoch

Instead of testing
            let next_chunk = chunk.next().load(Ordering::Acquire);
            if next_chunk == null_mut(){
                return None;
            }
            if chunk.len_and_epoch(Ordering::Acquire).len() as usize != self.chunk_len{
                return None;
            }

in EventReader. Store have_next_chunk bit in atomic Chunk::len_and_epoch "bitarray". if at current len there is next chunk - it is safe to switch.

Done in https://github.com/tower120/rc_event_queue/pull/7


Getting "Something went wrong" error message while setting up wallet

I am seeing this message when saving stronghold file
platform:
ubuntu 18.04
firefly 0.3.1
not able to setup wallet due to this

@aayush at what stage in setup did you see this? If you enable dev tools is anything logged in the console?


[BUG] IPAM deployment through rancher is not working -> health checks disabled by default

Describe the bug

To Reproduce
Steps to reproduce the behavior:

deploy a workload with a load balancer service through rancher v2.6.4-rc12
click the link once the load balancer comes up
-> service is created and active but is not routing to the service properly

Expected behavior
LB should route to the service
Support bundle
supportbundle_099d3b86-89b8-45f6-aa02-748fb08ad44e_2022-03-24T20-40-50Z.zip
Environment:

Harvester ISO version: v1.0.1-rc1
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630): dell poweredge r510

Additional context

manually updating the harvester LB to have health checks enabled fixes this issue.

Do you mean you could not access the service? If so, where's the client? Could you provide more information about the network/route connectivity? @slickwarren

I was able to test it on a previous version of rancher here https://github.com/rancher/dashboard/issues/5438
The workload and service(s) created come to an active state, but the service is not accessible to the user (when clicking the link to the loadbalancer, the service is not found)

Same as https://github.com/harvester/harvester/issues/2041

Is this going to be dependent on #1762  ?

Is this going to be dependent on #1762 ?

No, it will be fixed in the pr https://github.com/harvester/cloud-provider-harvester/pull/15

Workaround:
https://github.com/harvester/harvester/issues/2041#issuecomment-1091002704

Close as it's duplicated with https://github.com/harvester/harvester/issues/2041


Fix unmarshalling of DeploymentPlan for Marathon v1.1.2+ API

Following PR #215 , it's quite annoying after we updated marathon from v1.1.1 to v1.1.2, a deployment plan message has changed from
{
  ...
  "plan": {
    ...
    "steps": [
      {
        "actions": [
          {
            "type": "ScaleApplication",
            "app": "/my-app"
          }
        ]
      }
    ],
    "version": "2016-09-23T03:22:17.119Z"
  },
  "currentStep": {
    "actions": [
      {
        "type": "ScaleApplication",
        "app": "/my-app"
      }
    ]
  },
}

to
{
  ...
  "plan": {
    ...
    "steps": [
      {
        "actions": [
          {
            "action": "ScaleApplication",
            "app": "/my-app"
          }
        ]
      }
    ],
    "version": "2016-09-23T03:22:17.119Z"
  },
  "currentStep": {
    "actions": [
      {
        "action": "ScaleApplication",
        "app": "/my-app"
      }
    ]
  },
}

Even though, I try to keep the attribute Type for compatibility, please check if it's ok.
Thanks.

Thanks for the advice. gofmt already, please have a look again.


remove redundant register_blosc() call

I noticed that register_blosc() was being called twice, once in the body of the module (wrong) and once in __init__() (right).  This removes the former.

Thanks!


Make spacer utils responsive

This makes the spacer utilities responsive. Instead of .mt-0 for example, we have .mt-sm-0. Bit longer of a class name, but more versatile.

Biggest question for this—should we keep the non-responsive classes in addition to the responsive ones?

Second biggest question is the scale—I'm thinking we need more levels to the spacers. Something like .25rem, .5rem, 1rem, 1.5rem, and 3rem.

A small suggestion for levels spacers :
p-0 => 0
p-01 => $spacer-x * .1
p-02 => $spacer-x * .2
p-03 => $spacer-x * .3
p-04 => $spacer-x * .4
p-05 => $spacer-x * .5
p-1 => $spacer-x
p-2 => $spacer-x * 2
p-3 => $spacer-x * 3
p-4 => $spacer-x * 4
p-5 => $spacer-x * 5

+1

This PR now includes the same approach as #20934:

The xs tier no longer has a breakpoint abbreviation in the class name. So instead of .mt-xs-0, it's just .mt-0. Super easy transition from what's there currently. This works out well because none of these classes are bound by media queries given they apply to min-width: 0 and up.

The rest of the default tiers—sm, md, lg, and xl—all include their abbreviations. So for a large breakpoint, you'd use .mt-lg-0.


Volume accessory keeps getting replaced

Hi,
I frequently have to move my lightbulb volume control into the correct room, reset the icon, remove from favourites & status. It seems to get removed and replaced occasionally. I haven't been able to determine why. It's not every restart of homebridge but maybe when up update something? All other accessories (I have lots) are fine but this one keeps getting reset??
            "volumeControl": [
                {
                    "name": "Dining Amp Volume",
                    "ip": "<IP_ADDRESS>",
                    "port": "80",
                    "volumeLimit": 60,
                    "zone": 2
                }
            ]

@rbswift Thank you for your input. Everything you have configured looks fine. Not sure why this is happening, so I will find this out. Do you see in your LOG something like New volumeControl configured:  when the reset happens?

Thanks for responding. This has not happened for a while now so maybe it was fixed in a release or has somehow otherwise stabilised. I will close the issue for now and reopen if I see it happen again. Cheers


Need Observer without return ui when data change

Hi,
I'm working on Getx.
I need need a observer which observe change without return UI as like obs.
In below example  we need to return ui but I don't find any way in Getx in which it does't need to return ui.
final veriyOtpRespo = ApiResponse().obs;

Obx(
            () {
              var resentOtpRespo = LoginController.to.resentOtpRespo.value;
              if (resentOtpRespo.status == ApiStatus.LOADING)
                return CircularProgressIndicator(
                  valueColor:
                  AlwaysStoppedAnimation<Color>(ColorConst.APP_COLOR),
                );
              else if (resentOtpRespo.status == ApiStatus.ERROR)
                print("object Error ${resentOtpRespo.data.message}"  );
                // Get.snackbar("Error", "${resentOtpRespo.message}");
              else if (resentOtpRespo.status == ApiStatus.COMPLETED)
                print("object Error COMPLETED ${resentOtpRespo.data.message}");
                // Get.snackbar("Success", "${resentOtpRespo.data.message}");
              return Container();
            },
          ),

I need some kind of observer from Getx which not return UI
Thanks

@webaddicted, final veriyOtpRespo = ApiResponse().obs; that is like doing final app = GetMaterialApp(...).obs, please avoid doing that.
If your Widget UI doesn't change, then don't use it there. Call snackbar from your GetxController or the ApiResponse object directly.

@webaddicted, final veriyOtpRespo = ApiResponse().obs; that is like doing final app = GetMaterialApp(...).obs, please avoid doing that.
If your Widget UI doesn't change, then don't use it there. Call snackbar from your GetxController or the ApiResponse object directly.


APT whitelist request for libslang2-dev

mutt (mail client) can be built against slang

Duplicate of #1422.


Active area for the send button is too big.

Perceived touch area:

Expected touch area:

Related issue: #1387

When it was limited to the send icon size, many users yelled.
When it has the same height than the text edit, people yells.....

Send button is now anchored to the bottom and with clickable area around the button (since 0.8.9)


[BLOCK_LEVEL1] Platforms obstacle fixed + crystal removed

Modification in Level1:

Platform working
Crystal in between platforms removed

Also why we have again the old tutorial with the doggos?
Someone erased new one or something


Paper 1.20.6 onLoad not working

CommandAPI version
9.5.3
Minecraft version
1.20.6
Are you shading the CommandAPI?
Yes
What I did
onLoad():
CommandAPI.onLoad(new CommandAPIBukkitConfig(this));

onEnable():
CommandAPI.onEnable();

What actually happened
I immediately receive the following error in the load lifecycle:
[XXX] Error initializing plugin 'xxx-jar-with-dependencies.jar' in folder 'plugins\.paper-remapped' (Is it up to date?)
java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    dev/jorel/commandapi/nms/NMS_1_20_R4.lambda$reloadDataPacks$14(Lnet/minecraft/server/MinecraftServer$ReloadableResources;Ljava/util/Collection;Lnet/minecraft/server/MinecraftServer$ReloadableResources;)V @205: invokevirtual
  Reason:
    Type 'net/minecraft/server/packs/resources/CloseableResourceManager' (current frame, stack[1]) is not assignable to 'net/minecraft/server/packs/resources/MultiPackResourceManager'
  Current Frame:
    bci: @205
    flags: { }
    locals: { 'dev/jorel/commandapi/nms/NMS_1_20_R4', 'net/minecraft/server/MinecraftServer$ReloadableResources', 'java/util/Collection', 'net/minecraft/server/MinecraftServer$ReloadableResources', 'java/util/Collection', 'com/google/common/collect/ImmutableList', 'java/util/ArrayList' }
    stack: { 'net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager', 'net/minecraft/server/packs/resources/CloseableResourceManager' }
  Bytecode:
    0000000: 2ab6 01a2 c000 3eb4 06a8 b607 da2a b601
    0000010: a2c0 003e 2bb5 06a8 2ab6 01a2 c000 3eb4
    0000020: 07dc b607 df2a b601 a2c0 003e b606 bf2c
    0000030: b607 e22a b601 a2c0 003e b606 bfb6 06c5
    0000040: 3a04 1904 b807 e83a 05bb 037b 592a b601
    0000050: a2c0 003e b606 bfb6 06e0 b706 c83a 0619
    0000060: 0619 0559 b806 7557 ba07 ee00 00b9 07f2
    0000070: 0200 572a b601 a2c0 003e b606 ccbb 06d4
    0000080: 59bb 06da 5919 0519 06b7 07f5 2ab6 01a2
    0000090: c000 3eb6 06cc b906 d201 00b6 07f9 b707
    00000a0: fcb9 0800 0200 2ab6 01a2 c000 3eb4 06a8
    00000b0: b606 acb6 0803 2ab6 01a2 c000 3eb6 0807
    00000c0: 2ab6 01a2 c000 3eb4 06a8 b608 0bb6 0811
    00000d0: b1

        at xxx-jar-with-dependencies.jar/dev.jorel.commandapi.CommandAPIVersionHandler.getPlatform(CommandAPIVersionHandler.java:69) ~[xxx-jar-with-dependencies.jar:?]
        at xxx-jar-with-dependencies.jar/dev.jorel.commandapi.CommandAPI.onLoad(CommandAPI.java:112) ~[xxx-jar-with-dependencies.jar:?]
        at xxx-jar-with-dependencies.jar/net.xxx.minecraft.plugins.xxx.XXX.onLoad(XXX.kt:23) ~[xxx-jar-with-dependencies.jar:?]
        at io.papermc.paper.plugin.storage.ServerPluginProviderStorage.processProvided(ServerPluginProviderStorage.java:59) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at io.papermc.paper.plugin.storage.ServerPluginProviderStorage.processProvided(ServerPluginProviderStorage.java:18) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:39) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enter(LaunchEntryPointHandler.java:36) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:532) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:286) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1136) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:323) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
        at java.base/java.lang.Thread.run(Thread.java:1570) ~[?:?]

Obviously an error on enabling the plugin occurs afterwards; java.lang.IllegalStateException: Tried to access CommandAPIHandler instance, but it was null! Are you using CommandAPI features before calling CommandAPI#onLoad?
What should have happened
No error on load
Server logs and CommandAPI config
No response
Other
Probably has something to do with remapping/no relocation of the NMS classes in PaperMC 1.20.6+

Thank you very much for the fast response - the missing entry in the manifest was indeed the issue. I think adding a short notice regarding this topic in the docs wouldn't hurt (Even though it's technically not CommandAPI related).

Because this is solved, I would close this issue.


attempt to do #90 w/o merge conflicts

@erinspace if you could review this, especially the changes to bill_latest_actions.html we should be OK to merge

Looks good to me! :+1:


Fixes dragging failure in blocks palette

as said in issue #873, which in introduced by commit 06fa507.
The change is using workspace.scroll instead of viewTop to calculate the position of the scrollbar.
Because the top of the view and the scrollbar position are two different things.
Resolves
issue #873
Proposed Changes
Use scroll bar properties directly to calculate the scrollbar position

I'm leery of scrollbar changes that aren't fully understood, because they can lead to really nasty recursion.
In particular, scrollbar.set calls scrollbar.onScroll, which calls workspace.setMetrics.

@rachel-fenichel It works as expected after resizes and page scrolls.  I see possible recursion if we ever end up calling scrollbar.set on metrics changes. At least, in this PR I don't see any new dangers of recursion being introduced, since it's only reading scrollY.
Am also curious about the origins of the negative sign.

Ah, this is what's happening here.

in the original version, viewTop is assigned from negative scrollY, which is a negative value.
But the issue is, the actual top of the view content is not strictly equal to the scrollY - the optionBox itself has a y offset. This will cause the box shifts up a little every time it's refreshed.
In commit 06fa507, I changed the way how viewTop is calculated, but it breaks scrolling, since viewTop is also used in scroll procedures where scrollY is the value that should be used.
This is where this PR comes from.

@rschamp LGTM, but let's keep an eye out for any scrollbar-related instability.


locale_language_url_rewrite_url Notices!

We're getting a bunch of notices in the Log Report regarding:
Notice: Trying to get property of non-object in locale_language_url_rewrite_url() (line 429 of /var/www/dev.dosomething.org/html/includes/locale.inc).

Problem occurs in this function ``locale_language_url_rewrite_url(&$path, &$options) { ... }` in Drupal core local.inc.
The issue seems to be with the $options array that gets passed into the function, in one of the conditionals it's hitting, it's trying to find a nested object called language $options['language']->language, however while the $options array does have an item 'language', that value is a string, not a value of another object called language.
The notices seems to hit with en-global campaigns.
Also of note, the only locations I could find in the DS code are within callbacks in a strongarm file:
https://github.com/DoSomething/phoenix/blob/5f64924f541d87e44be39c1ffe50699f17623687/lib/modules/dosomething/dosomething_global/dosomething_global.strongarm.inc
@sergii-tkachenko @angaither @joe

Duplicate issue... resolved with: #6522


Install Protobuf header and FPGA fixes

Looks good to me overall. I left a comment about the install location of format headers.
Another small nit: I try using Conventional Commits in VILLAS-related projects. While this standard does not mandate how the description should be capitalized, I see more often that people start the description with an upper case letter.
Can we agree on starting commit descriptions with an upper case letter?
Example:
-fpga: make FPGA support sending and receiving integers
+fpga: Make FPGA support sending and receiving integers

It's sooo difficult to change this habit :) I'll try to remember.


Support session not on or after

Hi,
The samlp.AuthnResponse class allows setting the session_not_on_or_after attribute. However, none of the methods that create an AuthnResponse actually allow passing this parameter in. So, this change adds session_not_on_on_after a parameter to all the ancestor methods of the method authn_response.
Please let me know if there's something that needs to be changed/improved.
Thanks!
Ashima

Looks good to me, :+1:


Update readmes / descriptions of core spec / org / key repos to be more welcoming

Ahead of an announcement we should be sure that we explain a bit more about the project to new users. Matthias has made a great start on this, but a few more things would be good to have:

[x] Update fiboa org readme so it's a great landing page for the project. It should include a clear mission statement, key features, development status, license info, communication options (slack, zoom meeting, etc).
[x] Update spec readme, to include at least a subset of the above, and to make clear the status of the spec and more general readme info for people to get a sense of things.
[x] Update repo 'descriptions' - most repos in Fiboa right now have no 'about'. They should ideally include those, and any other good meta information.
[x] Update other key readmes - check to be sure the most prominent readmes are all in good shape (validator, cli, ai extension, etc)
[ ] Make sure instructions at top level are all in line with the way we want people to work.

@cholmes What is meant with "Make sure instructions at top level are all in line with the way we want people to work."?

Closing for now, let me know if you think there's more to do @cholmes


Unable to find an appropriate device to wire to

I posted this on the main spike interface issue page and was suggested the following:
"Looks like we don't have wiring to RHD2216  yet. I would open this issue on the probeinterface repo so that it can be put on the todo list over there. We have tools to allow you to do it manually if you want help with that and if you get that working then you can actually share the mapping with us and we can include it in probeinterface in the future."
We recently switched from a Cambridge Neurotech 64 channel probe to a Cambridge Neurotech 16 channel probe that uses an omnetics adapter to connect to our Intan 16 channel headstage. We are trying to analyze a group of our data obtained with this set-up but are not able to wire to any of the devices that are listed as an option for these probes.
Our probes are: ASSY-1-P-2 - cambridgeneurotech - 16ch - 1shanks
The device options made available are:
['H32>RHD2132',
'ASSY-156>RHD2164',
'ASSY-116>RHD2132',
'ASSY-77>Adpt.A64-Om32_2x-sm-NN>RHD2164',
'ASSY-77>Adpt.A64-Om32_2x-sm-NN>two_RHD2132',
'cambridgeneurotech_mini-amp-64']
All of these appear to be 32 to channel or 64 channel which then read the error: "AssertionError: chan_indices 32 != contact count 16"
Can you help us identify how we can fix this problem?

Hi! Do you have a channel map for your setup?

Yes, I can send you the paperwork we have. We are currently using acute probes that are hooked  into an adaptor which is in turn connected to our headstage.
Adaptor map:
[image0.jpeg]
The map of probe/adaptor together.
[image1.jpeg]
Thanks so much, Eva
Sent from my iPhone
On May 9, 2024, at 11:10 AM, Alessio Buccino @.***> wrote:

WARNING: This email originated from outside of Advocate Health @.***). DO NOT click links or open attachments unless you know and trust the sender. NEVER provide your login information to anyone. USE Squish the Phish to report suspicious email.
Hi! Do you have a channel map for your setup?
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/SpikeInterface/probeinterface/issues/272*issuecomment-2102853445__;Iw!!GA8Xfdg!3sURDQknBMYMGcZD9lluG1k9Qsv8fQxapRG0ZqhJzgrja99CEX8riQ3KjTt22U692zJPR_FDTOyseMD2CexHp2_P$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/BIL2EVUMRO6IDPNCBU3JBIDZBOGXVAVCNFSM6AAAAABHO7KZL6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBSHA2TGNBUGU__;!!GA8Xfdg!3sURDQknBMYMGcZD9lluG1k9Qsv8fQxapRG0ZqhJzgrja99CEX8riQ3KjTt22U692zJPR_FDTOyseMD2CZ0PUjlH$.
You are receiving this because you authored the thread.Message ID: @.***>

This electronic message is intended only for the use of the individual(s) and entity named as recipients in the message. If you are not an intended recipient of this message, please notify the sender immediately and delete the material from any computer. Do not deliver, distribute or copy this message, and do not disclose its contents or take any action in reliance on the information it contains. Thank you.

I cannot see the images because I think you replied to the email. Can you reply to the issue instead?

Sorry about that. Hopefully it will work now…

@ebach23, could you also share the headstage info you're using. We need to see the final connectors on the other side of the omnetics!

Oops, I missed your question until now. The headstage we are using is an Intan C3334 | RHD 16-channel headstage18-pin Omnetics electrode connector

This would be very useful for our lab as well ! We are also using an omnetics adapter to connect to the Intan headstage for our 4 tetrodes twisted wires.


Bottom Navigation doesn't update according to the page.

Describe the bug
The bottom navigation for the website doesn't update according to the page.
To Reproduce
Steps to reproduce the behavior:
1.useEffect hook to update the value of the navigation each time according to the location will keep it updated.
Expected behavior
The Navigation will update each time the page changes.
Environment (please complete the following information):

OS: Windows
Browser: Edge

https://user-images.githubusercontent.com/49809895/111045102-63c62400-8472-11eb-9449-8ee11e56aa82.mp4

@kunal-kushwaha @Abhishek-kumar09  can I work on this issue?

@ADRE9 I think this issue has been fixed with d6908d91447b37582f99383772175ebc62809e68

If this issue is resolved, please close it.

Yes , I created this issue yesterday and @KeenWarrior  has solved it today. So thanks @rizwan2000rm for pointing it out.


Remark FFF Target: Qwik City

Considering that Hsno uses Qwik City, compatibility with it is necessary.

Since Qwik City's Frontmatter is not stored in vfile.data, it's a bit tricky.
As an alternative, I consider deriving a transform function:
import { transformFm } from 'remark-fff'
const fm = transformFm(useDocumentHead().frontmatter)


UserSecrets does not generate assembly attribute when it is a transitive reference

When Microsoft.Extensions.Configuration.UserSecrets is a transitive reference, users will find it is possible to compile against its APIs, but it's build targets will not generate the assembly attributes required to make discovery of UserSecretsIdAttribute possible.
Example:
Project.Web includes <UserSecretsId> in the csproj
Project.Web includes call to .AddUserSecrets()
Project.Web references Project.Library
Project.Library references Microsoft.Extensions.Configuration.UserSecrets
NB: this example produces a build warning on Project.Library USERSECRETS001: The assembly attribute 'UserSecretsIdAttribute' could not be generated because the 'UserSecretsId' property was empty or missing.
Error:
.AddUserSecrets() will fail with the following error
System.InvalidOperationException: Could not find 'UserSecretsIdAttribute' on assembly "AssemblyName"

Workaround:
Add an explicit reference the package. i.e. include a <PackageReference> to Microsoft.Extensions.Configuration.UserSecrets in the csproj file that contains the <UserSecretsId>.
Affected versions:
1.0.1, 1.1.0-preview1-final, 1.1.0
Possible solutions
NuGet: include build targets from project references
UserSecrets: the .AddUserSecrets() could scans multiple assemblies for UserSecretsIdAttribute

@natemcmaster What's your recommendation for triage here? (Given that if you say we should do something, then you are volunteering to do the work.)

Recommend closing. Not much we can do. Users must ensure they have a PackageReference to Microsoft.Extensions.Configuration.UserSecrets in the project that generates the user secret id.

Status update:
There is no change to for this bug, and nothing we can do at the aspnet level. By default, NuGet only flows some of the package assets across ProjectReference's. There is some possibility of changing this default (see https://github.com/NuGet/Home/issues/6091).
But until then, there are two known workaround. In the example above, Project.Library has a reference to UserSecrets and Project.Web has a ProjectReference to Project.Library. To workaround you could:

Add the PackageReference explicitly to all projects (e.g. add UserSecrets to Project.Web in addition to Project.Library)
The other is to add PrivateAssets="None" to your PackageRefeference to override NuGet's default ProjectReference behavior. (e.g. in Project.Library, use <PackageReference ... PrivateAssets='None' />

Appreciate the help.  Flagging PrivateAssets as None in the library project (second suggestion) had no effect.  Understanding of that option is to let stuff flow into subsequent projects (assuming build rather than none would have been sufficient).  Suggestion one (duplicating the Microsoft.Extensions.Configuration.UserSecrets package reference) in the web project works.


javascript client

hey! I noticed a js client is on the roadmap. Is there any discussion around that?

I'm going to close this issue. We have started working on a JavaScript client but it's not ready yet. Status of the client can be found here (it will be committed once we do more work on it): https://github.com/exceptionless/Exceptionless.JavaScript

Please stay tuned to our javascript repo.. I'm making good progress and just added a bunch of tests as well as got it submitting a very basic event to our api :). Lots more work to do but we are getting closer!


Show commit message as Markdown

Feature Description
It would be very nice if gitea could display commit messages as Markdown.
This seems already be the case for PR, so I suppose it is not too complicated to be applied to commit message?
Screenshots
No response

The commit message at which page?

I guess in the PR timeline, and when viewing a specific file at a given commit?

hello,
sorry for late reply!
Perhaps my suggestion was wrong formulated. What I would like to have, is to be able to got my commit message not displayed as raw text, but the as MarkDown.
So I could add some text emphasis (like bold, etc.).
I don't know if Gitea already has such a feature?

hello,
sorry for late reply!
Perhaps my suggestion was wrong formulated. What I would like to have, is to be able to got my commit message not displayed as raw text, but the as MarkDown.
So I could add some text emphasis (like bold, etc.).
I don't know if Gitea already has such a feature?

Not yet. But once you review git message in other clients, like editors, git shell, they will not be rendered?

Yes, I know.
Markdown rendering will not be available everywhere, but it would be kind if Gitea could do it ;)

Yes, I know. Markdown rendering will not be available everywhere, but it would be kind if Gitea could do it ;)

Then we need an option to enable/disable that.

Then we need an option to enable/disable that.

This make sense to me, and perhaps per default it should be deactivated.


export txt file including chinese character encode error

i hope use this lib to export a txt file
When i use the XLSX.write  it return
姓名	年龄	性别
小明	3	男
小红	7	女

but when i use XLSX.writeFile，i open the download file but error happen:
Ó
	t	'+
	3	7
¢	7	s

I hope that I have already made the problem clear.

Is this on the server side (nodejs) or browser side?

Is this on the server side (nodejs) or browser side?

browser side

That looks like an encoding error with the program opening the file.  Test https://jsfiddle.net/gajr9nq3/ :
var ws = XLSX.utils.aoa_to_sheet([
  ["姓名",	"年龄",	"性别"],
  ["小明",	    3,	"男"],
  ["小红",	    7,	"女"]
]);
var wb = XLSX.utils.book_new()
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
XLSX.writeFile(wb, "issue1256.txt");

Result is a tab-delimited file with the UTF8 BOM that Excel correctly processes:
00000000: fffe d359 0d54 0900 745e 849f 0900 2760  ...Y.T..t^....'`
00000010: 2b52 0a00 0f5c 0e66 0900 3300 0900 3775  +R...\.f..3...7u
00000020: 0a00 0f5c a27e 0900 3700 0900 7359 0a00  ...\.~..7...sY..


MemoryError

I have trained my model using textblob with almost 2000 of news headlines. I got this error:
MemoryError
Please help to solve this problem.

This is a duplicate of #176 .

Anybody knows a fix for this..??


Template parse errors: There is no directive with "exportAs" set to "mdAutocomplete"

What is the current behavior?
getting this error:
Template parse errors:
There is no directive with "exportAs" set to "mdAutocomplete" ("               [mdAutocomplete]="test">

<md-autocomplete [ERROR ->]#test="mdAutocomplete">
<md-option *ngFor="let item of filteredStates | async" (click)"): ng:///
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 4,
Browser: Chrome,
"typescript": "^2.5.1",
Is there anything else we should know?
this is the html which is affected
<md-form-field *ngIf="type">               <input #cInput type="text" mdInput [formControl]="stateCtrl" placeholder="" [(ngModel)]="searchStr"                 [mdAutocomplete]="test">             </md-form-field>             <md-autocomplete #test="mdAutocomplete">               <md-option *ngFor="let item of filteredStates | async" (click)="chooseContakt(item.id)">                 {{ item.item }}               </md-option>               <md-option (click)="openModal()">                 Legg til +               </md-option>             </md-autocomplete>

See #7306

Thanks problem solved. updated angular to 4.41 +

@pacoma93 You can close your issue then.


Uptime (just like downtime)

Like we can see downtime of website in the status command... how can we calculate the uptime of website?? is it possible? if yes then can you share code please :D

I haven't implemented uptime tracking or reporting yet, but this is definitely something to consider in the future :)

Hello,
My FRIEND have got probleme with one error.
Preview error :
Traceback (most recent call last):
File "bot.py", line 50, in
DiscordUptime().run(get_config("ODE3Njc0NDM0Nzg0NTI2MzM2.YEM8qA.TySp_dHpMjetKw27hS-VJaDPWJ4"))
File "C:\Users\user\Desktop\discord-uptime-master\utils\config.py", line 31, in get_config
raise Exception(f"Your config is out of date! Missing a value for {item}")
Exception: Your config is out of date! Missing a value for ODE3Njc0NDM0Nzg0NTI2MzM2.YEM8qA.BLLLALALALALALALAL-VJaDPWJ4

@Clashplayer-PROTECT You included your bot token, I've edited it out but I would reset it.
The token needs to go in the config file, e.g.
 "token": "TOKEN HERE",
Rename config.example.json to config.json and edit the values.

Thanks you


Return error if body is null

Task/Issue URL: https://app.asana.com/0/0/1205878800415640/f
Description
This PR returns an error when the body return by the privacy config is null
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #3819   👈

This stack of pull requests is managed by Graphite.