Code Monkey home page Code Monkey logo

search-maven-org's Introduction

Search.Maven.Org

Join the chat at https://gitter.im/sonatype/nexus-developers

Table of Contents

Prerequisites

You will need node setup, preferably something fresh. At least one of us uses nvm to manage node, for Angular you'll need a version higher than 10.9.0

It's important to note, as part of understanding this project, how and why it was intially setup.

  • Technology choices
    • Angular 8 - Really low start up cost to learn and to implement
    • Angular CLI - Command Line tool for super easy creation of Angular components
    • Typescript - Easy language for most of our developers to jump on
    • NPM - package manager that is supported by Nexus Repository
      • You can use Yarn if you'd like
    • SASS - currently one of the best CSS precompilers
    • Angular Material 6 - Easy setup of a simple UI look and feel

Installation

  • NPM

    • install npm from https://nodejs.org/en/
    • install the latest angular cli with npm install -g @angular/cli@latest
    • install all other dependencies with npm install from project root
  • Yarn

    • install yarn
    • install angular cli with yarn global add @angular/cli@latest
    • install all other dependencies with yarn from project root

Development

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Running unit tests

Currently not running, help us out and get them running!

Running end-to-end tests

Currently not running, help us out and get them running!

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

Style Guide

We currently follow the Angular.io style guide.

IntelliJ Settings

  • Preferences > Editor > Code Style > TypeScript > Spaces > Within : Enable "ES6 import/export" braces

Data

Using this externally, you'll need to wire up to http://search.maven.org/solrsearch/select similar to how we do in Production. You can see these settings in environment.prod.ts.

You'll likely need to use a plugin to modify CORS headers as this will produce a cross domain request, there are quite a few plugins out there. For Chrome you can use this one.

Alternatively, you can use a reverse proxy server like cors-anywhere to add CORS header to your respose. This would be slow but remove any client side plugin dependency. You can refer following sample config environment.prod.ts.

Getting help

Looking to contribute to our code but need some help? There's a few ways to get information:

  • Chat with us on Gitter
  • Connect with us on Twitter
  • Log an issue here on github

search-maven-org's People

Contributors

ametry-sonatype avatar bhamail avatar darthhater avatar dbradicich avatar floralvikings avatar gildor avatar ian4hu avatar ind1go avatar iskabs avatar jorlina avatar lambdahands avatar marcphilipp avatar mpiggott avatar mrindiadev avatar ndonewar avatar regoarrarr avatar scherzhaft avatar simon04 avatar sirmaster avatar timlevett avatar whyjustin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

search-maven-org's Issues

URL scheme results in 404 in nginx

404 Not Found
nginx/1.12.1

I was able to land on this URL by going to search.maven.org, search for our artifact (org.mockito:mockito-core), select the latest version (at the time of writing 2.21.0) and then in the dropdown select 1.10.19. Note that in-client navigation works. E.g. back-/forth-buttons do work. Just not the initial URL navigation.

  • What feature or behavior is this required for?
    To be able to link directly to our artifact on our documentation website http://site.mockito.org/.
  • How could we solve this issue? (Not knowing is okay!)
    Make sure that when opening URLs, the nginx server can correctly resolve the location.
  • Anything else?
    n/a

Maven Central Badge has wrong format url

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

Add search functionality to artifact details view

  • What are you trying to do?
    On the beta version, I would like to be able to use the search box when viewing the details of a single artifact. That way I can jump between artifacts without having to return to the landing page.

Example view: https://search.maven.org/beta/artifact/org.ajbrown.dropwizard/dropwizard-ssm/1.0/jar

The only way to search from here is to click the logo, which returns you to the landing page.

  • What is this feature required for
    An amazing user experience.

  • How could we solve this issue? (Not knowing is okay!)
    Provide the search box and functionality on the artifact details view.

  • Anything else?
    🍺 🍺

Better search capabilities

  • filters: be able to filter search results based on certain criteria. Like "updated>=2018-01-01"
  • items-per-page should be customizable. Should allow me to view at least 100 per page.
  • What feature or behavior is this required for?
    I want better search capabilities for https://search.maven.org/

  • How could we solve this issue? (Not knowing is okay!)
    See above

  • Anything else?
    No

dependancy view not updated

  • What are you trying to do?
    Switching between versions of an artifact using the dropdown menu, the pom file updates but the right hand column (dependancy view?) does not reflect the change in version.

  • What feature or behavior is this required for?
    Looking at the differences between poms to understand dependency differences

Restore backwards compatibility of search links

A lot of projects link to the search.maven.org using the old link format, and the redesign of search.maven.org has broken all links of all projects that reference search.maven.org in this way.

Please restore backwards compatibility by adding support for the old links back.

For example:

Outdated "Latest Version" and "Updated" columns

Hi,

if I search for "a:commons-beanutils" the result shows:

| commons-beanutils | commons-beanutils | 20030211.134440 | (21) | Nov 8, 2005 |  

If I select "(21)" to show all versions the latest actually is:

| commons-beanutils | commons-beanutils | 1.9.3 | Sep 21, 2016 |

Kind regards,
Geri

Include package information/staistics in results

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    When searching for common libraries/classes the top results are not the most popular. We would like to be able to sort our results by popularity or number of downloads. Alternatively, we can develop our own sort if you can expose information about the classes in a package.

  • What feature or behavior is this required for?
    We are trying to automatically repair missing dependencies. We want to use search.maven.org to locate candidate JARs. Sorting results by popularity would improve our results.

  • How could we solve this issue? (Not knowing is okay!)
    Maven Central provides usage statistics on their page, could you pass that on when queried through search.maven.org. Searching through the website provides package information, could you document how to retrieve this through the API

  • Anything else?
    If this feature already exists, some documentation on how it works would be helpful. Thanks

Design feedback for new website

