Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add "releases" and TEAPOT? #8

Open
bradennapier opened this issue Sep 1, 2017 · 6 comments
Open

Add "releases" and TEAPOT? #8

bradennapier opened this issue Sep 1, 2017 · 6 comments

Comments

@bradennapier
Copy link

Just a quick look here. Would be nice if you added version releases to this so we can have versioned archives / tarballs as well as support for the standardized TEA so build tools can automatically include.

Awesome to see this being worked on! Thanks for your hard work on it!

@sebres
Copy link
Owner

sebres commented Sep 1, 2017

added version releases to this so we can have versioned archives / tarballs

?? You mean release tag (branch)?
Or something like versions build script resp. macros in code?

as well as support for the standardized TEA

It is not so, currently? I mean it can be succesfully build within TEA infrastructure as any other tcl-module (e. g. tcl-thread, etc), and exactly so installed... See for example the test-build in Travis. Or I miss something?
Can you be a bit precise please...
BTW a PR is any time welcome :)

Thanks for your hard work on it!

Thanks!

@sebres
Copy link
Owner

sebres commented Sep 1, 2017

BTW, I'm not really familiar with TEA, 'cause don't use it... I've just my own infrastructure, as well as my own Tcl :)

@bradennapier
Copy link
Author

bradennapier commented Sep 1, 2017

@sebres yeah - releases / tags - each "version" should be released with a tag so that for example a build script may look like this:

#! /usr/bin/env bash

# BuildCompatible: KitCreator

version='1.0.0'
url="https://github.com/sebres/tclclockmod/archive/${version}.tar.gz"
sha256='<sha here>'
tclpkg='tclclockmod'
tclpkgversion='1.0.0'

This one is how https://kitcreator.rkeene.org/fossil/index handles it

TEA

you very well could be compliant - I honestly dont know the specifics of it either :-P I just know it makes compiling much simpler / automated for me :-)

I know it usually means you need a tclconfig folder in your archive. It should be included so that manual steps dont have to be taken to get it (using the cvs command or w/e).

-- You can see how they did it here:
https://github.com/RubyLane/rl_json

@sebres
Copy link
Owner

sebres commented Sep 1, 2017

I know it usually means you need a tclconfig folder in your archive.

Definitely not. Because:

  • it can be found automatically (if already present), just use autoconf...
  • there a different versions of tclconfig (as well as TEA) and someone can have own resp. other version...
  • if missing, can easy be done with git clone https://github.com/tcltk/tclconfig.git ./tclconfigor similar (fossil, svn, CVS) implicit before configure...
    See for example the latest build https://travis-ci.org/sebres/tclclockmod/jobs/270877404#L543

@bradennapier
Copy link
Author

Ok, well it's your repo! It may work - I will try it if you could add releases as I don't personally want to use master and get different results on each compilation from our various system(s). I just see that most other repos are including the tclconfig part but it may not be necessary. Just hoping to see things standardized as possible to aid in tooling, etc.

Either way - thanks again!

@sebres
Copy link
Owner

sebres commented Sep 4, 2017

tclpkgversion='1.0.0'

BTW. The versioning here was made intentionally a bit stricter - because this module integrates self much deeper as normally, it is extream important, IMHO.
Thus the same version build for 2 different major branches (if becomes compatible), looks like:

tcl 8.6.7 (8.6.x) 8.7.1
tclclockmod 8.6.701 8.7.101

BTW. I should still change this model, because at least on Mac with 32-bit version number it has currently a known issue:

ld: malformed 32-bit x.y.z version number: 8.6.701

Apple's logic looks like this:

  x = 8; y = 6; z = 701;
  (x << 16) | ( y << 8 ) | z;

This means "z" should not exceed 255 (otherwise overrides "y").

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants