2010-05-10 17 views
29

Estoy usando GitHub para desarrollar un plugin de Eclipse. Me gustaría tener un sitio público de actualización de Eclipse para mi complemento. ¿Puedo usar GitHub para esto?¿Es posible alojar un sitio de actualización de Eclipse en Github?

Sé que GitHub se puede utilizar para alojar archivos individuales mediante el uso de los enlaces "en bruto" proporcionados en las páginas de información del archivo.

+0

http://stackoverflow.com/a/14916525/6309 ahora podría ayudar, ¿tal vez como una actualización comprimida p2? Menciono eso en [mi respuesta editada a continuación] (http://stackoverflow.com/a/2801996/6309). – VonC

Respuesta

9

Las páginas de Github no son un lugar adecuado para un sitio de actualización.

Github pages puede que no sirva correctamente archivos binarios grandes como se explica en este issue. Puede estar bien si sus frascos son pequeños, pero en general desaconsejan colocar binarios allí. En su lugar, recomiendan colocar binarios en la sección de descargas del repositorio. Estaría feliz si esta situación cambia porque sería muy conveniente publicar un sitio de actualización presionando a github.

Por ahora uno tendría que usar su API para cargar archivos de manera programada en la sección de descarga. Las respuestas a this other question puntos a algunas bibliotecas y secuencias de comandos que utiliza este API para su uso dentro de java/experto, Perl, Ruby, etc.

5

Ahora puede intentarlo en una página de publicación (julio de 2013).

Ver "Publish a project release (binary/source packages) on Github?"

respuesta

original (enero de 2013)

Yo no lo he probado, pero técnicamente, un repositorio p2 se pueden definir en cualquier camino compartido (ya sea compartido del sistema de archivos, o compartida basada en la web)

Sólo es necesario que:

+4

El problema que tengo es que github sirve directorios y archivos como páginas HTML. Para acceder al contenido de un archivo, hay un enlace "en bruto". Sin embargo, mi sitio de actualización está compuesto por varios archivos y carpetas, así que creo que necesito encontrar una forma de obtener un directorio "en bruto" de github. Como alternativa, ¿se puede crear un sitio de actualización en un archivo comprimido donde todos los archivos se almacenan en un solo archivo? – mchr

+0

@mchr: No creo que un sitio de actualización pueda ser un solo archivo zip. En cuanto a la lista del directorio sin formato, es una buena pregunta para http://support.github.com/: http://support.github.com/discussions/site/1444-downloaded-filename-for-rawtrue-links might ayuda: reemplace 'árbol' por 'crudo' en su dirección GitHub. – VonC

+0

Parece que si usa la raíz del repositorio y usa "raw" en la url, como sugiere @BrunoMedeiros en su respuesta, el sitio de actualización funciona bien. – Eyal

4

http://pages.github.com/

La característica Github Páginas le permite alojar las carpetas de archivos arbitrarios sin git convirtiendo cada archivo en una página de GitHub.

+0

Las páginas de Github no son un lugar apropiado para un sitio de actualización. Ver mi respuesta a continuación. Puede estar bien si sus frascos son pequeños, pero en general desaconsejan colocar binarios allí. – fmjrey

1

No, ya no es posible, la API Descargas has officially been deprecated.

Desde el blog GitHub:

Sin embargo, algunos proyectos tienen que alojar y distribuir grandes archivos binarios, además de los archivos fuente. Si esto se aplica a usted, le recomendamos utilizar uno de los muchos servicios fantásticos que existen exactamente para este propósito, como Amazon S3/Amazon CloudFront o SourceForge. Consulte nuestro artículo de ayuda sobre cómo distribuir binarios grandes.

Ver esto help article on distributing large binaries.

10

Olvídese de la característica de lanzamientos de proyectos de Github, que no funcionará como un sitio de actualización verdadero (consulte las notas al final).

Para lograr lo que quiere, puede crear un repositorio de Github, enviar/enviar su repositorio de p2 y luego servirlo como un sitio de actualización, usando enlaces brutos. Así, por ejemplo, para el repositorio:

https://github.com/some-user/some-repository/

Se puede servir como un sitio de actualización a través del enlace:

https://github.com/some-user/some-repository/raw/master/

Notas: Sí, si se abre el enlace de sitio de actualización en un navegador, github no le dará listados de archivos, sino un 404. Pero eso está bien. El mecanismo del sitio de actualización de Eclipse no necesita que el enlace principal sea válido. En cambio, Eclipse buscará directamente <update-site URL>/artifacts.jar (o .xml) y a partir de la información en artifacts.jar, descubrirá las URL de los otros artefactos almacenados en el sitio de actualización. AFAIK, en ningún momento el mecanismo de actualización de Eclipse necesita que el servidor web haga listas de archivos de un directorio.

Nota 2: si utiliza versiones de proyectos de Github, solo puede adjuntar un depósito de p2 comprimido. Ese no es un sitio de actualización adecuado porque es un repositorio estático: no hay una URL a la que se puedan cargar nuevas versiones. Eclipse no podrá descubrir automáticamente nuevas actualizaciones, sino que el usuario deberá descargar el archivo zip para cada nueva versión que desee actualizar. (también con un sitio de actualización adecuada, se descargan sólo los artefactos necesarios para la instalación/actualización/consulta - una ventaja menor)

+3

Una nota sobre grandes repositorios y el uso de Github. Estos enlaces describen lo que Github espera que sean los límites: https://help.github.com/articles/what-is-my-disk-quota - "Regla de oro: 1 GB por repositorio, 100 MB por archivo". Eso debería estar bien para la mayoría de los sitios de actualización de Eclipse. Si se vuelve demasiado grande, puede restablecer el repositorio de Git subyacente. – BrunoMedeiros

+0

Gracias por compartir sobre los enlaces brutos para servir públicamente a la carpeta github. –

+0

Intenté esto (aquí está [mi sitio de actualización] (https://github.com/eyala/pig-eclipse-update-site)) pero parece, curiosamente, que esto funciona para Eclipse en Linux, pero desde Windows computadoras que no puedo instalar ni actualizar. ¿Hay alguien más experimentando esto? – Eyal

1

que era capaz de alojar un sitio de actualización de Eclipse utilizando la función GitHub pages. Me resultó difícil encontrar todas las piezas que necesitaba, así que aquí hay una breve descripción de los pasos que seguí.

  • Cree su proyecto de complemento Eclipse y pruébelo en su estación de trabajo local.
  • Agregue feature project y agregue el complemento. Configure también la descripción, los derechos de autor y la información de la licencia.
  • Crea una rama gh-pages. Una forma de hacerlo es ir a la página de configuración de GitHub e iniciar el generador automático de páginas.
  • Clonar una nueva copia de su repositorio y verificar la rama gh-pages. Crea un proyecto general de Eclipse para editar las páginas web.
  • Cree un proyecto de sitio de actualización anidado dentro de la rama gh-pages y su proyecto general. Ponlo en una carpeta obvia, como update.
  • Crea una categoría y agrega la característica al proyecto de actualización.
  • Haga clic en el botón Generar todo para generar los archivos jar.
  • Confirmar y enviar todos los cambios a master y la rama gh-pages.
  • Intente instalar desde el sitio de actualizaciones.
  • Una vez que el sitio de actualización funciona, puede publicar su complemento en el Eclipse marketplace. Esto es opcional, simplemente hace que su conexión sea más fácil de encontrar.

Como han mencionado otros, las páginas de GitHub no son compatibles con grandes archivos binarios, por lo que esto solo funcionará para proyectos pequeños. Para ver un ejemplo, mira mi Live Coding in Python project.

Cuestiones relacionadas