In the search results table, truncating Group ID and Artifact ID (if they're too long) makes it difficult to find what you're looking for - the classic site always displays the full text. Could the search table take up the full browser width, or at least show all the text in those columns?

In the search results table, could the date use the format day-month-year (like the classic site), or year-month-day? The USA date format is illogical. Also if the day is 1-9, I'd suggest displaying as "01", "02" for visual consistency.

How are the search results sorted? It would be nice if the table column headings were clickable to sort, if it's not lots of work.

Many thanks.

Add updated date to search result page to quickly see the age of the latest release

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?

Would be nice if MavenCentral search also shows the date (yyyy-mm-dd) of the artifacts in the search results, so you can quickly see how old the latest release are.

  • What feature or behavior is this required for?

  • How could we solve this issue? (Not knowing is okay!)

  • Anything else?

I posted on twitter and was asked to create an issue here
https://twitter.com/sonatypeDev/status/1083050808483110912

If you click on each item in the list, there is a detailed page for that artefact where you can see the date (updated). But we would like to see that date quickly in the search result list too.

See screenshot below

search

Expose component/package category data

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    It would be kinda cool that as you search, you'd be able to see what's a logger, or what's a parser, etc... so you can a) narrow search results a bit better and b) potentially find out "ok, this seems to be the most popular logger" to make decisions based on ecosystem size for a component.

  • What feature or behavior is this required for?
    This can help users make decisions on a few different variables, especially if tied in with popularity data

  • How could we solve this issue? (Not knowing is okay!)
    An idea is that we can let the community tag packages/components, or potentially expose some of the data we have as well

  • Anything else?

Move Beta site to Production

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Ultimately, to move this new site to the production url, instead of the current beta url

  • What feature or behavior is this required for?
    Mostly just getting more people to use this site!

  • How could we solve this issue? (Not knowing is okay!)
    There are a number of ways to do this, a few ideas before we got started are to:

  • setup a way to A/B test
  • setup a way to redirect based on User Agent
  • do some analysis of the current Google Analytics data
  • ????
  • Anything else?

Implement Advanced Search Capabilities

Description

Currently the advance search has capabilities that this SPA does not, we require to investigate whether this is still needed.

These capabilities include:

  • Searching by Classpath/Classname?
  • Searching by SHA

Good things to check :

  • Google analytics for current site.
  • User check (maybe Joel would be best to confirm with), on what is being used.

Acceptance Criteria

  • implement advance search capabilities
  • bounce around idea's on UI for this.

Please leave a comment or reaction to this issue if you'd benefit from this functionality!

"All versions" link impossible to select when latest version has long name

  • What are you trying to do?

I was attempting to find out what versions of com.google.guava:listenablefuture were available. This is a new artifact and includes a special version 9999.0-empty-to-avoid-conflict-with-guava, plus a version 1.0. No matter how far I stretch my window, I can't get the "(NN)" link to show.

screen shot 2018-10-30 at 1 37 55 pm

Workaround: append &core=gav.

  • How could we solve this issue? (Not knowing is okay!)

Have the all-versions link separate?

Linking to search results

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Navigate to: http://search.maven.org/#artifactdetails%7Corg.owasp%7Cdependency-check-maven%7C3.3.1%7Cmaven-plugin

  • What feature or behavior is this required for?
    Linking directly to specific searches from classic search.

  • How could we solve this issue? (Not knowing is okay!)
    Could preserve previous linking behavior to search results by implementing it in the new API or by rewriting the resource on the server side to redirect to whatever the new mechanism is to link directly to search results.

  • Anything else?
    I found the above link on the https://www.owasp.org/index.php/OWASP_Dependency_Check page, and it made me realize that the old method of linking to specific results no longer works. This is probably fine, provided there is another mechanism to link directly to search results... old links will have to just be updated over time.

Implement Advance Search Builder

  • What are you trying to do?
    Implement Advance Search Builder

  • What feature or behavior is this required for?
    Initially, it could be responsive version of existing advance search and can be further improved for better User Experience.

  • How could we solve this issue? (Not knowing is okay!)

  • Anything else?
    Please refer
    #1 (comment)

Regression: unable to search by fully name-spaced class

Optimize website based on LightHouse audit

I ran a LightHouse audit on https://search.maven.org/ and there are some points of improvement. (If you want to run this audit yourself, see https://developers.google.com/web/tools/lighthouse/#devtools )

Most notably, there are quite some large resources that are also render-blocking (such as main.js, polyfills.js and styles.css). It would be great if they are not render-blocking, but simply progressively enhance the HTML that is sent over initially. Moreover, these resources do not have a caching strategy and will thus be refetched every single time. Since I saw you are hashing your files (nice!), consider putting a long caching strategy, e.g. https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#cache-control

I also saw you are using Webpack. (I saw this in the generated build files, but I saw no reference to webpack in this repository. Where is this coming from?) Consider taking advantage of code splitting (https://webpack.js.org/guides/code-splitting/) to lazy-load or only load code when it is used. There is quite a lot of script pushed to the client, but I do not think you need all of it right away. If you lazy load the scripts that you do not need right away, but later, you cut down considerably the initial file load.

You can also take a closer look at what is actually in your bundle with tools like https://www.npmjs.com/package/webpack-bundle-analyzer to see what you are shipping to the user. There might be package that you are loading right now that are unnecessary or replaceable with small custom functions.

For example, you are loading a lot of polyfills even on browsers that do not require them. See

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
which loads polyfill code that should only be loaded on IE, as all other browsers work just fine.

Lastly, there is a new technology called service-worker which can speed up your repeating customers. You can automatically generate these workers with tools like Workbox (https://developers.google.com/web/tools/workbox/).

Adding in footer elements

  • What are you trying to do?
    Add in the various footer elements from the existing search.maven.org site including:
  • Privacy Policy
  • Terms of Service
  • About Sonatype
  • Apache Maven resources
  • What feature or behavior is this required for?
    providing users easy access to to information related to Sonatype's usage policies and company information.

  • How could we solve this issue? (Not knowing is okay!)
    index.html updates

  • Anything else?

Take project's favicon from external source

Currently project's icon is the default: /assets/images/xml.svg

It would be great if authors could change the default icon. I see several ways to address that:

  1. Take favicon from the standard url tag at pom.xml
  2. Support custom property somewhere in pom.xml
  3. Support custom file ( .search.maven.org.config) for nice look and feel at search.maven.org

However this requires careful design, as custom images loaded from thirdparty web sites might compromise privacy/security.

Impossible to download latest JAR file with new site and other regressions

Hi. Earlier I could make a link to download the latest JAR by adding v=LATEST parameter to the URL like this:

https://search.maven.org/remote_content?g=ru.proninyaroslav&a=java-template-engine&v=LATEST

Now for this I had to return to the classic version by adding /classic/ to the URL. I think it's a good idea to add this feature to a new site.

Also, the ability to refer to the current release using the https://maven-badges.herokuapp.com service is broken (see softwaremill/maven-badges#20), for example:

https://maven-badges.herokuapp.com/maven-central/ru.proninyaroslav/java-template-engine

Search results should be sorted by popularity

  • What are you trying to do?
    Searching for very common library, eg. hibernate, doesn't return org.hibernate:hibernate as first result

screen shot 2018-04-02 at 9 03 08 pm

One needs to scroll down to find it.

  • What feature or behavior is this required for?
    Find the latest org.hibernate:hibernate lib

  • How could we solve this issue? (Not knowing is okay!)
    Search results should be sorted by popularity/download numbers, with the most popular results on top.

  • Anything else?
    That'll be all for now

Use ElasticSearch for backend instead of SOLR

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Right now the search.maven.org backend is using a wrapper on top of SOLR, and it works great, but it's also old, and we can probably improve quite a bit by moving to ElasticSearch (work has already been done to do this, hence why we have the solution in mind)

  • What feature or behavior is this required for?
    It isn't required per se, but it will certainly help us move a bit quicker with implementing new ideas, and also potentially allow us to open source the backend, which can allow community users to contribute new ideas, etc...

  • How could we solve this issue? (Not knowing is okay!)
    Continue the work @jorlina did, and keep an eye towards open sourcing it, too

  • Anything else?

Maintain URL and serve proper 404 page

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  1. If an artifact version does not exist, show "Version does not exist for artifact of group ."
  2. If an artifact does not exist, show "Artifact does not exist for group ."
  3. When only a group is provided, maybe show a list of artifacts that are in that group?
  4. If a group does not exist, show "Group does not exist".
  • Anything else?

https://search.maven.org/beta page is empty on IE

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    I try to open https://search.maven.org/beta/ on IE.
    Webpage is empty.

  • What feature or behavior is this required for?

  • How could we solve this issue? (Not knowing is okay!)
    Only IE for internet connections is available for me at work.

  • Anything else?

New search doesn't work at all

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Search for e.g. apache cassandra

  • What feature or behavior is this required for?
    Finding the apache cassandra JAR

  • How could we solve this issue? (Not knowing is okay!)
    Make it return a nonempty set of results. The search autocompleter clearly knows it's there, but

  1. the clicks in the search autocompleter do completely non-intuitive things, like NOT going to the thing I just clicked on
  2. If I press the full search button, I get a results page which is empty and doesn't even contain the things from the autocomplete.
  • Anything else?
    It is definitely an issue that the UX on the site is now sufficiently bad that it's unusable. Whether my description of it is helpful is another matter, but seriously, did you actually try using this before you released it? It's utterly unusable.

Show when a java package/component is vulnerable

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    We are trying to save the world, basically. We want to help users understand if they should use a component or not, and given a lot of this information is publiclly available, we feel we can make this more apparent to users.

  • What feature or behavior is this required for?
    It's really required mainly to help raise awareness of the problem of using bad packages/components in your project.

  • How could we solve this issue? (Not knowing is okay!)
    We can work to expose to some degree if a component/package has a vulnerability, and provide links to public projects where they can learn more. This is to raise awareness, ultimately.

  • Anything else?

Change "Gradle/Grails" to "Gradle" on artifact page

  • What are you trying to do?

Browsing to an artifact page and finding the instructions for how to use it with Gradle.

E.g. when opening https://search.maven.org/beta/artifact/org.junit.jupiter/junit-jupiter-api/5.2.0-M1/jar there's an entry for "Gradle/Grails" that shows the Grails logo and the URL of the Grails Gradle plugin. Gradle is used for a lot more things than Grails so this listing is confusing. A user might ask himself whether it will only work for Grails etc.

  • What feature or behavior is this required for?

Instead, it should just show "Gradle", the Gradle logo, and use gradle.org as the URL.

  • How could we solve this issue? (Not knowing is okay!)

see above :)

  • Anything else?

In addition, it would be great if the URLs for all entries would be clickable.

Please let me know whether you think this makes sense. If so, I'd be happy to submit a PR.

Progressive Web App version of search.maven.org

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    The new site is Responsive, but potentially we can implement a Progressive Web App version of it.

  • What feature or behavior is this required for?
    I am not 100% sure, but it came up in an idea generation session for the site.

  • How could we solve this issue? (Not knowing is okay!)
    Implement it :)

  • Anything else?

Search box overlaps 'quick stats' button

Noticed this with Chrome 67.0.3396.99 on OSX, but also happens to a lesser extent with Safari

screen shot 2018-08-09 at 18 46 28

... unless it's intentional that the search icon is also doubling as a Q ;)

Snippets for non-jar dependencies ignore type

  • What are you trying to do?
    Copy snippets for non-jar Maven dependencies

  • What feature or behavior is this required for?
    Directly pasting snippets to a pom.xml (or other build files)

  • How could we solve this issue? (Not knowing is okay!)
    Currently, all artifacts, regardless of their packaging, display dependency snippets as if they were jars.
    For instance, https://search.maven.org/beta/artifact/org.eclipse.hudson/hudson-war/3.3.3/war has a war packaging and yet you get:

<dependency>
  <groupId>org.eclipse.hudson</groupId>
  <artifactId>hudson-war</artifactId>
  <version>3.3.3</version>
</dependency>

I expect the xml snippet to be:

<dependency>
  <groupId>org.eclipse.hudson</groupId>
  <artifactId>hudson-war</artifactId>
  <version>3.3.3</version>
  <type>war</type>
</dependency>

Problem is probably the same for other build system snippets, but I mostly use Maven so I wouldn't know.

Implement OpenGraph

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

We likely need to use something like prerender.io, as I doubt we want to go the Angular Universal path. I also imagine we do this as a part of nginx config, so some of the changes might be slightly outside of this repo, but it's worth creating this issue to track them, too.

  • Anything else?
    Have a blast!!!!

Add Bazel configuration block in artifact detail view

  • What are you trying to do?

I would like to easily update a Bazel WORKSPACE file with the details of a JAR file found through the search interface.

  • How could we solve this issue? (Not knowing is okay!)

It would be great if there was an output block in the artifact detail page that contained the necessary configuration text for use with Bazel, e.g.

maven_jar(
  name = "some-dep",
  artifact = "com.example.foobar:some-dep:1.2.3",
  sha1 = "hash-goes-here",
)

Document API

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    I’ll start (slowly) moving my old urls format to the new one. I’d like to know what’s the official recommended way of querying search.maven.org, thus, how to build URLs that will be still accessible in the future.

  • What feature or behavior is this required for?
    Some doc about the intended usage would be great.

  • How could we solve this issue? (Not knowing is okay!)
    Add a page with documentation about the search API (example) and add a link to it, for example, among the existing links at the bottom of https://search.maven.org/.

  • Anything else?
    Sorry if I missed something obvious and it’s there already.

Mobile layout overlaps on artifact inspection page

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    I am visiting the artifact page on mobile.
    image

  • What feature or behavior is this required for?
    To be able to browse the website on mobile.

  • How could we solve this issue? (Not knowing is okay!)
    Update the stylesheet of div.artifact[_ngcontent-c11] .artifact-title[_ngcontent-c11] and remove padding-top: 16px. Add the following styles:

align-items: center;
display: flex;
min-height: 18px;

Also, the text gets wrapped on larger screens:
image

It seems that the ellipsis class should not be on that div. Remove the class and add the following css to the same selector:

max-width: 100%;
white-space: nowrap;

And then while we are add it, also add a padding-right: 5px to have a little nicer spacing between the title of the artifact and the version dropdown menu

  • Anything else?
    With these instructions, this should be the outcome:
    image
    image

Stats show size is 0MB

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Looking at https://search.maven.org/stats

  • What feature or behavior is this required for?
    Unsure, but I doubt it should be 0. I assume the size is the total amount in all of search.maven?

  • How could we solve this issue? (Not knowing is okay!)
    (see above)

  • Anything else?
    Screenshot:
    screen shot 2018-08-09 at 10 38 37 am

Automatically compute latest artifact version

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    I am trying to link to the latest version of our artifact. At the time of writing, this version is 2.21.0. However, in our documentation we do not want to hardcode this value, as we release often. Therefore, I would like to link to our latest version. Something along the lines of https://search.maven.org/artifact/org.mockito/mockito-core/latest/jar or maybe just https://search.maven.org/artifact/org.mockito/mockito-core/
  • What feature or behavior is this required for?
    To link from our documentation to the latest version on Maven central
  • How could we solve this issue? (Not knowing is okay!)
    Rewrite the url scheme to automatically compute the latest version and redirect to that instead.
  • Anything else?

Treat Java module name as a first-class library property

Java introduced modules years ago with Java 9. By now, many library authors claimed a well-known name for their libraries. Either by specifying an Automatic-Module-Name in the MANIFEST.MF of the jar file or by an explicit module-info.class entry.

When using a library in a modular project, the end-user has to know that specific module name. As far as I know, there's no repository, search-engine or meta-crawler that exposes that information to the public.

Having an automatically updated index that makes repositories searchable for Java module names would be great to have.

tl;dr

Supersede @jodastephen 's https://github.com/jodastephen/jpms-module-names -- which offers a semi-automatic updated table of module name to group:artifact relation overview.
Supersede https://github.com/sormuras/modules as well.

Improve behavior to search both group and artifact ids

When testing the search on the beta site here: https://search.maven.org/beta/search I noticed a couple of things. It seems that if you do a search with multiple terms like "apache collections" I get no results returned. I know that I can use operators like g: and a: but it would be better if the default behavior would search for terms across the group and artifact ids without the need for the operators.

Survey existing users to create a research baseline

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Ultimately, learn how we are improving this site over time. Right now we have lots of ideas, but it would be good to set a baseline to see how we improve over time, or if we don't improve.

  • What feature or behavior is this required for?
    This is required for making decisions based less on gut and more on yep, that helped people!

  • How could we solve this issue? (Not knowing is okay!)
    Not quite sure, but others can add to this :)

  • Anything else?

