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

How to FileIn a FileOut Project,Package,Class? #220

Open
tukanos opened this issue Feb 11, 2025 · 3 comments
Open

How to FileIn a FileOut Project,Package,Class? #220

tukanos opened this issue Feb 11, 2025 · 3 comments

Comments

@tukanos
Copy link

tukanos commented Feb 11, 2025

Hi @ericwinger ,

I was trying to find the FileIn for JfP, but did not find any? Is it possible to FileIn a FileOut, naturally from GemStone, file?

@ericwinger
Copy link
Member

I haven't done a lot of work for filing in the project, package, and class fileouts but if you open a server file, then right mouse File actions, there are two options for filing in. Does that work for you?

@dalehenrich
Copy link
Member

@tukanos, I'm curious what your use case is for doing fileins for JfP ... right now we pretty much are only supporting using JfP with Rowan 3 gemstone images ... and filein/fileout hasn't been a focus.

If you are intending to export your work into an extent0.dbf extent, then you will want to look into the options for exporting a project to a .gs file. See the two $GEMSTONE/rowan3/bin/export* scripts.

For fileins, you can use GsFilein class>>fromServerPath: to do fileins with a couple of caveats:

  • If the code you are filing in does not intersect with packaged classes and methods, then the code will be unpackaged after the filein.
  • If the incoming code does intersect with packaged classes and methods, then the rules should be as follows:
    1. If you are modifying a packaged class, then the class will be modified and the package of the class will be preserved
    2. If you are adding/changing methods to a packaged class, the added methods willuse the package of the class they are added to, while the changed methods will keep their original packaging
    3. New classes will be added and will not be members of any package, method additions to classes that are not in a package will not be packaged

The filein code has not been heavily tested, so things may not behave 😄 .

While we are talking about unpackaged things, I want to point out that the Unpackaged Package is a build artifact that is scheduled to go away (about the time we begin to officially support filein/fileout 😃), so unpackaged things are just unpackaged without any adornment ...

@tukanos
Copy link
Author

tukanos commented Feb 12, 2025

done a lot of work for filing in the project, package, and class fileouts but if you open a server file, then right mouse File actions, there are two options for filing in. Does that work for you?

That works for Workspace code, but not for exporting Project/Package/Class.

I'm curious what your use case is for doing fileins for JfP ... right now we pretty much are only supporting using JfP with Rowan 3 gemstone images ... and filein/fileout hasn't been a focus.

There are two reasons why I would like to do it.

  • First one is to migrate to different extent, as you have written above, as JfP must have Rowan3 extent for the time being. (One question came into my mind during the discussion. Do you consider the Rowan3 extent production ready now? I'm just guessing based on the fact that it is being shipped with GemStone/S now).

  • The second reason is that it makes it faster for testing the stuff I report here. If I want to test one change I just export/import a project/package/class to see if the change is working as I want it to work or not. It is faster than git. Of course, if I would to develop and then test I would most certainly use git branches/tags.

If you are intending to export your work into an extent0.dbf extent, then you will want to look into the options for exporting a project to a .gs file. See the two $GEMSTONE/rowan3/bin/export* scripts.

Ah, thank you for the tip. I'll check it out.

For fileins, you can use GsFilein class>>fromServerPath: to do fileins with a couple of caveats: ...

I see. So I will write the filein rules down in case something is not working as I would expect. Thank you for pointing them out.

The filein code has not been heavily tested, so things may not behave 😄 .

So just use it for testing purposes and not on production. I get the message :) .

While we are talking about unpackaged things, I want to point out that the Unpackaged Package is a build artifact that is scheduled to go away (about the time we begin to officially support filein/fileout 😃), so unpackaged things are just unpackaged without any adornment ...

That is good to know. I'll try to keep away from it so I don't get use to it.

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

3 participants