Sorting search results

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Sort search results (for example, sorting https://search.maven.org/search?q=g:org.apache.hadoop%20AND%20a:hadoop-client&core=gav by "Updated" column)

  • What feature or behavior is this required for?
    Finding information about a specific artifact or comparing similar artifacts. (For example, comparing similarly named artifacts with different groupIds, sorting by artifactId)

  • How could we solve this issue? (Not knowing is okay!)
    Could use something like https://datatables.net/ or provide a sortby directive in the search language.

  • Anything else?
    Nope. Keep up the good work!

Feedback for recent cosmetic changes to search.maven.org

I like the new look of search.maven.org. A few notes:

  1. The advanced options dialog box is great, but it probably shouldn't be a model window, since that makes it hard to reference while typing in search criteria.
  2. There's no mention of "Maven Central" anywhere or "The Central Repository" as it exists on the classic search. Instead, those naming elements are replaced by "Sonatype" branding. I don't think there's a problem with the Sonatype branding being there, but there should be some branding pertaining to the concept of "Maven Central", along with "What is Maven Central?" type informational links.
  3. Although this page is https, many of the links, especially in the footer, take you to insecure http, such as the "About Sonatype", "Privacy Policy", and "Terms of Service".
  4. It would be nice to have a link to the OSSRH program somewhere, so developers know how to submit items for inclusion in central.
  5. Some mention of "Maven" being a trademark of the Apache Software Foundation, and a general link to the ASF and to the Apache Maven project would be nice.
  6. "Who is Sonatype?" at the top and "About Sonatype" at the bottom are redundant, and could probably be reduced to one link.

Overall, I really like the site redesign. I'm sure it will be incrementally improved over time. Hopefully this feedback helps in that regard.

Show stats from package/component source repos

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    We have information on the source repo for projects thanks to lots of reasons. We could start showing for example:
  • Number of GitHub stars on a repo
  • Number of Followers of a repo
  • Latest commit for a repo
  • Latest version for a repo
  • What feature or behavior is this required for?
    It's mostly just to give our users some more information on what is actually behind the component they are using/exploring using/learning more about.

  • How could we solve this issue? (Not knowing is okay!)
    I think we can look to how other sites have done this, it seems to be a bit of a solved problem. The folks over at Scaladex did this for example, and I bet we can learn or use quite a bit working with them.

  • Anything else?

Improve the SEO of search.maven.org

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    The current site is around 7 years old, and it's SEO is about the same age. We'd like to modernize so that people can find it in Google/Bing/etc... a bit easier, and potentially leverage new SEO techniques, etc...

  • What feature or behavior is this required for?
    This is mainly to help people discover the site a bit easier, but also potentially help them solve problems quicker. We don't necessarily need someone to go to search.maven.org to solve the problem, if they can solve it directly on Google/etc...

  • How could we solve this issue? (Not knowing is okay!)
    There are a plethora of ideas. As we create tickets to accomplish this, we can treat this as a bit of an epic, or perhaps create a milestone in GitHub for it.

  • Anything else?
    Not everyone uses Google, even if most people use Google, let's try and remember that and factor in stuff that would help people using Bing, etc...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.